محتویات سایت
        برچسب های محبوب 








 
   معرفی ابزار قدرتمند Entity Framework Power Tools
  در این ترفند به معرفی ابزار قدرتمند Entity Framework Power Tools می پردازیم.
   LINQ
   ۲۴۷۱۳
   این مقاله حاوی فایل ضمیمه نمی باشد
   مرتضی صحراگرد
   ۱۳۹۱/۱۱/۱۹
نسخه قابل چاپ نسخه قابل چاپ

مقدمه:

شرکت مایکروسافت در نسخه Entity Framework 4.1 برای اولین بار تکنولوژی Code First را معرفی نمود. معرفی این روش جهت تعامل با پایگاه داده، انقلابی در این صنعت بود و باعث تمایز این ابزار با ابزارهای مشابه شد.

ابزار Entity Framework Power Tools یک پلاگین بسیار کوچک برای نسخه های 2012 و 2010 نرم افزار ویژوال استودیو می باشد. این ابزار امکانات بسیار جالب و قدرتمندی را در اختیار برنامه نویسانی که از روش Code First در لایه دیتای برنامه خود استفاده می کنند، قرار می دهد.

شرکت مایکروسافت با ارائه Code First اولین تلاش های جدی خود را در رابطه با رها نمودن برنامه نویسان از ملاحظات مربوط به طراحی پایگاه داده و همگام سازی تغییرات کلاس ها و جداول پایگاه داده، انجام داده است. اگر چه تلاش های خوبی در این زمینه صورت گرفته شده ولی واقعیت این است که به نظر می رسد هنوز راه درازی برای تحقق عملی این هدف باقی مانده است. در حال حاضر همانند گذشته معمولا ابتدا جداول پایگاه داده طراحی می شوند و سپس کلاس های مورد نظر نوشته خواهند شد.

یکی از مواردی که معمولا مورد شکایت برنامه نویسان Code First می باشد این است که پس از طراحی پایگاه داده باید کلاس های معادل جداول پایگاه داده در برنامه نوشته شود و سپس مشخصات نگاشت (Mapping) و متا دیتای هر جدول مانند ارتباطات بین جداول و محدودیت های هر ستون(مانند تعداد کاراکتر های مجاز) و ... را به شکل Data Annotation یا با استفاده از Fluent API به کلاس های نوشته شده، اضافه کنند. این قسمت از کار معمولا مقداری وقت گیر و ناخوشایند می باشد.

اما ابزار Entity Framework Power Tools با انجام عملیات مهندسی معکوس می تواند کلیه کلاس ها و مشخصات متا دیتای کلاس ها را با استفاده از روش Fluent API تولید کند!

آغاز:

اکنون زمان آن فرا رسیده است که به شکل عملی این بحث را مورد آزمایش قرار دهیم.

ابتدا برای دریافت این افزونه به اینجا مراجعه کنید. پس از بارگزاری فایل مربوطه، آن را اجرا نموده و نصب نمایید. اکنون در صورتی که برنامه ویژوال استودیو باز است، آن را بسته و مجددا باز کنید تا تغییرات اعمال گردد.

پروژه مورد نظر خود را که قصد دارید لایه دیتایی برای بسازید، باز کنید.

یک پروژه جدید از نوع Class Library به پروژه خود اضافه کنید و آن را DataLayer نامگذاری کنید. ما قصد داریم کدهای مورد نظر خود را در این لایه ایجاد کنیم. البته پس از ایجاد کدها می توانید بر اساس معماری پروژه خود، قطعه کدها را جابجا و سفارشی سازی نمایید. دقت کنید که نسخه پروژه Class Library باید 4.0 یا بالاتر باشد تا تکنولوژی Code First مورد استفاده قرار گیرد.

روی نام پروژه DataLayer کلیک راست نمایید. ملاحظه می کنید که گزینه جدیدی به نام Entity Framework همانند شکل زیر اضافه شده است.

از زیر منوهای گزینه Entity Framework، گزینه Reverse Engineer Code First را انتخاب کنید. پنجره اتصال به پایگاه داده برای شما همانند زیر باز می شود. مشخصات سرور و نام پایگاه داده را وارد نموده و پنجره را تایید کنید. اکنون با توجه به انداز پایگاه داده، ممکن است نیاز باشد چند ثانیه یا چند دقیقه منتظر بمانید تا کدهای مور نظر ایجاد شوند.

اکنون پوشه ای به نام Models به برنامه اضافه شده است که شامل کلاس های متناظر با جداول پایگاه داده می باشد و داخل این پوشه، پوشه دیگری به نام Mapping وجود دارد که شامل مشخصات Mapping این کلاس ها با جداول می باشد. نمایی از قسمت Solution Explorer را در زیر مشاهده می کنید.

در قسمت زیر کدهای تولید شده برای جدول Country پایگاه داده ای که بنده استفاده نموده ام را ملاحظه می کنید.

و کدهای تولید شده برای Mapping با روش Fluent API نیز به شکل زیر می باشد.

ملاحظه می کنید که کدها چقدر زیبا، سریع، کامل و خوب تولید شده اند! ضمنا یک کلاس با فرمت نام Database Name+Context نیز ایجاد شده است که همان کلاسی است که از DbContext به ارث رفته است. به طور مثال اگر نام پایگاه داده شما TestDb بوده باشد، نام این کلاس TestDbContext است. محتویات این کلاس نیز بسیار خوب سازماندهی شده اند.

تذکر مهم:

در صورتی که ارجاع های System.Data.Entity و System.ComponentModel.DataAnnotations را به برنامه اضافه نکرده باشید، هنگام کامپایل با خطا مواجه خواهید شد. پس از اضافه نموده اسمبلی های مربوطه، اگر نیاز بود باید در برخی کلاس ها فضاهای نامی موردنیاز را نیز اضافه کنید.

اگر بر روی نام کلاس DbContext خود (در اینجا TestDbContext) کلیک راست نموده و گزینه Entity Framework را انتخاب کنید، اینبار با چند زیر منوی جدید همانند شکل زیر مواجه می شوید.

عملکرد مهمترین گزینه ها به صورت زیر می باشد:

  •  View Entity Data Model ReadOnly: با انتخاب این گزینه قادر خواهید بود نمایش ارتباطات بین کلاس ها را به شکل گرافیکی ملاحظه کنید. در حقیقت یک فایل Edmx برای شما تولید می کند که به شکل فقط خواندنی (ReadOnly) می باشد و تاثیری رو کدهای پروژه شما نمی گذارد.
  • View Entity Data Model XML: ارتباطات و مشخصات کل کلاس های مدل خود را با فرمت XML مشاهده می کنید.
  • View Entity Data Model DDL SQL: کدهای ایجاد جداول پایگاه داده برای مدل ما را با فرمت SQL تولید می کند.

در قسمت زیر تصاویری در رابطه با هر کدام از این گزینه ها مشاهده می کنید.

تصویر تولید شده برای View Entity Data Model ReadOnly:

تصویر تولید شده برای View Entity Data Model XML:

تصویر تولید شده برای View Entity Data Model DDL SQL:

در نهایت به نظر می رسد که افزونه Entity Framework Power Tools ابزاری لازم برای توسعه گران این تکنولوژی می باشد.

برچسب های مرتبط