PDA

View Full Version : بهترین روش دسترسی به داده ها در پروژه های بزرگ



ali_mnkt
یک شنبه 28 آبان 1391, 23:23 عصر
با سلام

به نظرتون در پروژه های بزرگ بهترین روش برای دسترسی به داده ها چیه ؟ منظورم نحوه پیاده سازی Data Acccess Layer هستش . منظورم هم از بهترین روش هم می تونه از لحاظ سرعت کد نویسی ، حجم کد نویسی ، پیچیدگی کد نویسی و .... می تونه باشه .
بذارید یک مثال بزنم :

مثلا بعضی ها می یان کد های مربوط به database رو در برنامه در قالب یک رشته می نویسن یا تولید می کنن و به پایگاه داده می فرستن
یک حالت دیگه استفاده از store procedure هست که تمام کد ها رو در sql و درقالب sp می نویسیم و فقط از برنامه دستور اجرا شدنش رو می دیم ( معمولا آقای کرامتی این روش رو تدریس می کنن )

یک روش دیگه می تونه استفاده از Entity Framework باشه که یک مشگلش اینه که کدهای linq در linq to entity اینه که اگر کدها پیچیده بشه نوشتنش مشگله

خلاصه این که می خوام یه بحثی در این زمینه بگنیم و به یک نتیجه ای برسیم که در پروژه های بزرگ بهترین روش کدومه ( توجه بشه که پروژه بزرگ منظور پروژه های ملی هستش )

crazy_1892
یک شنبه 28 آبان 1391, 23:37 عصر
من Ef رو پیشنهاد میکنم

zarifcomputer
دوشنبه 29 آبان 1391, 00:24 صبح
با سلام

به نظرتون در پروژه های بزرگ بهترین روش برای دسترسی به داده ها چیه ؟ منظورم نحوه پیاده سازی Data Acccess Layer هستش . منظورم هم از بهترین روش هم می تونه از لحاظ سرعت کد نویسی ، حجم کد نویسی ، پیچیدگی کد نویسی و .... می تونه باشه .
بذارید یک مثال بزنم :

مثلا بعضی ها می یان کد های مربوط به database رو در برنامه در قالب یک رشته می نویسن یا تولید می کنن و به پایگاه داده می فرستن
یک حالت دیگه استفاده از store procedure هست که تمام کد ها رو در sql و درقالب sp می نویسیم و فقط از برنامه دستور اجرا شدنش رو می دیم ( معمولا آقای کرامتی این روش رو تدریس می کنن )

یک روش دیگه می تونه استفاده از Entity Framework باشه که یک مشگلش اینه که کدهای linq در linq to entity اینه که اگر کدها پیچیده بشه نوشتنش مشگله

خلاصه این که می خوام یه بحثی در این زمینه بگنیم و به یک نتیجه ای برسیم که در پروژه های بزرگ بهترین روش کدومه ( توجه بشه که پروژه بزرگ منظور پروژه های ملی هستش )

سلام بحث جالبی را شروع کردید
به نظر بنده لازمه اجرای پروژه های بزرگ داشتن یک تیم قوی با تخصص های مختلف است . اگر در مورد یک کار بزرگ حرف میزنید حتما منظور شما تولید یک نرم افزار توسط یک نفر نیست که هم کار کد نویسی را انجام دهد و هم کار دیتابیس . بهتر است که در صورت امکان کار کد نویسی نرم افزار حداقل توسط یک برنامه نویس اجرا شود و کار های مربوط به دیتابیس هم صرفا توسط مدیر دیتابیس . این کار محاسن و معایب خاص خودش را دارد که البته من فکر میکنم محاسن آن خیلی بیشتر از اشکالات آن است . اما سعی میکنم هر دو را توضیح دهم
-----------------------------------------------------------------------------------------------------------------
محاسن:
سرعت تحلیل و اجرا بالاتر میرود.
تمرکز هر کدام ر روی حیطه کاری خود بیشتر میشود .
در صورت نیاز به رفع اشکال ، عیب یابی و رفع ایرادات با سرعت بیشتری انجام خواهد شد .
مدیریت پروژه دقیق تر انجام میشود
----------------------------------------------------------------------------------------------------------------
معایب:
ممکن است به دلیل مچ نبودن اعضاء تیم اجرای پروژه با اختلال روبرو شود .
در صورت عدم وجود روحیه کار تیمی بین اعضاء گروه ، سرعت پیشرفت پروژه کم شود.
در زمان بروز اشکالات یکی کار را به گردن دیگری بیاندازد و از رفع مشکل طفره برود
----------------------------------------------------------------------------------------------------------------
البته در صورتیکه در ابتدای کار اعضاء تیم با دقت انتخاب شوند معایب هم به حداقل خواهد رسید

من با روش آقای کرامتی موافقم

ali_mnkt
دوشنبه 29 آبان 1391, 00:44 صبح
سلام بحث جالبی را شروع کردید
به نظر بنده لازمه اجرای پروژه های بزرگ داشتن یک تیم قوی با تخصص های مختلف است . اگر در مورد یک کار بزرگ حرف میزنید حتما منظور شما تولید یک نرم افزار توسط یک نفر نیست که هم کار کد نویسی را انجام دهد و هم کار دیتابیس . بهتر است که در صورت امکان کار کد نویسی نرم افزار حداقل توسط یک برنامه نویس اجرا شود و کار های مربوط به دیتابیس هم صرفا توسط مدیر دیتابیس . این کار محاسن و معایب خاص خودش را دارد که البته من فکر میکنم محاسن آن خیلی بیشتر از اشکالات آن است . اما سعی میکنم هر دو را توضیح دهم
-----------------------------------------------------------------------------------------------------------------
محاسن:
سرعت تحلیل و اجرا بالاتر میرود.
تمرکز هر کدام ر روی حیطه کاری خود بیشتر میشود .
در صورت نیاز به رفع اشکال ، عیب یابی و رفع ایرادات با سرعت بیشتری انجام خواهد شد .
مدیریت پروژه دقیق تر انجام میشود
----------------------------------------------------------------------------------------------------------------
معایب:
ممکن است به دلیل مچ نبودن اعضاء تیم اجرای پروژه با اختلال روبرو شود .
در صورت عدم وجود روحیه کار تیمی بین اعضاء گروه ، سرعت پیشرفت پروژه کم شود.
در زمان بروز اشکالات یکی کار را به گردن دیگری بیاندازد و از رفع مشکل طفره برود
----------------------------------------------------------------------------------------------------------------
البته در صورتیکه در ابتدای کار اعضاء تیم با دقت انتخاب شوند معایب هم به حداقل خواهد رسید

من با روش آقای کرامتی موافقم

منظور من کار تیمی نبود منظور نحوه نوشتن کدهای دسترسی به داده هاست

ali_mnkt
دوشنبه 29 آبان 1391, 00:48 صبح
من Ef رو پیشنهاد میکنم

با تشکر
مشکلی که داره اینه که در query های سنگین و پیچیده کار سخت می شه چون معمولا از دستورات Linq استفاده می کنن .

na3er-faraji
دوشنبه 29 آبان 1391, 01:32 صبح
بهترین روش استفاده از ef هستش. اونقدرها هم سرعت پایین نیست. استفاده از ef مزایایی داره که حتی sp نداره . مثلا اینکه شما راحت میتونید دیتابیس رو عوض کنید :)

ali_mnkt
دوشنبه 29 آبان 1391, 23:47 عصر
بهترین روش استفاده از ef هستش. اونقدرها هم سرعت پایین نیست. استفاده از ef مزایایی داره که حتی sp نداره . مثلا اینکه شما راحت میتونید دیتابیس رو عوض کنید :)

فکر کنم عوض کردن database یک در هزار اتفاق بیفته ولی در عوض ما باید با دستورات linq به صورت کامل آشنا بشیم

darkwish
دوشنبه 29 آبان 1391, 23:52 عصر
EF چیه میشه یه خورده راجعه به اون توضیح بدید که چیکار می کنه و چرا بهتر از SP هستش.

na3er-faraji
سه شنبه 30 آبان 1391, 12:05 عصر
ef مخفف entity framework هستش . تو همین سایت و اینترت سرچ بزنید هزاران مطلب راجع بش پیدا می کنید

masoud_z_65
سه شنبه 30 آبان 1391, 16:59 عصر
نظرتون درمورد NHibernate چیه دوستان؟ میشه ایراد و معایبش رو بگید....

EnKamran
سه شنبه 30 آبان 1391, 17:07 عصر
نظرتون درمورد NHibernate چیه دوستان؟ میشه ایراد و معایبش رو بگید....

دوست عزیز NHibernate چرا ؟ وقتی EF هست چرا از اون استفاده کنید؟

saeed_sho
چهارشنبه 01 آذر 1391, 19:25 عصر
در ادبیات این دو تا جمله تفاوت زیادی با هم دارن:
1-با این روش نمیشه اینکارو انجام داد.
2-من نمیتونم با این روش اینکارو انجام بدم.
با هدو روش میشه خیلی کارا کرد