مطالعه موردی: Dapper در مقابل Entity Framework Core

درک داپر
Dapper یک کتابخانه نگاشت شی رابطهای منبع باز (ORM) برای برنامههای NET و NET Core است. Dapper به دسترسی به داده ها از پایگاه داده بدون نوشتن چندین خط کد کمک می کند. Dapper به شما امکان می دهد پرس و جوهای SQL را اجرا کنید و نتایج را به اشیاء NET نگاشت کنید. از آنجایی که از برنامه پرس خام استفاده می کند، کنترل کاملی بر SQL دارد که در حال اجرا شدن است. علاوه بر این، این توسط توسعه دهندگان StackOverflow به عنوان یک micro-ORM توسعه یافته است. قدرت واقعی این امر هنگام انجام عملیات روی مجموعه داده های بزرگ مشاهده می شود.
using(var connection = new SqlConnection(connectionString)) {
connection.Open();
var employees = connection.Query <Employee>("SELECT * FROM Customers");
return employees.ToList();
}
درک EF
EF Core یک چارچوب ORM با امکانات کامل است که یک انتزاع سطح بالا را بر روی پایگاه داده ارائه می کند. EF Core دستورات SQL را به صورت خودکار تولید می کند که در برخی موارد می تواند کندتر از SQL نوشته شده به صورت دستی باشد. برای بهره وری توسعه دهندگان به جای عملکرد بهینه شده است.
EF Core همچنین از بسیاری از پایگاه های داده از جمله SQL Server، PostgreSQL، MySQL و SQLite پشتیبانی می کند.
using(var context = new MyDbContext()) {
var employees = context.Employees.ToList();
return employees;
}
مقایسه ها
-
انعطاف پذیری
Dapper انعطاف پذیرتر است زیرا کنترل اجرای پرس و جو sql را می دهد. اگرچه EF یک راه قوی و ساختار یافته برای دسترسی به داده ها ارائه می دهد که پروژه های پروژه های بزرگ را آسان تر می کند. -
کارایی
از آنجایی که Dapper یک ORM سبک وزن است، به فضای حافظه کمتر و زمان راه اندازی سریعتر نیاز دارد. این به گونه ای طراحی شده است که در مقایسه با EF و ADO سریعتر کار می کند. Dapper با استفاده از پرس و جوهای SQL خام و اجتناب از سربار تولید عبارات SQL به صورت پویا به این امر دست می یابد. در همین حال، EF Core حافظه نهان و سایر بهینهسازیهای عملکرد را ارائه میکند که گاهی اوقات میتواند آن را سریعتر کند. -
پیچیدگی
از آنجایی که Dapper سبک وزن است، ویژگی های کمتری دارد. در حالی که EF سطح بالاتری از انتزاع است و آن را برای پروژه های بزرگ انتخاب بهتری می کند. اگرچه از نظر مفهومی و با توجه به دیدگاه توسعهدهندگان، استفاده از آن بسیار سادهتر و خستهکنندهتر است.
پایگاه داده پشتیبانی می کند
-
EF Core
-PostgreSQL
-MySQL
-MS SQLSERVER -
داپر
-PostgreSQL
-MySQL
-MS SQLSERVER
-SQLite
اوراکل
-IBM DB2
کار معماری
نتیجه
Dapper یک انتخاب خوب برای برنامه هایی است که به کارایی بالا، تلاش های کمتر خسته کننده در توسعه و کارایی نیاز دارند. برای پروژه هایی که نیاز به کنترل بیشتری روی SQL تولید شده دارند، انتخاب بهتری است. در همین حال، EF انتخاب بهتری برای یک توسعه دهنده یا پروژه هایی است که نیاز به کار بر روی چندین منبع داده دارد. EF Core همچنین انتخاب خوبی برای توسعه دهندگانی است که ترجیح می دهند با یک چارچوب ORM کاملاً برجسته کار کنند که دستورات SQL را به طور خودکار تولید می کند. EF Core همچنین برای برنامه هایی که به ویژگی هایی مانند ردیابی تغییر، بارگذاری تنبل و ترجمه پرس و جو نیاز دارند، انتخاب خوبی است.