PDA

View Full Version : در mvc با چه روشی با دیتابیس ارتباط برقرار کنیم؟



RIG000
یک شنبه 04 آبان 1393, 15:27 عصر
سلام.
ما از oram EntityfarmeWork برای کانکشن کردن برنامه و دیتابیس استفاده میکنیم.
حال 3 روش codefirst و MOdelfirst و databasefirst داره ....
بیشتر جاها صحبت از codefirst میشه ...
اما خود من از databasefirst استفاده میکنم. و نه حرفه ای اما رو دستمه و میدونم سرعتش انجام کار و .... ها رو.. اما نظرات شما با این سوال ها
1- ایابرای سالهای اینده database first تقویت میشه از طرف مایکروسافت؟
2- تفاوت های codef با dbf چیه؟
3- چون خودم دقیقا codef کار نمیکنم نمیدونم چرا بیشتر جاها تاکید رو codef و بیشتر اموزش ها با codef هست....
4- تا حالا هیچ اموزشی واسه dbf ندیدم تو سایت ها.. اگه لینک دارید بذارید دوستان .
5- اگه سوالی مد نظرتون هست که پاسخش میتونه مفید باشه و یا نکته ای رو میدونید و ... اشتراک بذارید. چون من شدیدا" رو databasefirst تمرکز کردم و میخام بدونم واسه پروژه های بزرگ هم روش مناسبی هست؟
متشکرم

RIG000
دوشنبه 05 آبان 1393, 10:28 صبح
یکی یه چیزی بگه:)

rezaei_y
دوشنبه 05 آبان 1393, 12:41 عصر
دوست عزیز برو سمت EF Code First

توی وب سایت dotnettips.info هم هر سوالی داری جوابش هست

r4hgozar
دوشنبه 05 آبان 1393, 13:11 عصر
سلام.
در mvc خود مایکروسافت تاکید بر استفاده بر code first داره.
تو یاد گیری و فهم اولیش مقداری پیچیدگی وجود داره اما خیلی بهتر و راحت تر میشه در آینده برات.
موفق باشی

jaykob
دوشنبه 05 آبان 1393, 16:42 عصر
سلام

من افرادی رو دیدم که پروژه های بزرگ رو هم با Database First کار می کنند اما من خودم شخصا به Code First علاقه بیشتری دارم و باهاش راحت ترم چون احساس می کنم دستم توی کار باز تره و با Fluent API موجودیت ها و روند هامو کنترل می کنم

موفق باشید

RIG000
دوشنبه 05 آبان 1393, 18:02 عصر
من فیلم ها ی joli lerman رو دیدم اون تو فیلمش میگه که حتی تو یه کنفرانس تکرار کرده که تجربه نشون داده model first از اون دو تا بهتره. و میگه دلیلش اینه که خیلی پروژ های بزرگ کار کرده و باز هم میگه چون من میگم.
بحث اینه که زمان ایجاد codefirst بیشتر از databasefirst هست.... منم شنیدم که پروژهای بزرگ هم با databasefirst کار میشه. اما عملا با database first خیلی راحترم. codefirst هم تست گرفتم فقط modelfirst رو اصلا کار نکردم. ...
من همه ی انها رو میدونم که مایکروسافت چی میگه و ... موندم وقتی هیچ مشکلی با دیتابیس فرست نداریم چرا رو این مانوری نیست؟!

RIG000
دوشنبه 05 آبان 1393, 18:13 عصر
در ضمن پروژ های ما چه قدر بزرگ میشن که ما بخایم حتما از codefirst استفاده کنیم.!!!

r4hgozar
سه شنبه 06 آبان 1393, 08:13 صبح
سلام.
database firs و code first تفاوتی با هم ندارن در ساختار پایانی دیتابیس.
شاید تو نحوه اجرا تفاوت داشته باشن.
در ضمن به قول خودتون که خیلی ها رو دیدیم که با database first یا model first کار می کنن.

ولی یک جای کارتون رو شک دارم اینکه فکر نکم code first قدیمی تر از databse first باشه و جدیدتره.
شما با هرچی راحت تری کارت رو انجام بده.

fatima_h66
سه شنبه 06 آبان 1393, 10:34 صبح
اگر بتونید کد فرست کار کنید خیلی مسائل دیگه هم بهش میرسید.
اینکه ویزاردی کاری انجام بدید شمارو وابسته بار میاره و از مفاهیم کلیدی شی گرایی دور میکنه
شما با انجام عمل کد فرست میتونید مدلی داشته باشید ، بدون اینکه حتی دیتابیسی خاص تو ذهنتون باشه. و برای هرگونه دیتابیسی استفاده اش کنید.
با کد فرست فشار روتون زیادمیشه تا مجبور بشید شی گرایی رو درست و بجا بکار ببرید

fatima_h66
سه شنبه 06 آبان 1393, 10:37 صبح
به این تاپیک سربزنید ، دراین باره بحث شده است:

http://barnamenevis.org/showthread.php?367105-Database-First-%DB%8C%D8%A7-Code-First

RIG000
سه شنبه 06 آبان 1393, 12:57 عصر
سلام.
database firs و code first تفاوتی با هم ندارن در ساختار پایانی دیتابیس.
شاید تو نحوه اجرا تفاوت داشته باشن.
در ضمن به قول خودتون که خیلی ها رو دیدیم که با database first یا model first کار می کنن.

ولی یک جای کارتون رو شک دارم اینکه فکر نکم code first قدیمی تر از databse first باشه و جدیدتره.
شما با هرچی راحت تری کارت رو انجام بده.
منظورم مدت زمانی که برای ایجاد دیتابیس در دیتابیس فرست میذاریم بیشتر از زمانی که تو کد فرست میذاریم نیست .

RIG000
سه شنبه 06 آبان 1393, 13:06 عصر
اگر بتونید کد فرست کار کنید خیلی مسائل دیگه هم بهش میرسید.
اینکه ویزاردی کاری انجام بدید شمارو وابسته بار میاره و از مفاهیم کلیدی شی گرایی دور میکنه
شما با انجام عمل کد فرست میتونید مدلی داشته باشید ، بدون اینکه حتی دیتابیسی خاص تو ذهنتون باشه. و برای هرگونه دیتابیسی استفاده اش کنید.
با کد فرست فشار روتون زیادمیشه تا مجبور بشید شی گرایی رو درست و بجا بکار ببرید
من نمیدونم شی گراییی رو شما تو چی میبینید. ....
اما بحث اگه سر اینکه که کلاس ها از هم تکفیف میشن خب شما با دیتابیس فرست همین چیز ها رو داری .. در صورت نیاز کلاس جدید میسازی و و یه لیست کلی داری و به عنوان مدل استفاده میکنی...

اقای jaykob (http://barnamenevis.org/member.php?133240-jaykob)

میاد از flunt api استفاده میکنه ایشون اگه تو یه جدول 10 فیلد داشته باشه ... یابد همه رو تو یه configratiomn تنظیم کنه از مشخصات تا دیتا تایپ و ... و امیدوار باشه هی اشتباه نکنه.... و لی واسه 10 فیلد بین 30 تا35 خط کد داره ... این فقط واسه یه جدول سپس باید کلاس ها رو به هم ربط بده .... اما باز باید یه دید کلی از مدلی که میسازه و باید در انتها دیتابیس بشه داره....
------------- این وسط باید با complaxtype ها بیاد مشخص کنه که کدوما جدول بشن نشن و ... ارث بری ایجاد کنه .... کلا کلی مسیر رو بره ....
ایا واقعا نیاز هست ؟!
در ضمن هیچ مشکلی تو genraete و UPdate generate نیست .... بسیار درست کار میشه ...
من احساس میکنم که مایکروسافت داره کم لطفی میکنه به database first ها....

RIG000
سه شنبه 06 آبان 1393, 13:49 عصر
-------------------------------------------------------------------

sunn789
سه شنبه 06 آبان 1393, 17:54 عصر
من هم فقط نظرم رو میکم ، زمانیکه من با winforms در ویژال 2003 کارمیکردم بک گرید فگر کنم داشت و من میخواستم خیلی کارها با مکانات و پراپرتی ها انجام بدم که واقعا ً کار رو سخت کرده بود برای کنترل بیشتر شروع کردم به ساخت یک گرید ، خوب بگزریم گفتم که تمام تلاش برنامه نویسان ایم هست که برای عدم مشکل در برنامه و یا اسکالتی که در میان را ه برای استفاده از ویزاردها پیش میاد خودشون کنترل کدها رو در دست بگیرند ، از طرفی زمانی شما از کد استفاده میکنید چیزی مصل seed ,و یا استفاده از کوئری ها رو بهتر انجام خواهید داد ،
یه مثال واضح تر ، توی این چند سالی که سعی کردم برنامه نویسی یاد بگیرم (هنوز اول راهم) با چندین کامپوننت و اضافات هم هر از چند گاهی سعی میکردم استفاده کنم از نرم افزار های گزارش سازی تا ...
اما بعد ازیک زمان و باک در پروژه در میافتم بهتره یه کم کد بیشتر بنویسم اما ویزارد کار رو از دستم میبره بیرون.اینها فقط تجربه من بود
این هم یه سایت که 3 دلیل برای (http://www.itworld.com/article/2700195/development/3-reasons-to-use-code-first-design-with-entity-framework.html)Codefirst گفته

hakim22
سه شنبه 06 آبان 1393, 19:59 عصر
اصلی ترین مزیت Code First اینه که مدلهاتون رو میتوانید به راحتی به یک پروژه ی دیگه منتقل کنید و لازم نیست با SQL سروکله بزنید !
به علاوه اینکه Identity 2.0 هم با Code First کار میکنه هرچند روشهایی برای استفاده از اون به روش Database First هم وجود داره.
روش Code First کمک میکنه شما بدون هیچ آشنایی زیادی با SQL بتوانید پروژه های بزرگی بسازید و مدیریت کنید.
برای کسانی که به کد نویسی علاقه ی زیادی دارند استفاده از Code First روش بسیار جذابیه.

mehdin69
چهارشنبه 07 آبان 1393, 12:21 عصر
من سر کار که هستم تا بخوای پروژه بزرگ انجام دادم
و از روی تجربه میگم Model First و Database First بهترین راه هست
به نظرم حالا که Entity اینهمه پیشرفت داشته بهتره ازش استفاده کنیم
وقت خودمون و تلف نکنیم بهتره