اول شيء احب اهنئ العالم الاسلامي اجمع بحلول شهر رمضان المبارك اعاده الله على الجميع بالخير والعافية .
في موضوع سابق تحدثت عن الـ web service بشكل عام (نظري) وموضوعنا اليوم راح يكون الجانب العملي او التطبيقي للموضوع السابق
قبل يومين وانا اتمشى في شوارع الرياض ومع شدة ولهيب حر الرياض لاحظت ان درجات الحراره لهذا العام اشد من الاعوام السابقه وخطرت في بالي فكرة اضافة رابط لإحوال الطقس في اقسام الموقع لدي ليتنسى لي ولزوار الموقع معرفة احوال الطقس في اغلب بلدان ومدن العالم وبمجرد بحث سريع عن طريق العم قووقل وجدث ماكنت ابحث عنه GlobalWeather Service خدمة رائعة جداً فشكراً للعم قووقل (تخيل الانترنت من دون محركات البحث ماينبغى بريال) فعلاً الخدمة كانت جميلة واستخدامها سهل لتجربة الخدمة تفضل بزيارة الرابط التالي http://www.alhaqbani.net/GlobalWeather.aspx او زيارة رابط احوال الطقس الموجود في اقسام الموقع والآن راح احاول اشرح طريقة اضافتها كـ web reference في تطبيقك في خطوات بسيطة ومدعومة بالصور
1- البحث عن الخدمة في محركات البحث

2- تحديد رابط ملف الــ wsdl الذي يحتوي على وصف لي الــ Data Types و الـ Methods المستخدمة في الــ web service (اهم خطوة)

3- انشاء مشروع جديد عن طريق الفيجول استديو وليكن Console App وليكن اسمه ConsumeGlobalWeather

4- بعد انشاء المشروع ضع المؤشر على القائمة الجانبية Solution Explorer ستجد ملفات المشروع

5- بالضغط right click على اسم المشروع ستظهر لك النافذه التالية تضع فيها عنوان الــ wsdl file واسم المرجع الي رايح يكون اسم لي name space وليكن الإسم WeatherService وبعد ذلك قم بالنقر على زر Go

6- بعد ذلك سيظهر لك على نفس النافذه وصف لي الـ web service وستجد انها تحتوي على two methods الدالة الأولي اسمها GetCitiesByCountry ( CountryName As string ) As string
كما يتضح امامك من تعريف الداله فهي تأخذ اسم الدولة كمدخل والــ data type للمدخل string وتقوم بإرجاع جميع المدن التي تم جمع معلومات لإحوال الطقس عنها وتكون القيمة المرجعه على هئية string اما الدالة الثانية فهي
GetWeather ( CityName As string , CountryName As string ) As string
من تعريف الدالة ستجد انها تأخذ اسم الدولة واسم المدينة كمدخلات وتقوم بإرجاع معلومات الطقس لتلك المدينة بعد ذلك قم بالنقر على زر Add Reference ليتم اضافة الـ web service الى تطبيقك وانشاء مايسمى بي الـ proxy class ولمعرفة ماهو الــ proxy class راجع الموضوع السابق لي عن الــweb service

7- بكيذا نكون انتهينا من اضافة الــ web service لتطبيقنا وجاء وقت كتابة الكود راح نكتب كود بسيط داخل الفنكوشة الحلوه الي اسمها Main ونستدعي الدالة GetWeather بس قبل لانسوي لها calling راح نسوي object من GlobalWeather طبعاً هو كلاس بعد ماتسوي new instance تقدر تنادي الدالة GetWeather وتعطيها المدخلات الي تحتاجها اسم المدينة والدولة ويرجع لك معلومات الطقس

8- لو تذكرون الــ Reference Name كان اسمه WeatherService زي مانتوا شايفين صار اسم name space بإمكانك استخدام using لعمل اختصار بدل ماتعطيه الــ qulified name بعد كيذا نسوي run it للبرنامج ونشوف النتيجه

9- فعلاً اعطانا معلومات الطقس لمدينة الرياض بس اكيد لاحظتوا الــ tags الكثيره وتذكرتوا حبيبتنا الغاليه الــ xml بس فيه مشكلة بسيطه كيف نستخرج البيانات من ها الــ tags الي تحوم الكبد الامر بسيط الـدوت نت framework مدعومه بمكتبات لتعامل مع ملفات الــ xml مسوؤلة عن عملية الـ parsing للبيانات وتحويلها لي tables ليسهل التعامل معها
!!Happy Coding