PDA

View Full Version : بهترین مدل دسترسی به بانک اطلاعات در سی شارپ



hosseinsinohe
چهارشنبه 11 فروردین 1389, 20:27 عصر
با سلام خدمت اساتید
به نظر شما بهترین مدل دسترسی به بانک اطلاعات در زبان سی شارپ چیست؟
DataSet?
NHibranate?
Entity Framework?

تعریف من از بهترین مدل سرعت بالاتر و مدیریت بهتر می باشد

xcomlock
چهارشنبه 11 فروردین 1389, 21:34 عصر
کلاس DataSet بعنوان یک محفظه Offline داده ای طراحی شده است . این کلاس هیچ اطلاعی از اتصالات پایگاه داده ای ندارد. وچون به صورت آفلاین با داده ها سرو کار دارد پس با یک بار اتصال به پایگاه تمامی داده ها را دورنش ذخیره میکند . سرعت و امنیت به نظر من در کلاس DataSet بیشتر است.

armiin
پنج شنبه 12 فروردین 1389, 00:19 صبح
کاملا بستگی به نوع استفاده از Database داره
البته باید بینید کدارم روش بهینه (از نظر زمان و ... ) است .مثلا اگر از کامپوننت خاصی برای GridView استفاده می کنید از روش Connected (کد) استفاده نمیشه , اون وقت مجبور میشید همه ی تنظیمات برای نمایش GridView را با کد در رویدادهایش بنویسید که اصلا عاقلانه نیست !
کلا تا حدی که میتونید کد هارو به Sql ببرید( Store proc و view و Function و ... ) و تو برنامتون فراخوانی کنید !

Mahdi.Kiani
پنج شنبه 12 فروردین 1389, 09:42 صبح
سلام
در مباحث برنامه نویسی هیچگاه بهترین راه وجود نداشته و نخواهد داشت.اگر وجود داشت ابزار های جدید ارائه نمی شد. هر ابزاری که ارائه می شه دارای مزایا و معایبی می باشد که شما می بایستی طبق نیازتان از آن ها استفاده کنید.
حالا من یک سوال از شما دارم، به نظر شما "بهترین" راه برای پاس کردن مقادیر بین لایه ها ی DAL و BLL در یک معماری چند لایه چیست؟ استفاده از DataTable؟ DataSet؟TypedDataSet؟ DataReader ؟ Custom entity Objectsها? یا Scalar valueها؟
هر یک از این ابزار ها دارای مزایا و معایبی می باشند. به عنوان مثال DataReader دارای سرعت بهتری می باشد. اما از معایب آن Forward only و Connection Oriented بودن ان می باشد.
DataSet دارای قدرت بیشتری نسبت به DataReader می باشد چرا که اطلاعات بیشتری را بر می گرداند و امکانات بیشتری را ارائه می دهد. مثلا برقراری Relation که یکی از قدرت های Dataset به شمار می رود. اما به همین اندازه دارای هزینه بیشتری می باشد. علاوه بر این از معایب هر دو این ها (Dataset و DataReader)، مسئله Strongly Type بودن می باشد که هیچ یک از این دو نیستند. در اینجا موضوع Typed Dataset ها مطرح می شه که آن ها هم دراای مزایا و معایب خوشان هستند.

همچنین در سایر موارد. در رابطه با LINQ to SQL ویا Entity Framework نیز همین مسئله صادق است.
تنها نکته ای که مسلم است این است که در پشت تمامی این ابزارها از فراخوانی های ADO.ET استفاده می گردد. پس همواره باید سعی کنید بین آن چه که شما انتظار دارید و آنچه که این ابزراها ارائه می دهند(با در نظر گرفتن مزایا و معایب آن ها) تعادلی برقرار کنید.
توصیه من این است که ابتدا نگاهی عمیق تر به ابزرا های موجود برای کار با دیتابیس و معماری های موجود بیاندازید و به مزایا و معایب هر یک آشنا شوید و آن چیزی نیست که بتوان در غالب یک تاپیک به آن پرداخت. می بایستی به مقالات و کتب مختلف در این زمینه مراجعه کنید.
موفق باشید.