تقنية WWF في فيجول استديو

 تقنية WWF في فيجول استديو 


واحدة من التقنيات الجديدة التي واكبت ظهور .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 بالشكل التالي مثلاً :



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


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

- WCF Service

- WCF Service host

- WCF client


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


Address: وهو يحدد العنوان الذي يتم الاتصال به .

Binding: طرق الربط .

Contract: وصف المهام التي يتم تنفيذها من خلال WCF .


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


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


كود PHP:


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


حيث أن scheme تحدد البروتوكول الذي سوف تعمل من خلاله ما بين البروتوكولات الموجودة 

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


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


كود PHP:


net.tcp://localhost:8080/MyWCFService  


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


تجربة بسيطة :


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

C#:


كود PHP:


        [OperationContract] 

        int Add(int x, int y);  


vb.net:


كود PHP:


<OperationContract()> _  

Private Function Add(ByVal x As Integer, ByVal y As Integer) As Integer  

End Function  


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


C#:


كود PHP:


public int Add(int x, int y) 

        { 

            return x + y; 

        }  


vb.net:


كود PHP:


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


والله الموفق ...

تعليقات