۱۳۹۰/۰۲/۰۲

ظهور ميكرو ORMs


پس از "معرفي Microsoft.Data.dll يا WebMatrix.Data.dll" كه يك كتابخانه‌ي سورس بسته و همچنين مخصوص وب ماتريكس مي‌باشد، اين ايده توسط ساير برنامه نويس‌ها دنبال و تبديل به ORMs جديدي با كمتر از 400 سطر كد شده است كه به Micro ORMs هم شهرت يافته‌اند.
در اينجا شما هنوز هم كاملا با SQL سر و كار داريد اما با امكان استفاده بسيار ساده‌تر از پارامترها و همچنين بكارگيري قابليت‌هاي جديد dynamic معرفي شده در دات نت 4 . براي مثال:

Dapper
var guid = Guid.NewGuid();
var customer = connection.ExecuteMapperQuery<customer>("select Age = @Age, Id = @Id", new { Age = (int?)null, Id = guid });

Massive
var tbl = new Products();
var products = tbl.All(where: "CategoryID = @0 AND UnitPrice &gt; @1", orderBy: "ProductName", limit: 20, args: 5,20);

Massive توسط آقاي راب كانري كه قبلا ORM ديگري را به نام ساب سونيك ايجاد كرده بود، تهيه شده و Dapper توسط تيم سايت StackOverflow جهت مواردي خاصي كه استفاده از ORMs (از LINQ to SQL استفاده مي‌كنند) هزينه زيادي داشته، مورد استفاده قرار مي‌گيرد. در همان صفحه اصلي پروژه، يك سري آمار و ارقام از ديد مقايسه كارآيي با ساير ORMs نيز ذكر شده‌اند.
حتي اگر قصد استفاده از آن‌ها را هم نداشته باشيد مطالعه كد آن‌ها از ديدگاه كاربردهاي عملي قابليت‌هاي پوياي زبان، بسيار آموزنده هستند.