14-10-12, 03:12 PM
كاتب الموضوع : أحمد جمال
بسم الله الرحمن الرحيم .السلام عليكم ورحمة الله وبركاته .
مقدمة :
كما ذكرنا في الدروس السابقة بإن Web Service تتبع معايير موحدة XML باستخدام بروتوكول HTTP وهو ما يعني امكانية استخدامها في كافة نظم التشغيل ، ليس هذا فحسب ، بل إنه بامكانك عمل Web Service يستخدمها جميع المبرمجين بمختلف اللغات والتقنيات ، أيضاً في المقابل فإنك تستطيع الإستفادة من أي Web Service موجودة على الإنترنت مهما كانت لغة البرمجة المبنية بها .
الدرس:
لذا واعتماداً على ما ذكر في الفقرة السابقة ، سوف نقوم بعمل مشروع يستخدم أحد خدمات ال Web Service الموجودة على الإنترنت ، وبعد البحث عثرت على الموقع التالي الذي يقدم بعض الخدمات :
http://www.webservicex.net/WCF/
يحتوي هذا الموقع على حوالي 70 خدمة مجانية ، قمت باختيار واحدة منها وهي :
http://www.webservicex.net/ValidateEmail.asmx
وتخبرنا هذه الخدمة فيما إذا كان هناك ايميل بهذا الشكل أم لا وتبحث عن هذا الايميل في الشركات التي تقدم خدمات البريد الإلكتروني ، وذلك عن طريق دالة اسمها : IsValidEmail وتعود بقيمة True او False .
والآن كما اعتدنا ، نقوم باضافة Web Refernce جديد للمشروع بالمسار الذي قمنا باضافته سابقاً ، ومن ثم سنقوم برسم على الفورم بحيث يمكن للمستخدم التعامل مع هذه الخدمة بسهولة ، ولذلك سوف نقوم برسم مربع نص يتم فيه ادخال البريد الإلكتروني ، ومن ثم زر أمر بحيث يتم اختبار قيمة الشرط ومن ثم عرض رسالة MessageBox فيها حالة الايميل .
الكود الذي سيتم وضعه في زر الأمر هو :
كود :
net.webservicex.www.ValidateEmail x = new WindowsApplication1.net.webservicex.www.ValidateEmail();
bool r = x.IsValidEmail(textBox1.Text);
if (r)
MessageBox.Show("ايميل صحيح ");
else
MessageBox.Show("ايميل خاطئ ");
مع استمراري في البحث في هذا الموقع وجدت خدمة أخرى جديرة بالملاحظة وشائعة الاستخدام ، وهي الخاصة بالتعرف على الطقس والمناخ وخلافه ، تجد الخدمة هنا :
http://www.webservicex.net/globalweather.asmx
المثال الأول لاستخدام هذه الخدمة هي معرفة المدن الموجودة في دولة معينة باستخدام GetCitiesByCountry ، مثلاً هذا الكود :
كود :
net.webservicex.www1.GlobalWeather m = new WindowsApplication1.net.webservicex.www1.GlobalWeather();
MessageBox.Show(m.GetCitiesByCountry("Egypt"));
الدالة الأخرى هي معرفة حالة الطقس باستخدام GetWeather ، بالشكل التالي مثلاً :
كود :
net.webservicex.www1.GlobalWeather m = new WindowsApplication1.net.webservicex.www1.GlobalWeather();
MessageBox.Show(m.GetWeather("Asyut", "Egypt"));
والآن يمكنك ان تصمم برنامج يقوم المستخدم باختيار دولة فتقوم بعرض جميع المدن فيها في Combobox ، ومن ثم بعد اختيار مدينة تقوم بعرض درجة الحرارة .
ولكن قبل ذلك لاحظ الصيغة التي تعود بها هذه الدوال ، ستجدها تعود على شكل ملف XML يمكنك انت قراءته ، ولكن لن تستطيع التعامل معه من خلال الكود إلا إذا استطعت قراءة ملف XML .
ثق تماماً بإن الموضوع أبسط مما تتخيل ، وإن أعانني الله فسأقوم بعمل دروس بخصوص القراءة والتعامل مع XML ولكن على السريع لن تختلف قراءة XML عن القراءة من قواعد البيانات سوا اختلافات قليلة (اتحدث من ناحية Syntex) .
ولو أتم أحد عمل كود هذا البرنامج أتمنى منه أن يضعه هنا لافادة باقي الأعضاء .
والآن بقي أن أشير إلى أن اشهر الخدمات الموجودة على النت هي تلك المتعلقة بالتحويلات المالية ، حيث تحدث قيم هذه الخدمات فورياً بحيث يمكنك استخدامها في برنامجك لتحويل العملات بدلاً من الاعتماد على المعادلات الحالية والتي تتغير باستمرار .
هناك أيضاً خدمات أكثر تعقيداً مثل الاتصال بالبنوك والدفع عن طريق البرنامج باستخدام خدمة يقدمها البنك وخلافه . وهي قصة طويلة لكنها تسير في اتجاه مشابه .
أيضاً هناك خدمة RSS وهي تسير في اتجاه مشابه ، يمكنك الاستفادة من احد دروس الأخ أحمد عيسوي
خدمة أخرى منتشرة وهي خدمة التعرف على حالة الطقس ، المناخ ، وخصائص الدول والعلم والعملة والسكان وخلافه ، نوع آخر وهو التعرف على معلومات ISPN من الشركة حيث قد يفيدك في بعض البرامج ، أيضاً ستجد خدمات ويب لكل ما يخطر ببالك من التحويلات والقياسات المعروفة .
أيضاً ما رأيك انت في أن تقدم خدمة على الإنترنت نقوم نحن باستخدامها ، ما رأيك في تقديم خدمة اسلامية مثلاً تتمثل في معرفة مواقيت الصلاة يمكن للجميع استخدامها في برامجهم بعد ذلك - إن لم تكن موجودة - .
جرب ونحن في الانتظار .
خاتمة:
في نهاية هذه السلسلة اتمنى من الله العلي القدير أن تكون هذه السلسلة مفيدة ، وأسأل الله التوفيق .
وأتمنى ممن يجد خطأ أن يبلغنا به ، ومن لديه فائدة فليتحفنا بها .
والله الموفق .
والسلام عليكم ورحمة الله وبركاته .