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

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

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

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

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

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

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

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

كود:
<WebMethod()> _
Public Shared Function GetCompInfo() As String
Dim result As String=""
result= My.Computer.Name & " " & My.Computer.Info.OSFullName
Return result 
End Function
ويمكنك أيضا كتابة دوال أخرى أكثر تعقيدا كدوال تسترجع بيانات من القاعدة وستكون بالشكل التالي

كود:

<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وبعدها نقوم بالضغط على




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

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


للمزيد
http://developers.ps/articles.aspx?id=36