# برنامه نویسی با محصولات مایکروسافت > برنامه نویسی مبتنی بر Microsoft .Net Framework > WCF , Web Services , .Net Remoting >  WCF Project

## benighted.boy

با سلام 
از دوستان و اساتید محترم و کسانی که با .Net 2008 کار کردن کسی آشنایی با پروژه های WCF داره و یا اینکه Refrence ,منبع و یا مرجعی داره لطف کنه انجا بزاره .چون فکر میکنم .Net2008 و امکانات جدیدش برای دیگران هم جالب باشه .
با تشکر از همه .

----------


## hassan razavi

لینک اطلاعات کامل درباره Windows Communication Foundation WCF در سایت MSDN

http://msdn2.microsoft.com/en-us/library/ms731082.aspx

----------


## benighted.boy

ممنون 
اگر منابع دیگری به غیر از MSDN دارید هم معرفی کنید .

----------


## sinpin

*چکیده:*  
 Windows Communication Foundation، مدل برنامه نویسی یکپارچه مایکروسافت برای ساخت نرم‌افزارهای سرویس گرا است. این تکنولوژی به توسعه دهندگان این امکان را می دهد که راهکارهایی امن، قابل اطمینان و مبتنی بر تراکنش را تولید نمایند که می توانند بین پلتفرم های مختلف استفاده شوند و قابلیت اتصال و استفاده از سرمایه گذاری های فعلی سازمانها را دارند (نقل از مایکروسافت). 
* کلید واژه:*  
 معماری سرویس گرا - فرایند گرا - مبتنی بر سرویس Service Oriented - Asset Modeling - Design Pattern - Work Flow - workflow
WCF فرایند توسعه نرم‌افزار های در ارتباط با هم را تسهیل می کند. WCF گونه های مختلفی از توسعه نرم افزارهای توزیع شده را با مهیا ساختن معماری‌ای لایه ای در اختیار می گذارد.
 مدل برنامه نویسی آن با عنوان Service Model به گونه ای طراحی شده است که تجربه آشنایی را در اختیار برنامه نویسان با تجربه در ASP.net و Web Service، .Net Remoting و سایر زمینه های مرتبط قرار دهد.Service Model یک ارتباط ساده بین مفاهیم WebService و مفاهیم موجود در .Net Framework CLR برقرار می کند؛ که شامل نگاشتی توسعه پذیر و انعطاف پذیر بین پیغام ها و پیاده سازی سرویس ها در زبانهای مبتنی بر .net است. این تکنولوژی شامل امکانات Serialization ی است که امکان حفظ استقلال سیستم ها و versioning را مهیا ساخته و امکان ارتباط و یکپارچه سازی با تکنولوژی های موجود سیستم های توزیع شده در .net، از قبیل MSMQ,COM+,ASP.NET WEB SERVICES, Web Services Enhancements (WSE) و چند قابلیت دیگر را فراهم می کند.
 سیستمی که این تکنولوژی را اختیار کرده باشد قادر خواهد بود پارامتر های امنیتی و یا مرتبط با بازدهی خود را بسته به محل استقرار فیزیکی استفاده کنندگان از وب سرویس تنظیم نماید. این تکنولوژی این امکان را پیش رو قرار می دهد که به عنوان مثال، تقاضاهایی که منجر به ایجاد تراکنش می شوند تنها از داخل سازمان صورت پذیرند و یا کاربران خارج سازمانی یا کاربرانی که از پلتفرم های متفاوت از سرویس ها استفاده می کنند با فرم متفاوتی از اعمال ضوابط امنیتی روبرو شوند. WCF این امکانات را بدون سربار پیچیدگی مدیریت، در اختیار می گذارد.
 از مهم ترین مزیت های WCF اجماع مزایای کلیه روشهای پیاده سازی سیستم های توزیع شده در یک غالب واحد و منعطف است. قبل از ارائه WCF، بسته به شرایط موجود بین کلاینت و سرور، معمولاً استفاده از یکی از روش های توسعه توزیع شده مناسب تر بوده و انتخاب می شده است. به عنوان مثال در صورتی که استفاده کننده از سرویس، روی پلتفرم .net پیاده سازی شده باشد و همچنین در داخل سازمان قرار داشته باشد، استفاده از .net Remoting بهترین راه حل موجود بوده است، حال اگر همین سرویس می بایست قابلیت دسترسی از خارج از سازمان یا از سایر پلتفرم ها (مانند J2EE) را می داشت، استفاده از WebService به عنوان راه حل دیگری مطرح می شد، یا در حالتی دیگر سرویس می بایست به هر دو صورت در اختیار قرار می گرفت که پیچیدگی فراوان و نگهداری پرهزینه ای را در بر داشت. 
 WCF با پشتیبانی از تمامی تکنولوژی های موجود، و در عین حال استقلال از تمامی پروتکل های ارتباطی، امکانات زیر را در اختیار توسعه دهندگان سیستم های توزیع شده می گذارد:
 ·         به دلیل اینکه WCF امکان ارتباط از طریق Webservice را دارا می باشد، ارتباط دوطرفه با سایر پلتفرم ها از قبیل application server های اصلی J2EE امکانپذیر خواهد بود.
 ·         WCF می تواند به گونه ای تنظیم یا گسترش داده شود که با سایر وب سرویس ها توسط پیغام هایی که مبتنی بر SOAP نیستند ارتباط برقرار کند، همانند ساختار های ساده XML مثل RSS .
 ·         برای رسیدن به بهترین سطح بازدهی در مواقعی که هر دو طرف ارتباط(سرویس دهنده و سرویس گیرنده) از WCF استفاده می کنند، encoding ارتباطی در این حالت یک نسخه بهینه سازی شده باینری از XML Information Set است. پیغام ها هنوز از ساختار داده SOAP تبعیت می کنند در حالی که encoding آنها از فرم باینری داده استفاده می کند تا از فرم تگ دار XML 1.0. با استفاده از این امکان می توان با پیاده سازی یک سرویس، هم قابلیت ارتباط با سایر پلتفرم ها را داشت و هم در ارتباط با پلتفرم های مشابه (مبتنی بر WCF) ، از بازدهی بسیار نزدیک به .NET Remoting بهره مند شد.
 ·         مدیریت طول عمر objectها، تعریف تراکنش های توزیع شده و سایر جنبه های Enterprise Services در داخل WCF گنجانده شده اند (قبلاً می بایست از Microsoft Enterprise Services در داخل سرویس دهنده استفاده می شد.) 
 ·         به دلیل پشتیبانی WCF از تعداد کثیری از استاندارد های WS-*، امنیت، قابلیت اطمینان و تراکنش با هر پلتفرم دیگری که از این استاندارد ها تبعیت می کند می تواند وجود داشته باشد.
 نتیجه این تجمع قابلیت ها، قدرت بیشتر و کاهش شدید پیچیدگی می باشد.

 ارتباط دوطرفه با سایر پلتفرم های Webservice
 برنامه ای که برپایه WCF ایجاد شده باشد با تمامی اقلام زیر می تواند ارتباط داشته باشد:
 ·         نرم افزار های مبتنی بر WCF که در حال اجرا بر روی processهای مجزا بر روی همان سیستم مبتنی بر ویندوز هستند.
 ·         نرم افزارهای مبتنی بر WCF که بر روی یک سیستم مجزای مبتنی بر ویندوز قرار دارند.
 ·         نرم افزار هایی که بر روی سایر تکنولوژی ها تشکیل شده اند. مانند J2EE که از وب سرویس های استاندارد پشتیبانی می کند. این نرم افزارها می توانند بر روی ماشین هایی با سیستم عامل ویندوز، و یا سایر سیستم هامل ها باشند.
 برای ممکن ساختن چیزی فراتر از یک ارتباط ساده، WCF تکنولوژی های وب سرویسی را که در استاندارد های WS-* تعریف شده اند      پیاده سازی می کند. این استاندارد ها پاسخگوی مسائل مختلفی هستند، از جمله سیستم پایه ای انتقال پیام، امنیت، قابلیت اطمینان، تراکنید و کارکردن با metadata های سایر وب سرویس ها. به تفکیک عملکرد این استانداردها، موارد زیر پوشش داده شده است:
 ·         Messaging: Soap زیربنای وب سرویس ها است و یک پوشش اصلی را برای گنجانده شدن هدر و بدنه اصلی تعریف می کند. WS-Addressing ضمائمی را به هدر SOAP اضافه می کند تا آدرس دهی پیغام های SOAP بدون وابستگی به پروتکل transport مورد استفاده، مانند HTTP، برای حمل اطلاعات آدرس دهی، صورت پذیرد. Message Transmission Optimization Mechanism (MTOM)  معرف یک فرمت بهینه سازی شده برای ارسال پیغام های SOAP ی که حاوی محتویات باینری حجیم هستند می باشد.
 ·         Metadata: زبان توصیف وب سرویس (WSDL)، زبانی استاندارد برای مشخص کردن وب سرویس و جنبه های مختفی از استفاده های ممکن از آن است. WS-Policy این امکان مشخص کردن جنبه های پویاتری از وب سرویس را فراهم می کند که توصیف آنها در WSDL امکانپذیر نیست، مانند حالت امنیتی که ترجیح داده می شود. WS-MetadataExchange این امکان را می دهد تا کلاینت ها بطور مستقیم درخواست اطلاعات دقیقی را ، مانند WSDL و یا policy وب سرویس، بنمایند (به کمک SOAP).
 ·         امنیت: WS-Security، WS-SecureConversation، WS-Trust  و WS-Federation تمامی بخش هایی را به SOAP اضافه می کنند تا authontication، data integrity، امنیت اطلاعات و سایر مشخصه ها فراهم شود.
 ·         قابلیت اطمینان: WS-Reliable Messaging قسمتهایی را به هدر SOAP اضافه می کند که اجازه ارتباط مطمئن end to end را حتی اگر یک یا چند سرویس واسط وجود داشته باشند، می دهد.
 ·         تراکنش‌ها: بر پایه WS-Coordination، WS-Atomic Transaction امکان هماهنگ کردن تراکنش ها با دوفاز commit را در غالب وب سرویس فراهم می کند. 
 به نظر نمی رسد که با استفاده از WCF بخشی از معماری سرویس گرا وجود داشته باشد، که پاسخی برای آن یافت نشود.

منبع : http://www.sayan.ir/ViewArticle.aspx?ArticleID=285#_top
مترجم : مازیار رضایی

----------

