PDA

View Full Version : سوال: LINQ بهتر است یا ADO.NET



aliramazani
سه شنبه 05 مهر 1390, 13:14 عصر
LINQ بهتر است یا ADO.NET

دوستان با توجه به اینکه LINQ از نوشتن کدهای طولانی تر آدم رو بی نیاز می کنه ولی بعد از سال 2008 مایکرویافت دیگه چیزی از اون نگفت.

دلم می خواد یه مقایسه خوب با ado.net بشه و بتونم بهترین را انتخاب کنم.

water_lily_2012
سه شنبه 05 مهر 1390, 13:58 عصر
از نظر من اگر سیستم که می خواهد برنامه را اجرا کند پیشرفته است از Linq استفاده کن و گر نه از دات نت ورژن کمتر و ADO

reza_magical
سه شنبه 05 مهر 1390, 14:43 عصر
اگه یه نفر یه توضیح مختصر و کوتاه و رسا همراه با مثال در مورد هر دوی این دو اینجا قرار بده خیلی خوب میشه، هم من و هم بقیه اطلاعاتشون راجب این دو روش، کاملتر میشه.

aliramazani
سه شنبه 05 مهر 1390, 15:40 عصر
من از هر دوشون در حد ابتدایی استفاده کردم و چیزی که فهمیدم تا حالا اینه:
البته صد در صد راه حل واسه این مشکلات هست ولی خب من بلد نبودم:

ado.net مجبورم توی سورس برنامه آدرس اتصال به دیتابیس را قرار بدم که اگه برنامه توی شبکه نصب شد برای تغییر آدرس اتصال به دیتابیس و قرار دادن ip سرور مجبورم سورس برنامه را دستکاری کنم!

linq آدرس اتصال به دیتابیس را توی یک فایل در مسیر نصب برنامه قرار میده که توی شبکه زیاد جالب نیست چون همه می تونن آدرس اتصال و یوزرنیم و پسورد دیتابیس را ببینن.

حالا اگه راه حل هایی واسه این دو مشکل هست بهتره بگین تا بشه از هر کدوم بهترین استفاده را برد.

water_lily_2012
سه شنبه 05 مهر 1390, 16:28 عصر
برای استفاده از ADO.NET هم می توانید مسیر اتصال به دیتابیس را در یک فایل یا در APPConfig قرار دهید.

reza_magical
سه شنبه 05 مهر 1390, 16:56 عصر
برای استفاده از ADO.NET هم می توانید مسیر اتصال به دیتابیس را در یک فایل یا در APPConfig قرار دهید.
این کار چه معایب و مزایایی داره ؟

aliramazani
چهارشنبه 06 مهر 1390, 00:15 صبح
برای استفاده از ADO.NET هم می توانید مسیر اتصال به دیتابیس را در یک فایل یا در APPConfig قرار دهید.

تازه میشه مثل linq که همه می تونن کدها را ببینن.

sanay_esh
چهارشنبه 06 مهر 1390, 01:38 صبح
سلام دوستان عزیز و خوبم

امیدوارم قدرت لینک LINQ را در نظر داشته باشید که برای خود انفجاری بوده است

در برنامه هایی که بصورت تیمی و چند دیتابیس از انواع مختلف توسعه می یابیند بهترین ابزار موجود در دات نت فقط لینک هست

LINQ بهمراه Entity Framework کد نویسی را تا 80 درصد کاهش و کارایی و بهینه بودن برنامه را تا درصد زیادی بالا میبرد

مزایای لینک بسیار زیاد است و محدودیتهایی مانند عدم پیاده سازی Procedure های SQL ای در آن است ولی وقتی باهاش برنامه بنویسی معتادت میکنه و اونقدر شیفته نوع کدنویسی اون میشی که همه چی رو دوست داری بصورت لینک پیاده کنی

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

در ویژوال 2010 ابزارهای لینک خیلی بیشتر شده و نیازی نیست که مایکروسافت اشاره ای به لینک داشته باشه و خود به خود با ارائه این ابزارهای تمایل به استفاده از لینک را بیشتر کرده

موفق و موید باشید

تشکر یادت نره :خجالت:

gwbasic
چهارشنبه 06 مهر 1390, 07:35 صبح
نمی دونم چرا این اشتباه رو می کنید که دو مقوله جدا رو با هم مقایسه می کنید!!!
ADO.NET با اشیایی که در اختیار ما می ذاره این قابلیت رو می ده که برنامه بتونه با DataBase ارتباط برقرار کنه و دستوری رو بده و نتیج ای رو بر گردونه. این نکته خیلی مهم هست که بدونید دستوراتی رو که DataBase می فهمه همگی Sql هستند.
از طرفی LINQ کارش query زدن روی هر DataSource ای هست. این DataSource می تونه List یا DataSet یا Xml یا هر object دیگه ای باشه و این مزیت Linq هست که با ارزش هست وگرنه هر Query ای رو که ما به صورت Linq to sql یا Ling to EF می زنیم در نهایت به دستورات sql قابل فهم برای DataBase تبدیل می شه و این ADO.NET هست که باز این کار و این ارتباط رو انجام می ده

reza_magical
چهارشنبه 06 مهر 1390, 12:06 عصر
مرسی از توضیحاتتون.
اکثرا با ado آشنا هستند ، ولی با LINQ کمتر.. اگر مقاله یا آموزش یا مثالی در این زمینه دارید قرار بدید تا استفاده کنیم.
باز هم از همتون ممنونم.

mehdi.mousavi
چهارشنبه 06 مهر 1390, 12:43 عصر
دوستان با توجه به اینکه LINQ از نوشتن کدهای طولانی تر آدم رو بی نیاز می کنه ولی بعد از سال 2008 مایکرویافت دیگه چیزی از اون نگفت.

سلام.
خانم Julia Lerman در کتاب خودش بخوبی با این مساله اشاره می کنه: "LINQ to SQL نتیجه کار تیمی توسعه دهندگانی در Microsoft بود که بر روی توسعه زبان کار می کردند و از دل پروژه LINQ ظهور پیدا کرد. در همون دوران، تیم Data Programmability در مایکروسافت روی زبان Entity SQL کار می کرد. وقتی هر دو پروژه به حدی رسیدند که قابل ارائه به دیگر تیم های حاضر در مایکروسافت بودند، روشن شد که مایکروسافت دو تکنولوژی خوب برای پاسخگویی به سناریوهای مختلف در دست داره. تیم Entity Framework اقدام به اعمال تغییرات در LINQ کرد تا با entity ها کار کنه که باعث سردرگمی بیشتر توسعه دهندگان شد، چرا که LINQ to Entrity و LINQ to SQL بسیار شبیه هم هستند. در نهایت، LINQ to SQL به تیم Data Programmability سپرده شد و در نوامبر 2008 این تیم اعلام کرد که چون هر دو تکنولوژی هدف یکسانی رو دنبال می کنن، مایکروسافت Entity Framework رو توسعه خواهد داد. زیرا EF توان آدرس دهی بانک های متفاوت رو داره و به دلیل استفاده از EDM، با تکنولوژی های آتی مایکروسافت سازگار هستش".

LINQ، یک Query Language هستش و به شما امکان میده تا هر نوع داده ای رو از هر منبعی (حتی فایل های Text) استخراج کنید (بشرط وجود Provider مناسب). از طرف دیگه، مایکروسافت LINQ to SQL رو بصورت پویا توسعه نخواهد داد و فقط در حد نگهداری به اون نگاه می کنه. EF 4.1 در حال حاضر گل سر سبد تیم Data Programmability هستش و در حقیقت پیاده سازی مایکروسافت از EDM... بنابراین بهتون توصیه می کنم از همین ابتدا روی EF کار کنید، و بر اون مسلط بشید.

موفق باشید.

پاورقی: تصویر زیر معماری LINQ (و طبیعتا ارتباط اون با ADO.NET) رو نشون میده...

http://i.msdn.microsoft.com/cc163400.fig01_L%28en-us%29.gif

ghasem110deh
جمعه 12 دی 1393, 00:05 صبح
بهتون توصیه می کنم از همین ابتدا روی EF کار کنید، و بر اون مسلط بشید.


سلام
یعنی EF برنامه نویس (چه حرفه ای و چه مبتدی) رو بی نیاز به تکنولوژی های دیگه میکنه و همه جور امکانی رو فراهم میکنه ؟ !!!