• افتح مشروعك ضمن بيئة تطوير 2008 فيظهر لك معالج الترقية تلقائيا – اضغط next
• يظهر لك المعالج خيار عمل نسخة احتياطية للملفات القديمة فنختار الخيار Yes, create a backup before converting ثم يقترح مكانا لوضع النسخة الاحتياطية فيه في مربع النصوص تحت الكلمة Location for backup حيث يمكنك تغييره بالضغط على الزر Browse أو تركه كما هو - اضغط next فيظهر لك معلومات عن الترقية - اضغط هنا Finish للبدء بعملية الترقية
• بعد الانتهاء تظهر لك نافذة تخبرك بانتهاء عملية الترقية وفيها خيار Show the conversion log when the wizard is closed وبتفعيل هذا الخيار يظهر لك تقرير عن عملية التحويل بعد إغلاق المعالج هنا اضغط Close
• كما تجدر ملاحظة أن مشروعنا بعد التحويل حتى هذه النقطة مازال متوافقا مع بيئة تطوير الـ 2005
• من Solution Explorer انقر بزر الفأرة اليساري نقرا مزدوجا على My Project لفتح خصائصه
• افتح صفحة Compile وقم بضبط الخيار Option Infer إلى On الذي يخبر المعالج أن يستدل على نوع المتغيرات المحلية من التعبير الذي يضبط قيمة ذلك المتغير إن لم نزوده بنوع ذلك المتغير - ولمزيد من المعلومات حول هذا الخيار يمكنك قراءة موضوعي في المنتدى بعنوان الاستدلال المحلي على النوع Local Type Inference
• انتقل لأسفل صفحة Compile ثم اضغط الزر Advanced Compile Options الذي يظهر لنا صندوق حوار بخيارات الترجمة المتقدمة حيث نرى في أسفل هذه النافذة الخيار Target framework والذي مازال مضبوطا على الـ Framework 2.0 حتى الآن حيث يمكننا هذا الخيار من كتابة كود يعمل على أي نسخة من نسخ الفريموورك الموجودة ضمن بيئة تطوير واحدة فبدلا من تنصيب عدة نسخ من Visual Studio على نفس الجهاز بهدف العمل مع أكثر من Framework أصبح الآن بإمكانك عمل ذلك من داخل بيئة تطوير واحدة هي 2008 ومن أجل تمكين Linq سنختار Framework 3.5 ثم اضغط على Ok فيظهر لنا تحذير بأنه سيتم إغلاق وفتح المشروع تلقائيا وأنه سيقوم بحفظ أية تغييرات غير محفوظة تلقائيا وهنا اضغط Yes
• انقر بزر الفأرة اليساري نقرا مزدوجا على My Project لفتح خصائصه وانتقل للصفحة References فنلاحظ أنه قد تم إضافة مرجعا تلقائيا للمكتبة system.core.dll من الـ Framework 3.5 للمشروع وذلك لأننا قمنا بترقية Target Framework ومن أجل تمكين استعلامات Linq علينا إضافة بعض المراجع واستيراد بعض مجالات الأسماء اعتمادا على مزود Linq الذي نحتاج لاستخدامه
• فمن أجل إضافة مرجع لـ Linq to Object نختار من القائمة أسفل Import Namespaces المجال System.linq الذي يمكننا من كتابة استعلامات Linq على الأغراض المختلفة حيث أصبح بإمكاننا كتابة الاستعلام التالي للحصول على أسماء الملفات في المجلد الحالي
Dim MyFiles = From Files In My.Computer.FileSystem.GetFiles(CurDir()) _ Select Files
ونلاحظ أنه بسبب خاصية Option Infer المضبوطة إلى On أن المترجم قد ضبط نوع المتغير MyFiles إلى IEnumerable(Of String) وذلك عند تمرير مشيرة الفأرة فوق المتغير MyFiles
• ومن أجل تمكين استعلامات Linq للاستعلام من الـ Datasets سنحتاج لبعض الإجراءات الإضافية وهنا افتح خصائص My Project وعد للصفحة References واضغط الزر Add ومن صفحة .net أضف مرجعا لـ System.Data.DataSetExtensions ثم اضغط OK
• سنحتاج الآن لإعادة توليد الـ Dataset التي نريد استخدامها مع استعلامات Linq ولعمل ذلك ننقر بزر الفأرة اليميني على الـ Dataset المناسبة ثم نختار Run Custom Tool من القائمة وهنا تقوم بيئة التطوير بإعادة كتابة كود الـ Dataset لتصبح الجداول ضمنها موروثة من فئة داعمة لـ Linq تسمى TypedTableBase وهذا الذي يستدعي الحاجة لإضافة مجال الأسماء System.Data.DataSetExtensions وأصبح بإمكاننا الآن كتابة استعلامات من الـ dataset مثل الاستعلام
Dim MyCats = From category In Me.CategoryProductDataSet.Categories _ Where category.CategoryName Like "C*" _ Select category
ونلاحظ هنا أيضا أن المترجم قد ضبط نوع المتغير MyCats بناء على جملة الاستعلام المرتبطة به تلقائيا إلى EnumerableRowCollection
• ولكتابة استعلامات Linq to XML عد إلى صفحة References في خصائص MyProject واضغط الزر Add وأضف مرجعا لـ System.Xml.Linq ثم انتقل إلى القائمة Imported namespaces وقم باختيار System.Xml.Linq حتى نتمكن من كتابة استعلامات من XML
• كما يوجد مزود آخر ربما نريد استخدامه وهو مزود Linq to Sql حيث يمكن إضافته بسهولة فقط قم باختيار Add New Item من قائمة Project وقم بإضافة Linq to Sql Classes وهذا سيقوم تلقائيا بإضافة المراجع والاستيرادات المناسبة لمشروعنا حيث سنلاحظ من صفحة References في خصائص MyProject أنه قد تم إضافة مرجعا لـ System.Data.Linq
أصبح الآن بإمكاننا استخدام Linq للاستعلام على الأغراض Objects المختلفة في مشروعنا بالإضافة إلى الاستعلام من Dataset أو XML أو حتى Sql Databse