مقایسه WCF با Web API
چهارشنبه 22 مهر 1394در این مقاله قصد داریم مطالبی درباره WCF و Web API ارائه دهیم و آنها را بررسی کنیم . در پایان خواهیم دانست که کدامیک از این تکنولوژی ها نسبت به دیگری برتری دارد. همانطور که می دانید تکنولوژی های زیادی وجود دارد که به شما اجازه می دهد تا سرویس هایی را برای ارائه به کاربرهای مختلف ایجاد کنید.
در این مقاله قصد داریم مطالبی درباره WCF و Web API ارائه دهیم و آنها را بررسی کنیم. در پایان خواهیم دانست که کدامیک از این دو تکنولوژی نسبت به دیگری برتری دارد.
همانطور که می دانید تکنولوژی های زیادی وجود دارد که به شما اجازه می دهد تا سرویس هایی را برای ارائه به کاربر های مختلف ایجاد کنید. کابر می تواند Web application ، Window application Mobile applicatin و... باشد ، سرویس می تواند HTTP Enabled یا پروتکل های چندگانه باشد .
WCF مخفف Windows Communication Foundation است ، که با .NET Framework 3.0 توسط مایکروسافت ایجاد شد. برای ما پلت فرمی فراهم میکند که بتوانیم سرویس های قابل اعتماد امن که می توانند در سراسر پلت فرم ادغام شوند، ایجاد کنیم.
در صورت تمایل میتوانید به صورت رایگان آموزش WCF به همراه پروژه عملی را در سایت تاپ لرن مشاهده کنید .
Web API یک Framework است که برای ایجاد سرویس های HTTP استفاده می شود. همانطور که می دانید امروزه از موبایلها ، تبلت ها ، Application ها وانواع مختلفی از سرویس استفاده میکنیم، پس Web API یک پلت فرم ساده و قابل اعتماد برای ایجاد سرویس های HTTP Enabled که میتوانند طیف گسترده ای از کاربران را پوشش دهند می باشد. Web API برای ایجاد سرویس های REST استفاده می شود.
SOAP
Simple Object Access Protocol [SOAP] یک پروتکل است که توسط مایکروسافت برای ایجاد ساختار فرمت داده یا پیام که روی اینترنت انتقال می یابد ارائه شد. پروتکل SOAP پایه اصلی WCF است که از فرمت XML استفاده می کند. وب سرویس، فایل [Web Services Description Language] WSDL را ایجاد میکند که اطلاعاتی درباره داده سرویس ارائه می دهد، پس فایل WSDL توسط کاربر برای درک متدهای در دسترس روی سرویس استفاده می شود.
REST
REST مخفف Representational State Transfer می باشد. مانند SOAP یک پروتکل نیست، گرچه الگوی طراحی معماری است که برای ساخت و ایجاد Web Serviceها استفاده می شود.
Web API از این الگو برای ساخت وب سرویس ها استفاده میکند. Web API به طور کامل از REST پشتیبانی میکند. و برای ارتباط با کاربر از GET,PUT,POST,DELETE استفاده میکند.
Interoperability
سرویسهای RESTful مانند Web API ساده و کم حجم هستند و به سادگی در دسترس هر کاربری که HTTP را پشتیبانی میکند قرار می گیرند. شبیه SOAP نیست که کاربر به درک WSDL برای اجرای سرویس احتیاج داشته باشد.
WSDL از تنظیمات اضافی و بعضی منطق های اضافی استفاده میکند که ممکن است در دسترس بعضی از دستگاه ها مانند موبایلها ، تلویزیون های هوشمند ، تبلت ها و... نباشد.
WCF از بسیاری پروتکل ها پشتیبانی میکند که توسط تعداد زیادی از کاربرها که از پروتکل های مختلف مانند TCP، MSMQ و ... و نه فقط پروتکل HTTP برای دسترسی به سرویس استفاده میکنند مصرف می شود.
Configuration Overhead
کاربر نیاز به تنظیمات بیشتری نسبت به Web API برای دسترسی به سرویس WCF دارد.WCF از تنظیمات بیشتری مانند endpoints ، behaviors و ... استفاده میکند. اما Web API از روش های استاندارد بیشتری برای خصوصی کردن سرویس استفاده می کند که کمک میکند تا کاربران بیشتری از آن استفاده کنند.
Speed
سرویسهای RESTful از پروتکل HTTP برای دسترسی کاربر استفاده میکنند . درخواست و پاسخ HTTP نسبت به درخواست SOAP کوچکتر هستند، پس Web API انتخاب بهتری است اگر بخواهید یک سرویس برای دستگاه های پهنای باند کم یا موبایلها برای دسترسی کاربر ایجاد کنید. درخواست و پاسخ HTTP قابلیت خوانایی بیشتری در مقایسه با SOAP دارد زیرا شامل Header, Body و ... میشود که آن را پیچیده میکند.
WCF چارچوب امنیتی سطح بالایی را برای ما فراهم میکند که از استاندارد WS-I برای ارائه سرویس امن استفاده می کند.
اما Web API از امنیت استاندارد وب مانند basic authentication ، token authentication استفاده میکند و برای پیچیدگی های بیشتر مانند OAuth انعطاف پذیری بیشتری ارائه می دهد. از SOAP زمانی که از تشخیص هویت با سرویس خارجی مانند Google ، Facebook و ... استفاده می شود.
برنده؟
در آخر با دیدن نکات بالا نمی توانیم تصمیم بگیریم که کدام یک نسبت به دیگری برتری دارد. اما میخواهیم بر دو نکته دقیق شویم. اول اینکه اگر میخواهید یک سرویس که در پلت فرم های مختلف استفاده شود را ایجاد کنید ، WCF را بکار گیرید. دوم اینکه اگر بخواهید یک سرویس اینترنتی که قصد استفاده از منابع خارجی دارد را ایجاد کنید ،Web API را بکار گیرید .
- WCF
- 4k بازدید
- 2 تشکر