مایکروسافت به عنوان یکی از تولیدکنندگان نرمافزار و ابزارهای توسعه، برنامههای کاربردی توسعه کتابخانهها به منظور تولید سرویسهای تحت وب و همینطور RESTful Service را در دستورکار خود دارد. البته این شرکت سابقه تولید کتابخانههایی برای توسعه سرویسهای تحت وب را دارد. او ابتدا با استفاده از SOAP و WSDL در این زمینه برای برنامهنویسان APIهایی فراهم کرده بود، اما با ارائه داتنت نسخه ۳ و ارائه WCF به عنوان یک چارچوب توسعه سرویسهای تحت وب، گامهای مهمی در این زمینه برداشت و توسعه وبسرویسهای خود ـ که پیش از این در داتنت انجام میشد ـ را کاملا دگرگون کرد. WCF روند سیر تکاملی خود را بسرعت طی کرد و در نسخه3/5 خود که با داتنت 3/5 ارائه شد، تغییرات زیادی در معماری آن داد. بعد از آن مایکروسافت با ارائه سرویس پک ۱ برای ویژوال استودیو ۲۰۰۸ و همینطور داتنت 3/5 نسخه جدیدی از WCF را ارائه کرد که علاوه بر امکانات قبلی، قابلیت پشتیبانی از سرویسهای RESTful را در خود داشت. این نسخه را میتوان تنها راهحل مایکروسافت برای توسعه سرویسهای RESTful دانست. در همین بین پیشرفت Cloud Computing و سیستمهایعامل تحت وب و همچنین Software as a Services و استفاده از سرویسهای RESTful تاثیر شگرفی بر کار توسعهدهندگان گذاشت. مایکروسافت نیز به عنوان یکی از بزرگترین تولیدکننده نرمافزار در دنیا با ارائه ویندوز لاجوردی(Azure) گام در توسعه پردازشهای ابری گذاشت. همین موضوع باعث شد این کمپانی به فکر بهبود WCF باشد و با فراهمکردن APIهای کاربردی در این حوزه به فعالیتش ادامه دهد.در مرحله بعد و با ارائه نسخه ۴ مایکروسافت تلاش بیشتری در این زمینه از خود نشان داد. یکی از چارچوبهایی که خیلیها آن را جایگزین معماری ASP.NET پیشین میدانند ASP.NET MVC بود که بشدت بین برنامهنویسان گسترش یافت و استفادههای زیادی از آن برای تولید برنامههای جدید تحت وب در داتنت فراهم شد. پیشرفت ASP.NET MVC خیلی سریع بود تا جایی که طی چهار سال، چهار نسخه از آن ارائه شد. در آخرین نسخه آن، مایکروسافت یک ویژگی جدید به آن اضافه کرد. این ویژگی که به نام Web API شناخته میشود، امکان توسعه سرویسهای RESTful را به کاربر میدهد که پیش از این برای توسعه آن باید از WCF استفاده میشد. از ویژگیهای این کتابخانه میتوان به این موارد اشاره کرد:
۱ ـ پردازش درخواستهای HTTP که به سمت سرور میآید و مدیریت آنها. این درخواستها میتواند با متدهای مختلف HTTP را به سمت سرور ارسال کند.
۲ ـ تعیین مسیر درخواستها بر اساس نوع متد HTTP آنها ؛ یعنی طبق همان مسیریابی که پیش از این در ASP.NET انجام میشد.
۳ ـ استفاده از فرمتهای مختلف برای ارسال و دریافت اطلاعات بین کلاینتها و سرویس که به صورت پیشفرض از json و xml استفاده میشود.
۴ ـ پشتیبانی از Queryable برای ارائه پاسخها به صورت یک شیء IQueryable مانند چیزی که پیش از این در OData شاهد آن بودیم.
۵ ـ امکان اجرای آزمایشهای واحد به همان راحتی که پیش از این در ASP.NET MVC وجود داشت.
۶ ـ پشتیبانی از Scaffold و ایجاد کنترلها و اکشنها با استفاده از دیالوگهایی که در Visual Studio برای آن تعریف شده است؛ مانند ایجاد یک کنترلر در ASP.NET MVC.
امیربهاالدین سبطالشیخ
در تپش این هفته، ماجرای فریب و تعرض در پوشش عرفانهای دروغین و رمالی را بررسی کردیم