آشنایی با WCF

WCF برای ایجاد،پیکربندی و صف آرایی سرویس های تحت شبکه می باشد .در این مقاله توضیحاتی کامل در باره WCF و اتصالات در آن ارائه شده است .

WCF اختصار یافته Windows Communication Foundation  است که یک Framework برای ایجاد،پیکربندی و صف آرایی سرویس های تحت شبکه می باشد . WCF آخرین فناوری سرویس گرا است همچنین یک بستر برنامه نویسی و سیستم اجرا برای ایجاد سرویس ها می باشد .WCF یک مدل برنامه نویسی یکپارچه است که شامل NET Framework 3.0. است . WCF مجموعه ای از ویژگی های مختلف است مانند ،Web Services ،Remoting MSMQ و COM+ . ویژگی اصلی WCF این است که یک پلت فرم مشترک برای همه ارتباطات NET. فراهم می کند. WCF طیف گسترده ای از امکانات را فراهم می کند ، ازجمله امنیت و پشتیبانی پروتکل ارتباطات می باشند .

 در صورت تمایل میتوانید به صورت رایگان آموزش WCF به همراه پروژه عملی را در سایت تاپ لرن مشاهده کنید .

مزایای WCF

- WCF امنیت و قابلیت اعتماد بیشتری نسبت به سرویس های وب ASMX دارد .

- در WCF نیازی به تغییرات دستورات برای اجرای مدل امنیت و تغییر در اتصال نیست .فقط نیازمند تغییرات کوچکی در پیکربندی برای تکمیل درخواست ها می باشد.

- WCF با سرویس های دیگر در مقایسه با NET remoting. سازگار تر است که در آن کاربر و وسرویس باید NET. باشد .

اتصال در WCF

اتصال (Binding) نقش مهمی دارد .اتصال چگونگی ارتباط کاربر با خدمات و آدرس که در آن نقطه نهایی  میزبان شده است ، مشخص می کند .

انواع اتصال در WCF

BasicHttpBinding

یک سرویس وب پایه  برای ارتباطات است . در حالت پیش فرض امنیتی ندارد .

NetMsmqBinding

ارتباط میان نرم افزارهای WCF با استفاده از صف بندی را فراهم می کند.

NetTcpBinding

ارتباط میان برنامه های WCF در سراسر رایانه را  فراهم می کند .از قراردادهای دو گانه (duplex contracts) پشتیبانی می کند .

NetPeerTcpBinding

ارتباط میان کامپیوتر ها در سرویس های نظیر به نظیر (peer-to-peer) فراهم می کند . از قرارداد های دوگانه ( duplex contracts )نیز شتیبانی می کند .

WSDualHttpBinding

سرویس های وب که از قراردادهای دوگانه ( duplex contracts )و اجرا پشتیبانی می کند .

NetNamedPipeBinding

ارتباط میان نرم افزار های WCF در کامپیوتر یکسان را پشتیبانی می کند همچنین از قراردادهای دوگانه        ( duplex contracts )و اجرا پشتیبانی می کند.

قرار دادهادر WCF

کاربرد اصلی قرار دادها این است که به کاربر و سورویس ها اجازه می دهد که به عنوان نوعی عملیات و ساختار باشند و در طول فرآیند ارتباطات استفاده خواهند شد . همچنین توافق رسمی بین کاربر و سرویس برای تعریف یک پلت فرم بی طرف و استانداردی برای توصیف نحوه انجام کار سرویس نشان می دهد .

WCF  دارای قراردادهای زیر می باشد :

Service Contract

Message Contract

Data Contract

Fault Contract

Service Contract :

هدف اصلی قرارداد سرویس (Service Contract) این است که رابطی برای سرویس ها تعریف می کند و همچنین عملیاتی که سرویس می تواند فراهم کند را توصیف می کند . Service Contract با استفاده از ویژگی های قرارداد عملیاتی و سرویس ایجاد شده است . برای ایجاد یک قرارداد سرویس یک رابط با متد های مرتبط تعریف می کنیم و رابط را با ویژگی ServiceContract قرار می دهیم تا نشان دهیم یک قرارداد سرویس است .

دستورات


    [ServiceContract]  
    public interface ISevice2  
    {  
    //TODO: Here perform your service operations  
    }

Message Contract

قرارداد پیام (Message Contract) توسط WCF اجرا شده برای ارتباط بین کاربر و سرویس ارائه شده است . در این قرار داد می توانیم فرمت پیام خود را ایجاد کنیم .

دستورات


    [MessageContract]  
    public class Person   
    {  
        [MessageHeader]  
        public Operation Name;  
          
        [MessageHeader]  
        public string Address;  
          
        [MessageBodyMember]  
        private Home_Phone;  
          
        [MessageBodyMember]  
        private PersonalID;  
          
        [MessageBodyMember]  
        public int age;  
          
    }

Data Contract

قرار داد اطلاعات (Data Contract) شرحی از انواع داده سفارشی در معرض کاربر را ارائه می کند . Data Contract یک فرمت خارجی از داده ها را ازعملیات سرویس تعریف می کند . Data Contract ساختار وانواع داده که در سرویس پیام مبادله می شوند را تعریف می کند .


    [DataContract]  
    public class Student   
    {  
        private string _Name;  
        private string Address;  
        [DataMember]  
        public string Name   
        {  
            get   
            {  
                return Name;  
            }  
            set   
            {  
                _Name = value;  
            }  
        }  
    }

Fault Contract

   Fault Contractمشاهده مستندی برای خطاهای رخ داده در سرویس برای کاربر فراهم می کند. این نوع  قرارداد خطا، استثناء و علت خطای رخ داده در سرویس WCF  را مدیریت می کند . درحالت پیش فرض زمانیکه یک خطا از سرویس ارسال می کنیم توسط سمت کاربر دریافت نخواهد شد، بنابراین برای کاهش مشکلات ، WCF  انتقال پیام به کاربر از سرویس با استفاده از Fault Contract فراهم می کند .


    [ServiceContract]  
    public interface IGetDetailsService  
    {  
        [OperationContract]  
        [FaultContract(typeof(Student))]  
        Student GetDetails(string Name);  
    }  
      
    [DataContract]  
    public class Student   
    {  
        private string _Name;  
      
        private string _Address;  
      
        [DataMember]  
        public string Name   
        {  
            get   
            {  
                return _Name;  
            }  
            set   
            {  
                _Name = value;  
            }  
        }  
      
        [DataMember]  
        public string Address   
        {  
            get   
            {  
                return_Address;  
            }  
            set   
            {  
                _Address = value;  
            }  
        }  
      
    }