PDA

View Full Version : امنیت و قدرت و سرعت و انعطاف پذیر ی adq.net & linq



mohammad kafiyan
دوشنبه 04 بهمن 1389, 19:58 عصر
با سلام برای کار با database و object ها کدام یک بهتر است با آنها کار کنیم
پروژه املاک مسکن را می خواهم هم تحت وب و تحت ویندوز پیاده سازی کنم
شما کدامیک را ترجیح می دهید
راستش با linq کار نکردم ولی ado.net را تاحدودی کار کردم
لطفا راهنمایی کنید
با تشکر از دوستان

Rejnev
دوشنبه 04 بهمن 1389, 20:48 عصر
پرسيدن نداره. قطعا Linq كارها رو خيلي ساده و سريعتر كرده.

mohammad kafiyan
دوشنبه 04 بهمن 1389, 22:40 عصر
خیلی ممنون دوست عزیز من با جستجو های کوچکی که کردم مراجعی پیدا کردم
ولی کامل نیستند
کد نویسی جهت attach و dettach کردن database با استفاده تکنولوژی linq در C# چگونه است

mehran_sh_t
سه شنبه 05 بهمن 1389, 08:44 صبح
سلام
اول database رو طراحی کنید (sql server) بعد در visual studio به پروژه تون یک linq to sql classes اضافه کنید، بعد از پنجره Server Explorer جداول مورد نیاز رو در محیط designer این شیئ بندازید و بعد اون رو Save کنید.
برای استفاده از کلاس هاش هم یک کلاس به نام اسمی که برای فایلتون انتخاب کردید (فایل dbml) که در ادامه اش هم DataContext داره، توی همون فایل ایجاد میشه. برای کار با Database در هر جای برنامه اول یک شیئ از این کلاس درست کنید (با connection string مربوط به Database اصلی که طراحی کردید) و بعد به تمام اون چیز هایی که در Designer وارد کرده بودید دسترسی دارید

mehrsa_fr
چهارشنبه 06 بهمن 1389, 15:42 عصر
استفاده از linq to sql در پروژه های small to medium خیلی خوبه ولی برای کارای بزرگتر entity framwork بهتر است

mohammad kafiyan
چهارشنبه 06 بهمن 1389, 21:18 عصر
ولی برای کارای بزرگتر entity framwork بهتر است
بیشتر توضیح بدهید منظورتون بفهمم

man_iran
چهارشنبه 06 بهمن 1389, 23:20 عصر
سلام
ببخشید یه سوال برام مطرح شد: یعنی می شه برای ارتباط با بانک و دیتابیس فقط از linq استفاده کرد و از کوئوری استفاده نکرد؟

mehran_sh_t
پنج شنبه 07 بهمن 1389, 07:04 صبح
linq مخفف عبارتLanguage Integrated Query هستش، خودش زبان query هستش.
query هاتون رو با linq می نویسید.
برای استفاده از یک بانک فقط connection string لازمه. بقیه اعمال Select, insert, delete, update رو می تونید با linq انجام بدید

man_iran
پنج شنبه 07 بهمن 1389, 09:44 صبح
linq مخفف عبارتLanguage Integrated Query هستش، خودش زبان query هستش.
query هاتون رو با linq می نویسید.
برای استفاده از یک بانک فقط connection string لازمه. بقیه اعمال Select, insert, delete, update رو می تونید با linq انجام بدید

خب من همیشه برای اینکه ارتباط سریع انجام بشه از procedure استفاده می کنم و تمام کوئری هام را توی sql می نویسم و توی سی شارپ فراخونی می کنم.
حالا با linq هم می شه این کار کرد؟
تفاوت هاشون تو چیه؟

mehran_sh_t
پنج شنبه 07 بهمن 1389, 10:47 صبح
بله، در C# هم میشه، گفتم، همه Query ها رو می تونید با LINQ هم بگیرید
دستوراتشون خیلی شبیه به همند. از لحاظ امنیت Stored Procedure و LINQ هر دو امنیت دارن (به video های بخش امنیت asp.net مراجعه کنید)
از لحاظ سرعت من اطلاعی ندارم، ولی از اون دیدی که من از دستورات LINQ دارم، به نظر میاد سرعت بیشتر داشته باشه (چون من با حجم زیاد داده کار نکردم، دوستانی که اطلاع دارن بگن بهتره)

یه مثال از تشابه کد می زنم

فرض کنید در SQL شما یک Procedure می نویسید که کل فیلد های یک کالای مشخص رو برگردونه، مشابه این:
SELECT * FROM Products WHERE ID = 1
حالا در LINQ به این صورت در میاد
from p in Products where p.id == 1 select p
توجه کنید که Products در فایل dbml تعریف شده، p هم یک متغیر برای گردش روی تمام رکورد هاست (چیزی مشابه foreach).

mahboube
جمعه 08 بهمن 1389, 17:48 عصر
سلام
راستش من خودم یه برنامه داشتم که با ado.net بود و چون احساس می کردم سرعت برنامه زیاد خوب نیست تصمیم گرفتم کدها را به linq to sql تبدیل کنم ولی وقتی تحقیق کردم تو چندتا مقاله خوندم
که linq سرعت نوشتن برنامه را بالا می بره ولی از لحاظ اجرا چون به هر حال باید به یک سری کد تبدیل شود از ad.net سرعت بیشتری نداره. در همین سایت هم گروهی از دوستان به این موضوع اشاره کردن.

mehrsa_fr
یک شنبه 10 بهمن 1389, 21:11 عصر
سلام
راستش من خودم یه برنامه داشتم که با ado.net بود و چون احساس می کردم سرعت برنامه زیاد خوب نیست تصمیم گرفتم کدها را به linq to sql تبدیل کنم ولی وقتی تحقیق کردم تو چندتا مقاله خوندم
که linq سرعت نوشتن برنامه را بالا می بره ولی از لحاظ اجرا چون به هر حال باید به یک سری کد تبدیل شود از ad.net سرعت بیشتری نداره. در همین سایت هم گروهی از دوستان به این موضوع اشاره کردن.
سرعت linq بالاتره و کاملا هم معلومه خودتون میتونید امتحان کنید و از نظر امنیت هم بهتر
http://vahidnasiri.blogspot.com/2009/11/linq-to-sql.html

من همین الان یه table با 72000 record با ado تو 0.7510430 ثانیه گرفتم ولی با linq تو 0.0300017 ثانیه



بیشتر توضیح بدهید منظورتون بفهمم
منظورم از پروزه های بزرگ یعنی حداقل بالای 50کاربر دیتابیس حجیم

hosseinrasouli
دوشنبه 11 بهمن 1389, 14:40 عصر
من هم با ADO هم با Linq to Sql و هم با Linq to Entity کار کردم . Linq To Entity از اونا خیلی بهتر , سریعتر و کارامدتر است ( از 2010 به vs اضافه شده ) و از همه مهتر کاملا با شی گرایی در ارتباط است .
حتما از این تکنولوژی استفاده کنید.

mrsalam
دوشنبه 11 بهمن 1389, 15:12 عصر
در صورت امکان در مورد Linq to Entity توضیح بیشتری بفرمائید و منابعی معرفی کنید