riok/mapperly
چه کاری انجام میده؟
این یک مولد کد برای محیط .NET هست که به صورت خودکار کدهای لازم برای تبدیل یک شیء به شیء دیگه رو تولید میکنه، بدون اینکه نیاز به استفاده از ریفلکشن در زمان اجرا باشه. این کار باعث افزایش سرعت و کاهش خطا در تبدیل دادهها بین لایههای مختلف برنامه (مثل DTO و مدلهای دیتابیس) میشه.
کاربرد:
وقتی تو یک پروژه .NET داری بین انواع مختلف شیء دادهها مپینگ انجام میدی (مثلاً از مدل دیتابیس به DTO)، به جای نوشتن دستی کدهای تبدیل، Mapperly به صورت خودکار این کدها رو در زمان کامپایل تولید میکنه.
در چه شرایطی بهتره استفاده شود؟
وقتی به دنبال عملکرد بالا و عدم وابستگی به ریفلکشن در زمان اجرا هستی. همچنین وقتی میخوای کدهای تمیز و قابل عیبیابی داشته باشی، چون کدهای تولید شده قابل مشاهدهاند.
چند مثال از موارد استفاده:
- تبدیل مدلهای دیتابیس به DTOهای ارسالی به API
- مپ کردن دادههای ورودی فرم به مدلهای داخلی
- تبدیل شیءهای سرویس به شیءهای لایه کنترلر بدون دخالت دست
- استفاده در میکروسرویسها برای تبدیل دادههای بین سرویسها با کارایی بالا
- ##object
- ##dotnet
- ##source
- ##performance
- ##code
- ##mapperly
- ##dto
- ##net7
- ##net8
- ##clean
