السلام عليكم :
أود أن اطرح موضوعا وهو طرق الوصول الى قواعد البيانات حيث هناك الطريقة التقليدية وهي انشاء كائن اتصال ومن ثم فتح الاتصال وتنفيذ أوامر Sql مباشرة أو الاعتماد على تقنية linq to sql الجديدة فأيهما الأفضل من ناحية الأداء وشكراً
السلام عليكم :
أود أن اطرح موضوعا وهو طرق الوصول الى قواعد البيانات حيث هناك الطريقة التقليدية وهي انشاء كائن اتصال ومن ثم فتح الاتصال وتنفيذ أوامر Sql مباشرة أو الاعتماد على تقنية linq to sql الجديدة فأيهما الأفضل من ناحية الأداء وشكراً
لايمكنك الفصل بينهما وتقول أن هذا أفضل او ذاك لكل منهما استخداماته وقد تضطر في الكثير من الأحيان إلى استخدام الطريقتين معا
الطريقة الأفضل هي تعلم جميع الطرق المتوفرة قديمها وحديثها وتطبيق الطريقة المناسبة للبرنامج المناسب - مثلا أنا لاأحب أن أتعامل مع برمجة قواعد البيانات من خلال الأكواد بل أفضل الاعتماد على المعالجات ولكن هناك بعض البرامج التي قمت بتنفيذها اضطررت لاستخدام الأكواد لتنفيذ ما أريد فلو لم أتعلم كلتا الطريقتين لما استطعت تنفيذ برنامجي بالصورة المطلوبة
ثم ان تقنية Linq ليست محصورة بـ Linq to SQL فقط هناك الكثير من أوجه استخدام Linq في برامجنا مثل Linq to XML أو Linq to Dataset انظر موضوعي مقدمة إلى Linq في فيجول بايزيك لترى بعض أوجه استخدام Linq في برامجنا
تم تعديل هذه المشاركة بواسطة محمد سامر أبو سلو في 1 أغسطس 2008 في 14:28
عن عائشة رضي الله عنها أن النبي صلى الله عليه وسلم قال: إن الله يحب إذا عمل أحدكم عملا أن يتقنه
نعيب زماننا والعيب فينا ... وما لزماننا عيب سوانا
ونهجو ذا الزمان بغير ذنب ... ولو نطق الزمان لنا هجانا
محمد سامر أبو سلو
Linq To Sql من ناحية توفير الوقت و المجهود لا تقارن بأي طريقة اخري
و ايضا مع استخدامها لا يحتاج المبرمج ان يكون محترف في قواعد البيانات ولا في طرق الاتصال بها
و ايضا مع وجود الادوات و ال controls التي تدعم LinqDataSourec اصبح الامر اكثر رفاهية بالنسبة للمبرمج
و ايضا تقلل الفجوة بشكل كبير بين عالم relational database و عالم OOP و يظهر مصطلح Object Orient Database
و لكن من ناحية الاداء من وجهة نظري اقل بكثير من الطريقة التقليدية
و ذلك لفقد كثير من وسائل تحسين الاداء مثل :
- precompiled code عند استخدام stored procdures
- execution plan reusability
- indexed views
و غيرها من مميزات database engine
و لكن مع linq في كل مرة يتم تنفيذ نفس الكود يقوم بعمل query generation
و ارسالة لل database engine عبر الشبكة او حسب الحالة
و تبدأ كل مرة في عمل syntax checking و compilation
و لكن لا شك انها اضافة قوية جدا و انا حاليا استخدم linq بغزارة
و اظن في المستقبل سيتم تحسين اداءها بشكل كبير و سوف تكتسح الطرق الاخري