فناوری اطلاعات رایساز

مقایسه WCF با Web Api

نوشته شده توسط محمد حسن سلمانیان | یکشنبه ۲۲ اسفند ۱۳۹۵

مقایسه WCF با Web Api
1087

در این مقاله قصد داریم مطالبی درباره WCF و Web API ارائه دهیم و آنها را بررسی کنیم . در پایان خواهیم دانست که کدامیک از این تکنولوژی ها نسبت به دیگری برتری دارد. همانطور که می دانید تکنولوژی های زیادی وجود دارد که به شما اجازه می دهد تا سرویس هایی را برای ارائه به کاربرهای مختلف ایجاد کنید.

 

در این مقاله قصد داریم مطالبی درباره WCF و Web API  ارائه دهیم و آنها را بررسی کنیم.  در پایان خواهیم دانست که کدامیک از این دو تکنولوژی نسبت به دیگری برتری دارد.

همانطور که می دانید تکنولوژی های زیادی وجود دارد که به شما اجازه می دهد تا سرویس هایی را برای ارائه به کاربر های مختلف ایجاد کنید. کابر می تواند Web application ، Window application Mobile applicatin  و... باشد ، سرویس می تواند HTTP Enabled  یا پروتکل های چندگانه باشد .

WCF مخفف Windows Communication Foundation  است ، که با .NET Framework 3.0 توسط مایکروسافت ایجاد شد. برای ما پلت فرمی فراهم میکند که بتوانیم سرویس های قابل اعتماد امن که می توانند در سراسر پلت فرم ادغام شوند، ایجاد کنیم.

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  و ... میشود که آن را پیچیده میکند.

Security

WCF چارچوب امنیتی سطح بالایی را برای ما فراهم میکند که از استاندارد  WS-I برای ارائه سرویس امن استفاده می کند.

اما Web API  از امنیت استاندارد وب مانند basic authentication ، token authentication استفاده میکند و برای پیچیدگی های بیشتر مانند OAuth انعطاف پذیری بیشتری ارائه می دهد. از SOAP زمانی که از تشخیص هویت با سرویس خارجی مانند Google ، Facebook  و ...  استفاده می شود.

برنده؟

در آخر با دیدن نکات بالا نمی توانیم تصمیم بگیریم که کدام یک نسبت به دیگری  برتری دارد. اما میخواهیم بر دو نکته دقیق شویم. اول اینکه اگر میخواهید یک سرویس که در پلت فرم های مختلف استفاده شود را ایجاد کنید ، WCF  را بکار گیرید. دوم اینکه اگر بخواهید یک سرویس اینترنتی که قصد استفاده از منابع خارجی دارد را ایجاد کنید ،Web API  را بکار گیرید .


نظرات


    ارسال نظر

    کپچا کد