تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
الافتراضي مقدمة إلى تقنية LINQ القادمة مع Orcas !
#1
منقول من المنتدى القديم
كاتب المقال النبهاني مبرمج محترف من الدرجة الأولى


اقدم لكم هذا الموضوع الذي قد يجده البعض سابقا لأوانه ، وهو يتحدث عن تقنية LINQ التي يحملها اوركاس الينا ( الاصدار 2008 من Visual Studio ) ولكن في الحقيقة انه استغلال للوقت وتعلم لشيء جديد سيجعلنا قادرين على العمل معه فور صدور الاصدار النهائي من Visual Studio 2008 والملقب بـ Orcas .

هذا المقال مقال مترجم هذا

مصدره للأمانه ، ولا تنسوا ان الترجمه هي مصدر رئيسي للمعلومات ادت الى تفوق امتنا الاسلامية العربية في قديم الزمان وهي الوسيلة التي جعلت الغرب اليوم يعيش في هذه الثورة العلمية العظيمة التي يشهدها العالم اليوم .

وأحب التنويه هنا أنني كتبت هذه المقاله أولا لـجامعة أهلا عرب وقد وضعت نسخه منه هنا ليستفيد اكبر قدر ممكن من المبرمجين والقراء منه واتباعا لسياسه عدم احتكار العلم والمعرفه والحفاظ عليها من الضياع .


اولا : ما هي تقنية LINQ ؟
لقد تحدثت في هذا الموضوع :تعرف على Microsoft Visual Studio 2008 Code Name Orcas عن هذه التقنية بشكل مختصر وهناك تجد جواب هذا السؤال فلا داعي للتكرار

ثانيا : ما هي LINQ to SQL ؟
هي عباره عن اداه تتوفر في أوركاس ، تقوم هذه الأداة بعرض قاعدة البيانات التي تتصل بها على هيئة فئات net. مما يساعدك على استخدام تقنية LINQ وما تتضمنه من امكانيات مختلفه كعرض البيانات وتعديلها وحذف البيانات واضافه بيانات جديده وغيرها من الاوامر التي تمكننا لغه SQL سابقا من القيام بها . ويجب ان نعلم ايضا ان هذه الاداة لا تغفل مكونات قاعدة البيانات الاخرى كالـ Views, Transictions and Stored Procedures .

وتوضح هذه الصورة أداة LINQ to SQL التي ترجمت قاعدة بيانات Northwind الشهيره :
[ATTACH=CONFIG]719[/ATTACH]

ويوضح هذا الفيديو كيفية استخدام هذا المحرر كتابه بعض الاكواد بهذه التقنية . للمزيد من المعلومات حول هذا الفيديو الرجاء النقر هنا . وخذها نصيحه مني ، لا تفوت الفلم السابق وحاول قدر الامكان ان تشاهده قبل ان تكمل هذه المقاله لانه بالفعل يوضح لك الاستخدام العملي لهذه التقنية بلغه #C ( وطبعا مع VB.NET سيكون مثله ) وسيكشف لك الكثير من الغموض !
[ATTACH=CONFIG]720[/ATTACH]
ونلاحظ من هذه الصوره كيف ان قاعدة البيانات تظهر جداولها كفئات net. وهنا السر في كيفية الاستخدام المباشر للجداول والكائنات الاخرى لقاعدة البيانات في اكوادك
كيفية استخدام هذا المحرر كتابه بعض الاكواد بهذه التقنية . للمزيد من المعلومات حول هذا الفيديو الرجاء النقر هنا . وخذها نصيحه مني ، لا تفوت الفلم السابق وحاول قدر الامكان ان تشاهده قبل ان تكمل هذه المقاله لانه بالفعل يوضح لك الاستخدام العملي لهذه التقنية بلغه #C ( وطبعا مع VB.NET سيكون مثله ) وسيكشف لك الكثير من الغموض !

ونلاحظ من هذه الصوره كيف ان قاعدة البيانات تظهر جداولها كفئات net. وهنا السر في كيفية الاستخدام المباشر للجداول والكائنات الاخرى لقاعدة البيانات في اكوادك
والآن حان وقت الجد الحقيقي ، وقت التعامل مع الاكواد :

التعامل مع تقني LINQ بالكود ( أمثله ) :
1- الاستعلام عن قيمه معينه بإستخدام LINQ :
لاحظ الكود التالي ( مرفق بصيغه VB.NET و #C ) :
[ATTACH=CONFIG]721[/ATTACH]
[ATTACH=CONFIG]722[/ATTACH]
من خلال محاوله قراءه الكود السابق نجد انه يقابل شيئا مثل الجمله التالية في SQL :

كود:
SELECT P FROM Products WHERE Category.CategoryName = "Beverages"
لكننا نلاحظ انه من احد الفوائد الرئيسية هنا اننا حصلنا على كائن يسمى Products يحتوي على ناتج الجمله السابقة بشكل مباشر !


2- تحديث Product في قاعدة البيانات :
الكود التالي يمثل مقابل لجمله استعلام لتحديث الجدول Products في السجل الذي تكون فيه قيمه الحقل ProductName تساوي Toy 1 :

[ATTACH=CONFIG]723[/ATTACH]

لاحظ كيف ان عمليه الجفظ والتعديل اصبحت سهله ؟ أليس ما تريده انت كمبرمج هو الحصول على طرق اسهل للعمل وتقليل حجم الكود لتنفيذ عمليه معينه مع الاحتفاظ بتحكم جيد بل ممتاز بالعمل ؟ هذا ما تقدمه تقنية LINQ للمبرمجين في مجال قواعد البيانات !

أطلب من أحدكم ان يثبت لي انه قرأ هذا السطر ويكتب بنفسه الكود كاملا في Visual Studio 2005 و net framework 2.0 وما قبلهما بإستخدام كائن SQLCommand او OleCommand لا لشيء ، ولكن لأتأكد أن احدا تابع القراءه وقرأ وفهم والا فعليه بالسؤال


الملفات المرفقة صورة/صور
                   
الرد }}}
تم الشكر بواسطة:
#2
منقول من المنتدى القديم
كاتب المقال النبهاني مبرمج محترف من الدرجة الأولى
3- إضافة Category جديده الى قاعدة البيانات مع 2 Products :
[ATTACH=CONFIG]724[/ATTACH]
[ATTACH=CONFIG]725[/ATTACH]
وهذه هي كل الحكاية يا سلام على هذه التقنية الآن اقول متى سيصدر اوركاس حتى ننتهي من ما نحن عليه الآن !

4- حذف Product من قاعدة البيانات :
وهذا مثال بالكود لحذف جميع السجلات التي تحتوي على "Toy" في الحقل CategoryName :
[ATTACH=CONFIG]726[/ATTACH]

[ATTACH=CONFIG]727[/ATTACH]

يا سلام على السهوله الشديده

5- استدعاء اجراء مخزن Stored Procedure من قاعدة البيانات :
يا سلام على الاجراءات المخزنة واستخدامها ، يا سلام على سرعتها وعلى تسهيلها للعمل ومن يعمل على تطبيق كبير يعرف معنى كلامي واقدم له هذه الهدية :
[ATTACH=CONFIG]728[/ATTACH]

[ATTACH=CONFIG]728[/ATTACH]

الكود السابق بكلا الصيغتين استدعى اجراءا مخزنا في قاعدة البيانات اسمه GetProductsByCategory والذي اصبح استدعاؤه اسهل من اي وقت مضى !

وقبل أن اختم هذا المقال ، اود ان اخبركم بخبر ، وهو ان هذه المقاله ليست كامله ولكنني وضعت الجزء الذي يخص الكود فقط ، فهناك جزء آخر من هذه المقاله يتحدث حول الاداه LINQ to SQL وكيفية وضع الجداول والحقول المطلوبة عليها وامور اخرى مهمه يمكنكم الوصول اليها بالنقر على هذا الرابط

وكالعاده اجدد النداء ، يا من تصرون على Visual studio 2002 و 2003 في عهد 2005 الفرق بينهم كبير جدا فلماذا كل هذا الاصرار على البقاء في الوراء في هذه التنقيات ؟



وفي النهاية تقبلوا تحياتي لكم :
النبهاني - سلطنة عمان


الملفات المرفقة صورة/صور
                   
الرد }}}
تم الشكر بواسطة:
#3
مشكور جدا اخي الكريم
ولكن في الحقيقة هذا الدرس متقدم بالنسبة لي
لاني مبتدئ
واشكرك على مجهودك في نقل الموضوع
الرد }}}
تم الشكر بواسطة:



التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم