Dapper یک میکرو ORM برای .NET است که بر عملکرد و کنترل تمرکز دارد. برخلاف ORMهای کامل مانند Entity Framework یا NHibernate، Dapper فقط به اندازه کافی انتزاعی برای نگاشت نتایج پرس و جو به اشیاء ارائه میدهد، بدون اینکه SQL را از توسعهدهنده پنهان کند. این رویکرد باعث میشود Dapper سریع و قابل پیشبینی باشد.
Dapper SQL را که شما مینویسید اجرا میکند، نتایج را به POCOها نگاشت میکند و سپس از سر راه کنار میرود. این میکرو ORM SQL را تولید نمیکند، موجودیتها را ردیابی نمیکند، تشخیص تغییرات را مدیریت نمیکند و یک مدل دامنه را اعمال نمیکند. این ویژگیها به Dapper اجازه میدهد تا عملکرد بالاتری نسبت به ORMهای سنتی داشته باشد.
یکی از دلایل اصلی انتخاب Dapper توسط تیمها به جای Entity Framework، کنترل بیشتر بر روی SQL است. با Dapper، شما SQL را مینویسید، دقیقاً میدانید چه چیزی اجرا میشود و DBAs میتوانند پرس و جوها را بررسی و بهینهسازی کنند. این امر مشکلات عملکرد را قابل مشاهده و قابل تشخیص میکند. در مقابل، با Entity Framework ممکن است با پرس و جوهای LINQ پیچیده، تولید SQL غیرقابل پیشبینی و برنامههای اجرایی ضعیف مواجه شوید.
با این حال، Dapper برای همه موارد مناسب نیست. اگر برنامه شما به شدت به ویژگیهای Entity Framework مانند ردیابی تغییرات، بارگذاری تنبل و بهروزرسانیهای آبشاری متکی است، مهاجرت به Dapper ممکن است دشوار باشد. در این موارد، استفاده از Entity Framework منطقیتر است.
مشاهده مطلب اصلی