Programming techniques

about every things that i''m learning and want learn to other people

Programming techniques

about every things that i''m learning and want learn to other people

WCF چیست؟

WCF یا Windows Communication Foundation چیست؟ Windows Communication Foundation یا (WCF)، یک قالب کاری بر ای ساختن برنامه های سرویس گرا است. با استفاده از WCF می توانید داده ها را به صورت پیام هایی از یک درگاه سرویس به درگاهی دیگر ارسال کند. یک درگاه سرویس (service endpoint) می تواند بخشی از سرویس همیشه در دسترسی باشد که توسط IIS، میزبانی می شود، یا می تواند سرویسی باشد که توسط یک برنامه میزبانی می شود. یک درگاه می تواند client یک سرویس باشد که داده ها را از درگاه سرویس request می کند. پیام ها می توانند به سادگی یک کاراکتر واحد یا یک کلمه باشند که به صورت XML ارسال شده است. یا به پیچیدگی یک رشته از داده های binary. چند سناریوی نمونه شامل موارد زیر می شود: یک سرویس امن برای مبادلات تجاری سرویسی که داده های کنونی را برای دیگران مهیا می کند، از قبیل گزارش ترافیک یا دیگر سرویس های مانیتورینگ. یک سرویس چت که به دو نفر اجازه می دهد با هم در ارتباط باشند یا داده ها را به هم رد و بدل کنند. یک برنامه dashboard که داده های یک یا چندین برنامه را جمع آوری می کند و در یک presentation منطقی نمایش می دهد. Expose کردن یک workflow پیاده سازی شده با استفاده از Windows Workflow Foundation به صورت یک سرویس WCF. یک برنامه Silverlight برای جمع آوری آخرین فیدهای داده ها. در حالی که ایجاد چنین برنامه هایی قبل از وجود WCF ممکن بود، WCF توسعه درگاه ها را از قبل آسانتر می کند. به طور خلاصه، WCF جهت ارائه روشی قابل مدیریت برای ایجاد سرویس های وب و clientهای سرویس وب، طراحی شده است. ویژگی های WCF WCF شامل مجموعه ویژگی های زیر است. گرایش به سرویس یکی از نتایج استفاده از استانداردهای WS این است که WCF شما را قادر به ایجاد برنامه های سرویس گرا می کند. معماری های سرویس گرا (SOA) ،به معنای وابستگی به وب سرویس ها جهت ارسال و دریافت داده ها است. این سرویس ها مزیت loosely-coupled بودن بجای hard-coded بودن از برنامه ای به برنامه دیگر هستند. یک رابطه loosely-coupled بدین معناست که هر client ایجاد شده در هر plaftorm می تواند تا وقتی که contractهای لازم برآورده می شوند، به هر سرویسی وصل شود. Interoperability WCF، استانداردهای صنعتی مدرن را برای interoperability سرویس های وب پیاده می کند. الگوهای پیام چندگانه پیام ها با استفاده یکی از چندین الگو مبادله می شوند. یکی از رایج ترین الگوها، الگوی request/reply است، که یک درگاه داده ها را از یک درگاه دیگر request می کند، و آن درگاه پاسخ می دهد. الگوهای دیگری نیز وجود دارند، مانند یک پیام یک طرفه (one-way) که در آن یک درگاه واحد پیامی را بدون درخواست پاسخ ارسال می کند. الگویی پیچیده تر، الگوی تبادل دوگانه است که دو درگاه یک connection یرقرار می کنند و داده ها را ردوبدل می کنند، مانند یک برنامه پیام نگاری سریع. Service Metadata WCF، با استفاده از فرمت های معین شده در استانداردهای صنعتی از قبیل WSDL، XML Schema و WS-Policy، انتشار service metadata را ساپورت می کند. می توان از این metadata، بر ای پیکربندی و generate کردن اتوماتیک client بمنظور دسترسی به سرویس های metadata استفاده کرد. می توان metadata را با استفاده از استاندارد Web Service Metadata Exchange در HTTP یا HTTPS منتشر کرد. Data Contracts از آنجاییکه WCF با استفاده از .NET Framework ساخته شده است، متدهای code-friendly برای تامین contractهایی که می خواهید اجرا کنید را نیز در بر می گیرد. یکی از انواع جهانی contractها، data contract است. در واقع، هنگامی که سرویس تان را با استفاده از Visual C# یا Visual Basic کد نویسی می کنید، اسانترین راه یرای مدیریت داده ها، ایجاد کلاس هایی است که موجودیت داده ها را با propertyهایی که به موجودیت داده ها تعلق دارند، نمایش می دهند. WCF شامل یک سیستم جامع برای کارکردن با داده ها به روشی آسانتر است. بعد از اینکه کلاس هایی را که داده ها را نمایش می دهند، وارد کردید، سرویس شما به طور اتوماتیک metadata را generate می کند. امنیت می توان پیام ها را برای محافظت از حریم خصوصی رمزگذاری کرد و می توان کاربران را ملزم کرد قبل از مجاز شدن به دریافت پیا ها، خودشان را authenticate کنند. امنیت را می توان با استفاده از استانداردهای شناخته شده از قبیل SSL یا WS-SecureConversation پیاده سازی کرد. Transportها و Encodingهای چندگانه پیام ها را می توان با هریک از چندین پروتکل و رمزگذاری transport داخلی ارسال کرد. رایج ترین پروتکل و رمزگذاری، ارسال پیام های SOAP متنی رمزگذاری شده با استفاده از HTTP برای استفاده در WWW است. متناوباً، WCF به شما اجازه ارسال پیام ها در TCP، یا MSMQ را می دهد. این پیام ها را می توان به صورت متن یا با استفاده از یک فرمت binary بهینه شده، رمزگذاری کرد. داده ها binary را می توان با استفاده از استاندارد MTOM به طور موثری ارسال کرد. اگر هیچ یک از transportها یا encodingهای موجود، نیاز شما را برآورده نکنند، می توانید transport یا encodingهای دلخواه خودتان را ایجاد کنید. پیام های قابل اعتماد و به صف شده (queued) WCF با استفاده از sessionهای پیاده شده روی WS-Reliable Messaging، پیام های قابل اعتماد را ساپورت می کند. پیام های مدت دار (Durable) پیام مدت دار، پیامی است که در صورت وقوع اختلال در ارتباط، هرگز از دست نمی رود. پیام ها در الگوی پیام مدت دار، همیشه در database ذخیره می شوند. اگر اختلالی روی دهد، database به شما اجازه می دهد هنگامی که connection به حالت اول بازمی گردد، به تبادل پیام ادامه دهید. همچنین می توانید با استفاده ازWorkflow Foundation ، یک پیام مدت دار ایجاد کنید. تراکنش ها WCF، تراکنش ها را هم با استفاده از یکی از این سه مدل تراکنش ساپورت می کند: AtomicTtransactions، APIها در فضای نامی System.Transactions، و Microsoft Distributed Transaction Coordinator. Ajax و ساپورت Rest REST، نمونه ای از تکنولوژی وب 2 در حال تکامل است. می توان WCF را برای پردازش داده های XML ساده پیکربندی کرد. همچنین می توان WCF را برای ساپورت از فرمتهای خاص XML از قبیل ATOM، که یک استاندارد محبوب RSS است، و حتی فرمت های غیر XML از قبیل JavaScript Object Notation، گسترش داد. توسعه پذیری (Extensibility) معماری WCF دارای چندین نکته توسعه پذیری است. اگر نیاز به قابلیت اضافی باشد، نکاتی وجود دارند که به شما اجازه سفارشی کردن رفتار یک سرویس را می دهند. ادغام WCF با دیگر تکنولوژی های مایکروسافت WCF یک platform قابل انعطاف است. به علت وجود این انعطاف پذیری، WCF در چندین محصول دیگر مایکروسافت نیز قابل استفاده است. اولین تکنولوژی که با WCF شریک شد، Windows Workflow Foundation یا (WF) بود. Workflow، توسعه برنامه را از طریق کپسوله کردن مراحل در workflow به صورت "activities"، ساده می کند. در نسخه اول Windows Workflow Foundation، برنامه نویس مجبور بود یک هاست برای workflow ایجاد کند. نسخه بعدی Windows Workflow Foundation با WCF ادغام شد. این کار به هر workflow اجازه می داد براحتی در سرویس WCF ذخیره شود؛ می توان این کار را با انتخاب اتوماتیک WF/WCF بعنوان یک project type در Visual Studio 2010 انجام داد. همچنین Microsoft BizTalk Server R2 از WCF به عنوان یک تکنولوژی برای برقراری ارتباط استفاده می کند. BizTalk جهت دریافت و انتقال داده ها از یک فرمت استاندارد به فرمتی دیگر طراحی شده است. پیام ها باید به box مرکزی پیام ها یعنی جاییکه می توان با استفاد ه از یک مپینگ دقیق یا یکی از ویژگی های BizTalk، از قبیل موتور workflow، پیام ها را منتقل کرد. BizTalk الان از آداپتور WCF Line of Business یا (LOB) جهت تحویل پیام ها به box پیام استفاده می کند. Microsoft Silverlight، یک platform برای ایجاد برنامه های وب پیشرفته و interoperable است که به برنامه نویسان اجازه می دهد وب سایتهای حساس به رسانه (media-intensive) ایجاد کنند. نسخه دوم Silverlight، WCF را به عنوان یک تکنولوژی برقراری ارتباط جهت متصل کردن برنامه های Silverlight به درگاه های WCF، ترکیب کرده است. Microsoft .NET Services، یک برنامه محاسبه گر است که از WCF برای ساختن برنامه های تحت وب استفاده می کند. می توان از NET Services برای ایجاد سرویس های WCF استفاده کرد. ویژگی های میزبانی سرور برنامه Windows Server AppFabric بطور ویژه ای برای نصب و مدیریت برنامه هایی که از WCF جهت برقراری ارتباط استفاده می کند، ساخته شده است. این ویژگی ها شامل ابزارهایی پیشرفته و پیکربندی آپشن هایی است که بطور ویژه برای برنامه های تحت WCF طراحی شده اند.