PDA

View Full Version : کدام روش : Database-First , Model-first , Code-only ؟؟؟



amir-yeketaz
سه شنبه 02 فروردین 1390, 13:17 عصر
سلام ...

من تازه EF رو یاد گرفتم از کتاب Pro Entity Framework 4.0 !!

حالا من میخوام یه روزی یه پروژه با این EF بنویسم ... به نظر شما استفاده از کدوم یک از این سه حالت مدل سازی بهتره و انعطاف بیشتری داره؟؟؟


با تشکر ...

majid325
دوشنبه 08 فروردین 1390, 08:30 صبح
Model-first

ricky22
دوشنبه 08 فروردین 1390, 11:24 صبح
Model-first
سلام.
میشه لطفا کمی توضیح بدید و دلیل خودتون هم بیان کنید ؟
ممنون.

amir-yeketaz
سه شنبه 16 فروردین 1390, 01:04 صبح
البته منم با Model-first راحت ترم!! ... چون:
-(model-first) بسیار راحت تر و قابل فهم تر هست ... چون میتونید از مواردی چون inheritance و همین طور Complex Type ها به سادگی استفاده کنید و طراحی خودتون رو به سادگی با اصولی که EF مشخص کرده دیتابیس مربوطه رو بسازین!

اون سبک اول که از قبل هم بوده!!!!ولی سبک POCO اینجوری که من تو بلاگ تیم ADO.NET میبینم مشخصه که داره روش خیلی سرمایه گذاری میشه! و همین جوری داره پیشرفت میکنه!

صابر
چهارشنبه 05 بهمن 1390, 15:03 عصر
خیلی وقت‌ها پیش میاد که قصد بازنویسی یک برنامه رو دارین که پایگاه داده اون از قبل هست، یا اینکه برای جایی می‌خواهید کد بنویسید که خودشون پایگاه داده دارن. در این صورت database first.
در غیر این صورت دو روش Code First و Model First می‌مونه. اگه براتون نمای گرافیکی مدل مهم نیست و با text خالی راحت هستین Code First و اگه دوست دارین توی یه محیط ویژوال کار کنید، Model First.
گرچه من در هر صورت Database First رو ترجیح می‌دم! شاید به خاطر عادت.

نوع پروژه و متدولوژی طراحی و پیاده‌سازی اون هم می‌تونه روی انتخاب تأثیر بذاره.

in_chand_nafar
پنج شنبه 06 بهمن 1390, 16:29 عصر
دوست عزيز در صورتيكه
1- بانك اطلاعاتي پروژه شما طراحي شده و قرار است DAL و يا كارهاي مربوط به بانك اطلاعاتي را در سي شارپ و... پياده كنيد بهترين راه حل براي شما استفاده از روش Database First مي باشد
2- در صورتيكه بانك اطلاعاتي خود را آماده داريد و از قبل كدهايي براي كار با بانك اطلاعاتي به صورت Class base (ايجاد كلاس به ازاي هر جدول و تعريف Property به ازاي فيلدهاي جدول) طراحي كرده ايد مي توانيد از كدهاي قبلي خود استفاده كنيد در اين حالت مي توانيد از روش Code First استفاده كنيد. البته اين كدها همچنان نياز به انجام تغييرات دارند
3- در صورتيكه با OOP آشنايي كامل داريد و مي خواهيد كل Entityهاي خود را به طور كامل شي گرا طراحي كنيد (استفاده از مفاهيم ارث بري و...) مي توانيد از روش Model First‌استفاده كنيد در اين حالت پس از طراحي Model مي توانيد از روي آن بانك اطلاعاتي را بسازيد (اين كار توسط EF‌انجام مي شود در ضمن وقتي اين بانك اطلاعاتي توسط EF ساخته مي شود خود به خود توسط EF به Relational Database تبديل مي شود چون اغلب/بيشتر بانك هاي اطلاعاتي ساختار ذخيره سازيشان به شكل جدول است)
جمع بندي كلي به نظر من هر روشي كه كار شما را راحت مي كند و باعث مي شود سريعتر محصول خود را توليد كنيد از آن استفاده كنيد
من خودم در اكثر پروژه هايم از روش Databse First استفاده كرده ام حتي در مواردي هم مي توانستم از روش Code First‌استفاده كنم كه با بررسي تغييرات و...باز هم از روش Database First استفاده كردم چون سريعتر و راه حتر است