عام

كيفية ربط موقعك مع برنامج أو مع عدة مواقع

العديد منا تواجهه مشكلة عندما يريد ربط برنامج قام بصنعه بقاعدة بيانات موقع قام بصنعه أو العكس ، أو يريد عمل موقع يستطيع أي شخص التواصل مع قاعدته وأخذ ما يريد على أن يسمح له الموقع بذلك أو حتى السماح له بالإضافة في هذه القاعدة . ومع الدوت نت ، هذا الأمر سهل للغاية وممكن إنجازه بعدة تقنيات ، وهذا المقال يتطرق لأبسط هذه التقنيات.

ولكن …لعل البعض يتساءل ، ما الهدف من ربط الموقع بالبرنامج ؟!

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

 

بما أن البرنامج سيقدم نفس الخدمات ( أو جزء منها )  التي سيقدمها الموقع ، فهذا يعني أن قاعدة البيانات ستكون مشتركة بين الاثنين ( أو جزء منها ) ، ولتفرض أن الموقع هو صاحب القاعدة الأساسية ، والبرنامج هو الجزء المستفيد من هذه القاعدة ، وهي مرفوعة على الإنترنت

سيكون الحل كالتالي : سنقوم بعمل دالة عادية ولكن سنقوم بوضعها في منطقة خاصة وبمواصفة خاصة (Attribute) ، وسنقوم باستدعائها من البرنامج.

سيتم إضافة جميع الدوال التي نحتاجها في ويب سيرفس (web service)  وبعدها نستدعيها في البرنامج ، وهذا الأمر يتم بالشكل التالي

، سنقوم بإضافة ويب سيرفس وذلك بالنقر بالزر الأيمن للماوس على اسم الموقع من قائمة.Solution Explorer ونختار add New item ومن ثم نختار web service

وبعدها سنقوم بكتابة جميع الدوال التي سنحتاجها على أن يسبق كل دالة _<()WebMethod>  ولننظر إلى الدالة التالية على سبيل المثال  وهي لاسترجاع اسم  جهاز الحاسوب ونظام التشغيل المستخدم:_<()WebMethod>

Code

<WebMethod()> _
Public Shared Function GetCompInfo() As String
Dim result As String=””
result= My.Computer.Name & ” ” & My.Computer.Info.OSFullName
Return result
End Function

ويمكنك أيضا كتابة دوال أخرى أكثر تعقيدا كدوال تسترجع بيانات من القاعدة وستكون بالشكل التالي

Code

<WebMethod()> _
Public Function GetRelaInfo() As DataTable
Dim conn As New SqlConnection(ConfigurationManager.ConnectionStrings(“connstr”).ConnectionString)
Dim cmd As SqlCommand = conn.CreateCommand()
Dim cmd As New SqlCommand(“select *  from Rehla”)
Dim dt As New DataTable(“kh”)
DimDim da As New SqlDataAdapter(cmd)
da.Fill(dt)
Return dt
End Function

  Add Web Reference الآن ننتقل إلى البرنامج ونقوم باستيراد الويب سيرفس لاستخدامها وذلك عن طريق الضغط بالزر الأيمن للماوس على اسم البرنامج …ومن ثم نختار

 

ستظهر الشاشة التالية … سنقوم بكتابة مسار الرابط بالكامل  والذي يحتوي على الويب سيرفس  وبعدها يتم الإتصال بالويب سيرفس ويعرض جميع أعضائها وبعدها سيتم التعرف على الويب سيرفس
Add Referenceوبعدها نقوم بالضغط على

سيتم الإتصال بالخدمة ومن ثم اضافتها إلى مراجع الخدمات في نافذة مستكشف الحل

وبعد ذلك سيتم إضافتها بالشكل التالي

الآن يمكننا استدعاء الدوال بكل سهولة على الشكل التالي

 

Code

Dim info as String= My.WebServices.WebService.GetCompInfo()
MessageBox.Show(info)

Dim dt as DataTable= My.WebServices.WebService.GetRelaInfo()

ويمكنك استدعاءها في برنامج أو في موقع أو حتى في عدة مواقع .
وعند إجراء أي تعديل على الويب سيرفس ،خاصة في مرحلة التجريب، عليك تحديثها من البرنامج الذي سيستدعي الخدمة وذلك حتى تظهر التعديلات ويتم تنفيذ الخدمة بالشكل الصحيح ويتم ذلك بالنقر بالزر الأيمن للماوس على اسم البرنامج من قائمة Solution Explorer واختيار الأمر Update Web Reference.

وبعد أن انتهينا من عملية الربط يبقى السؤال : ما هي الويب سيرفس وكيف تعمل ؟؟
تقنية تعتمد على XML في نقل البيانات، مع الاعتماد على بروتوكلات مثل HTTP و SOAP  وخدمة WSDL لنقل هذه الرسائل
وهذا يعني  أن أي برنامج أو أي عملية تستطيع استخدام هذا البروتوكول يمكن له استخدام الخدمة، مما يعني أنه لا يشترط أن يكون العميل يستخدم برنامج مبرمج بإحدى لغات الدوت نت ، وليس هذا فقط بل لا يشترط أيضا أن يكون البرنامج يعمل تحت بيئة الويندوز فيمكن استخدام الخدمة على أي نظام تشغيل، حيث أن البيانات المرسلة ب XML  يمكن قراءتها من أي نظام ومن أية منصة وبدون وجود أي معوقات .

 

About the author

خليل سليم

Leave a Comment

هذا الموقع يستخدم Akismet للحدّ من التعليقات المزعجة والغير مرغوبة. تعرّف على كيفية معالجة بيانات تعليقك.