PDA

View Full Version : برنامه نویسی چند لایه در Linq To Sql



morteza570
جمعه 17 دی 1389, 17:09 عصر
دوستان اگر مطالبی راجب به این موضوع دارند
در این بخش قرار دهند .

ehsanvahab
جمعه 17 دی 1389, 18:17 عصر
حتما LINQ
شما با LINQ به راحتی میتونی کد SQL رو که داری تو محیط برنامه نویسی مینویسی خطا یابی کنی
حالا اگه بخوای با روش قبلی به ADO کوئری پاس کنی اونم وقتی که داری با QueryB اونو میسازی چقدر خطایابیش طول میکشه؟

Roia_del
شنبه 18 دی 1389, 10:43 صبح
اینکه LINQ بهتره شکی نیست.ولی دلیلی که من ازش استفاده نمی کنم.((برای راحتی فایل های bml بود پسوندش یادم نیست میسازه. در حالی که من با چند تا تابع ساده Data Access و با چند تا تابع دیگه Business Rule رو راه انداختم با Ado.NET. کمترین زمان،کد سریع اینا واسه من ملاک هست نه صرفا نام تکنولوژی.

morteza570
شنبه 18 دی 1389, 19:51 عصر
با توجه به استفاده برنامه نویسان برای برنامه های تیمی خودشون در سطح جهان
و به کار گیری این تکنولوژی
دوستان اگر مطلبی راجب به برنامه نویسی لایه ای با LinQ دارند در این بخش قرار دهند.

morteza570
شنبه 18 دی 1389, 19:56 عصر
دوست عزیز
این تکنولوژی از هر نظر سر تر است
زمان در این تکنولوژی 20 برابر کمتر از Ado است.
کوئری گرفتن بدون نیاز به دستورات Sql و در محیط ویژوال
و ده ها برتری دیگر

Vahid_moghaddam
شنبه 18 دی 1389, 20:24 عصر
شما مطمئنید linqtosql از ado.net سریعتره؟ هر query در نهایت به یک عبارت sql تبدیل می شه. اگه منبعی برای این حرف دارید ذکر کنید.

ricky22
شنبه 18 دی 1389, 20:41 عصر
جناب مهرداد افشاری از کاربرهای برتر ایرانی سایت Stackoverflow در اینجا گفتن که :

LINQ to SQL is a data access framework built on ADO.NET and new language features that makes SQL Server data available natively in the object oriented style of programming.

-----------------


شما مطمئنید linqtosql از ado.net سریعتره؟ هر query در نهایت به یک عبارت sql تبدیل می شه. اگه منبعی برای این حرف دارید ذکر کنید. http://www.codeproject.com/KB/database/linqVsADO/linqAdoComplex.JPG
منبع (http://www.codeproject.com/KB/database/linqVsADO.aspx)

---------------------------


اینکه LINQ بهتره شکی نیست.ولی دلیلی که من ازش استفاده نمی کنم.((برای راحتی فایل های bml بود پسوندش یادم نیست میسازه. در حالی که من با چند تا تابع ساده Data Access و با چند تا تابع دیگه Business Rule رو راه انداختم با Ado.NET. کمترین زمان،کد سریع اینا واسه من ملاک هست نه صرفا نام تکنولوژی. دوست عزیز DBML
اگر سیستمی داشته باشید که مثلا 100 جدول در بانک اطلاعاتی داشته باشد چطوری به این سادگی DAL را می سازید؟
----------------------
کلا توصیه ماکروسافت LINQ TO entities یا همان Entity framework هست به جای LINQ to Sql

ricky22
شنبه 18 دی 1389, 20:46 عصر
دوست عزیز
این تکنولوژی از هر نظر سر تر است
زمان در این تکنولوژی 20 برابر کمتر از Ado است.
کوئری گرفتن بدون نیاز به دستورات Sql و در محیط ویژوال
و ده ها برتری دیگر
20 برابر؟!

mehrdad201
شنبه 18 دی 1389, 20:49 عصر
لطفا وقتی مطلبی معرفی میکنید منبعش رو هم بذارید. خیلی دوست دارم بدونم این 20 برابر رو از چه منبعی نقل فرمودید.

Vahid_moghaddam
شنبه 18 دی 1389, 20:55 عصر
در مقایسه سرعت این لینک ها رو ببینید:
http://toomanylayers.blogspot.com/2009/01/entity-framework-and-linq-to-sql.html
http://blogs.msdn.com/b/adonet/archive/2008/03/27/ado-net-entity-framework-performance-comparison.aspx

البته با در نظر گرفتن تمام پارامترها از جمله سرعت develop کردن پروژه، استفاده از linqToSql و EntityFramework روش بسیار خوبیه.

در مورد تعداد زیاد جدول ها:
حرف شما کاملا درسته. با زیاد شدن جدول ها، ساختن DAL کار سختیه. می شه از نرم افزارهای Code Generator استفاده کرد تا کار بسیار ساده تر بشه اما مساله تعداد زیاد کلاسها، نگهداری کد رو سخت می کنه. در این مورد، اگه به هر دلیل نخواهیم از Ef و ... استفاده کنیم، ایجاد کلاس های ژنریک و استفاده از Reflection برای نوشتن DAL انتخاب مناسبیه.

Roia_del
سه شنبه 21 دی 1389, 08:49 صبح
گر سیستمی داشته باشید که مثلا 100 جدول در بانک اطلاعاتی داشته باشد چطوری به این سادگی DAL را می سازید؟.

من از Code Generator خودم استفاده می کنم که باهاش راحت ترم.


اگر خدای نکرده فایل dbml تون خراب شد، چی کار میکنین؟ نگین که نمیشه ، چون ممکنه، واسه دوست من همچین اتفاقی افتاد بیچاره داشت گریه میکرد.یا اگه تو نسخه های بعدی یه چزای دیگه اتفاق بیفته. فکر ناسازگاری ها رو که البته کردین.

ricky22
سه شنبه 21 دی 1389, 13:45 عصر
.



اگر خدای نکرده فایل dbml تون خراب شد، چی کار میکنین؟ نگین که نمیشه ، چون ممکنه، واسه دوست من همچین اتفاقی افتاد بیچاره داشت گریه میکرد.یا اگه تو نسخه های بعدی یه چزای دیگه اتفاق بیفته. فکر ناسازگاری ها رو که البته کردین.
:لبخند:


من از Code Generator خودم استفاده می کنم که باهاش راحت ترم.
درباره CodeSmith تحقیق کنید.

m.hamidreza
چهارشنبه 22 دی 1389, 15:12 عصر
جناب مهرداد افشاری از کاربرهای برتر ایرانی سایت Stackoverflow در اینجا گفتن که :


-----------------

http://www.codeproject.com/KB/database/linqVsADO/linqAdoComplex.JPG
منبع (http://www.codeproject.com/KB/database/linqVsADO.aspx)

---------------------------

دوست عزیز DBML
اگر سیستمی داشته باشید که مثلا 100 جدول در بانک اطلاعاتی داشته باشد چطوری به این سادگی DAL را می سازید؟
----------------------
کلا توصیه ماکروسافت LINQ TO entities یا همان Entity framework هست به جای LINQ to Sql




این مقاله Codeproject مقاله مستند و جامعی نیست. شرایط مقایسه اش هم درست نیست.
این مقاله (http://www.codeproject.com/KB/linq/performance_comparisons.aspx) رو میتونید مطالعه کنید. کلا مقایسه سرعت موضوع نسبی ای هست و نمیشه گفت همیشه کی از کی سریعتر هست.
موفق باشید.

morteza570
یک شنبه 26 دی 1389, 14:07 عصر
دوستان از موضوع بحث خارج شدید
بحث روی سرعت نیست .

من میخوام یه برنامه بنویسم با Linq
و در اون از معماری چند لایه استفاده کنم
برام خیلی مهمه

اگر کسی با معماری linq آشنایی داره راهنماییم کنه .

:عصبانی++:

morteza570
سه شنبه 28 دی 1389, 13:41 عصر
یکی جواب بده
برنامه نویسا کجان ؟؟؟

reza344
شنبه 07 اسفند 1389, 20:44 عصر
به این پست یه سری بزن حتما به دردت میخوره :چشمک:

http://barnamenevis.org/showthread.php?276406

موفق باشید

بهنام بهمنی
یک شنبه 08 اسفند 1389, 05:43 صبح
جدا از مساله Linq يا ADO ذر ليتک زير راجع به برنامه نويسي 3 لايه صحبت شده است:

لينک (http://www.asp.net/data-access/tutorials)

aserfg
یک شنبه 08 اسفند 1389, 11:42 صبح
20 برابر؟! 203 در مقابل 109 بیست برابر !!!

[/URL]
درج یک ردیف با استفاده از sp
Inserting a Row — ADO vs. LINQ Using a Stored Procedure



The median value of ADO insert is far more than that of LINQ. LINQ wins in this situation.

http://www.codeproject.com/KB/linq/performance_comparisons/image001.png
درج یک ردیف بدون sp
Inserting a Row — ADO vs. LINQ without Using a Stored Procedure



The median value of ADO is more than that of LINQ which suggests that LINQ is a winner in this situation

http://www.codeproject.com/KB/linq/performance_comparisons/image002.png



Reading from a Table -ADO vs. LINQ

There is a large difference between median values of LINQ and ADO as far as reading from table is concerned. ADO wins here

می بینیم که در مقام خواندن اطلاعات از جدول ado.net برنده میدان است و با فاصله بسیار زیاد- is a large difference- که این بسیار با اهمیت تر از موارد گذشته است و تاثیر گذار تر در performance برای توسعه دهندگان وب

http://www.codeproject.com/KB/linq/performance_comparisons/image003.png

Reading XML Files ADO vs. LINQ


There is only a small difference of 12304 ticks and by definition 1 second has about 1 billion ticks. LINQ marginally wins here
http://www.codeproject.com/KB/linq/performance_comparisons/image004.png

Filling Dataset using LINQ and ADO and then Performing Filter Operations

ado.net برنده
http://www.codeproject.com/KB/linq/performance_comparisons/image006.png
دوستان برای مقایسه بهتر و دیدن سورسهای این مقایسه به آدرس ذیل مراجعه کنند :
[URL]http://www.codeproject.com/KB/linq/performance_comparisons.aspx (http://www.codeproject.com/KB/database/linqVsADO.aspx)

در کل هر کدام معایب و مزایایی دارن ولی بنده ado.net رو ترجیح می دم با وجود سرعت بالا در کدنویسی و راحتی با linq


موفق باشید.

keivan mousavi
یک شنبه 08 اسفند 1389, 12:01 عصر
با سلام من فقط یک مطلبو بگم فکر کنم با بیان این مطلب بحث سرعت تموم بشه
وقتی شما در SQL از Stored Procedures استفاده کنید این کدها در سطح باینری نگه داشته میشود در صورتی که وقتی شما از LINQ استفاده میکنی در واقع این کد تبدیل به query string های SQL میشه
حالا قضاوت با شما
سرعت کدهای باینری بیشتره یا LINQ

morteza570
یک شنبه 29 اسفند 1389, 12:54 عصر
با سلام من فقط یک مطلبو بگم فکر کنم با بیان این مطلب بحث سرعت تموم بشه
وقتی شما در SQL از Stored Procedures استفاده کنید این کدها در سطح باینری نگه داشته میشود در صورتی که وقتی شما از LINQ استفاده میکنی در واقع این کد تبدیل به query string های SQL میشه
حالا قضاوت با شما
سرعت کدهای باینری بیشتره یا LINQ

شما همون Sql رو استفاده کن . خداحافظ :قهقهه: