سال 93 فرصتی به دست آمد تا جلساتی با محوریت بحث و گفتگو پیرامون مباحث مختلف مهندسی و توسعه نرمافزار برگزار کنم. این نشستها پیوستگی مطلب نداشته و در هر جلسه موضوع مستقلی را موردبحث قرار دادهایم و مخاطبان با توجه به موضوع از پیش اعلامشده که عموماً بر اساس پیشنهادها و نیازها انتخاب میشوند، در صورت تمایل شرکت خواهند نمود. هدف من از برگزاری این جلسات طرح مطالبی بود که در کلاسهای آموزشی فرصت طرح کردنشان کمتر پیش میآید و از طرفی عدم پیوستگی جلسات کمک میکند تا افراد بیشتر ولی با اهداف متمرکزتر بتوانند شرکت کنند.
چالش نخست برگزاری جلسات تأمین فضای برگزاری آنها بود؛ اصرار من بهرایگان بودن جلسات انگیزش کافی برای شرکتها و مؤسسات برای تأمین فضا ایجاد نمیکرد، لذا جلسات سال گذشته با وقفهٔ بعضاً طولانی و درجاهای مختلف برگزار شد. خوشبختانه از اسفند این جلسات با کمک یکی از شرکتهای نرمافزاری که محل برگزاری را تأمین کردند نظم گرفت. روز یکشنبه 16 فروردین اولین جلسه امسال با موضوع بررسی Micro ORM های دات نتی برگزار شد که در ادامه لینک دانلود پرزنتیشن و سورس کد جلسه رو میتوانید ببینید.
Micro ORM
با توجه به نسبت نرمافزارهای Data Centric و اهمیت توسعه سریع راهکارهایی که بتوانند با سهولت و کارایی بالا دسترسی به دادهها را محیا سازند، ORM ها اهمیت زیادی پیداکردهاند. بررسیها و آموزشهای زیادی برای Entity Framework و یا Nhibernate در دسترس است.
سؤال: آیا برای نرمافزارهایی که دیتامدل سادهای دارند نظیر نرمافزار مدیریت بلاگ، فروشگاه ساده آنلاین و نرمافزارهایی ازایندست که مدلهای پیچیده نظیر نرمافزار مدیریت تولید یک کارخانه، مدیریت روابط مشتریان و… ندارند، بازهم این دست ORM ها مناسب هستند؟
Entity Framework محصول بسیار خوبی است، کدباز است، جمع کثیری از برنامهنویسها در توسعه آن شرکت دارند و قابلیتهای بسیار خوبی دارد. خب! ولی آیا برای همهٔ نیازها بهترین پاسخ است؟ قطعاً خیر! وقتی نیاز رو میشود با Micro ORM ی که سرعت 5 برابر entity framework دارد و کلاً در قالب یک فایل سی شارپ در پروژه استفاده میشود، و نیازهای برنامههای با ساختار داده ساده را کاملاً برآورده میکند، چرا متوسل به یک لایبری 5.5 مگابایتی شویم؟ برعکس این موضوع هم صادق است و نباید برای ساختارهای پیچیده داده از Micro ORM استفاده کرد.
آشنایی با انواع static و dynamic در MicroORM ها از موضوعات بحث این جلسه بود. در مثالی که در این جلسه انجام دادیم Dapper, ORMLite, Massive, Simple.data, PetaPoco مورد بررسی قرار گرفتهاند که در فایلهای ضمیمه میتوانید ببینید.
در ضمن دوستانی که تمایل به شرکت در این جلسات دارند، و یا قصد دارند موضوعی را برای طرح دریکی از جلسات پیشنهاد از طریق ایمیل یا کامنت اطلاع بدهند.
لینک دانلود سورسکد همراه با پرزنتیشن جلسه با حجم 20 مگابایت