المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : الدرس السبعون : مقدمة إلى wcf - دورة .net 2008


khaledbelal
03-11-2010, 06:25 PM
بسم الله الرحمن الرحيم .
السلام عليكم ورحمة الله وبركاته .

واحدة من التقنيات الجديدة التي واكبت ظهور .NET 3.0 كانت تقنية Windows Communication Foundation والتي يرمز لها اختصاراً WCF ، وهي مجموعة من الدوال API's التي تختص بعالم الاتصال وال web services وال remote access وخلافه .

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

هناك الكثير من التقنيات التي ظهرت لدعمك كمبرمج في تطوير برامج من هذه النوعية ، حيث وفرت لك مجموعة من الحلول لتسهيل التعامل مع ال API's الخاصة بعمليات الشبكات وخلافه ، مثل DCOM ، MSMQ ، ومع ظهور تقنية .net تم تقديم الفئة System.Runtime.Remoting الخاصة بمثل هذه العمليات ، هناك ايضاً تقنية XML Web Services ، تمكنك هذه التقنيات من تسهيل عمليات عمل نظم موزعة بصورة كبيرة جداً ، وإن كنت لا ترغب في العمل في هذا المستوى العام فيمكنك التخصيص زيادة والعثور على خيارات اكبر واوسع مقابل زيادة بسيطة في نسبة التعقيد عن طريق استخدام Named Pipes, Sockets, and P2P وهي الاشهر فعلياً بين مستخدمين ال .net على الأقل في وطننا العربي نظراً لعدم شهرة التقنيات السابقة - برغم انها توفر الكثير من الوقت فعلياً ، يمكنك البدء من الدرس السابق كمثال - .

كانت هذه الحياة لك كمبرمج .net قبل عالم WCF ، في الدرس القادم سنبدأ بالتعرف على طبيعة هذه التقنية .

البداية مع WCF :

بعد تشغيلك لل Visual Studio 2008 ، قم باختيار نوع المشروع WCF ثم WCF Service Library بالشكل التالي مثلاً :

http://vb4arab.com/vb/uploaded/3/01218549475.jpg

هناك خيارات أخرى تقدمها لك WCF بحيث يمكنك تطبيقها مع خدمة RSS أو تقنية WWF افتراضياً ، هناك ايضاً ضمن اختيارات انشاء Web Site جديد تجد WCF Service ولكن ليس هذا هو موضوعنا الآن .

الآن تجد نفسك قد قمت افتراضياً بانشاء ثلاث ملفات assembly هي :
- WCF Service
- WCF Service host
- WCF client

وللربط لا بد من توافر المعلومات الثلاث التالية :

Address: وهو يحدد العنوان الذي يتم الاتصال به .
Binding: طرق الربط .
Contract: وصف المهام التي يتم تنفيذها من خلال WCF .

شكل ومحتويات ال Address :

النقطة الأولى من معلومات WCF هي العنوان الذي ستتصل به ، له الصيغة العامة التالية :

scheme://<MachineName>[:Port]/Path

حيث أن scheme تحدد البروتوكول الذي سوف تعمل من خلاله ما بين البروتوكولات الموجودة
.MachineName تحدد المكان الذي ستتصل به Port هو المنفذ الذي سيتم الاتصال من خلاله ، وأخيراً Path وهو مسار ال Services في الجهاز الذي تود الاتصال به .

هذا على سبيل المثال :

net.tcp://localhost:8080/MyWCFService

بالنسبة لل Binding وال Contract فلن نمر عليهم في درسنا السريع لهذا اليوم حيث يكفينا معرفة بسيطة عنهم ...

تجربة بسيطة :

قم بانشاء WCF Liabrary جديدة ، بعد انشاءها قم باضافة تعريف للدالة في IService1.cs :
C#:

[OperationContract]
int Add(int x, int y);

vb.net:

<OperationContract()> _
Private Function Add(ByVal x As Integer, ByVal y As Integer) As Integer
End Function

ومن ثم في Service1.cs قم بكتابة الدالة التالية :

C#:

public int Add(int x, int y)
{
return x + y;
}

vb.net:

Public Function Add(ByVal x As Integer, ByVal y As Integer) As Integer
Return x + y
End Function

وفقط ، قم بعمل Run وقم بتجربتها من خلال WCF Test Client بالشكل التالي مثلاً ، بعد كتابة رقمين قم بالضغط على Invoke لتجربة الحل .

أليس هذا أسهل بكثير من الدرس السابق حول Web Services ؟

كان هذا درس سريع جداً ، ولم نتوسع في التفاصيل ، ولكن يمكن استخدام مثل هذه التقنيات لانشاء اي نوع من البرامج ، يمكن انشاء Service تقوم بعمل اي تطبيق على الشبكة فقط بمعرفة ال Address ، ولذا وإن كنت ترغب في المزيد فيمكنك مراجعة هذا الدرس الجميل على CodeProject لتطبيق شات يجمع بين WCF و WWF :
http://www.codeproject.com/KB/WCF/WCFWPFChat.aspx

والله الموفق ...
والسلام عليكم ورحمة الله وبركاته .