با عرضه نسخه نهایی ویژوال استودیو 2012 و همین‌طور دات نت نسخه 5‌/‌4، مایکروسافت نسخه 4 از کتابخانه معروف ASP.NET MVC را ارائه کرد. این کتابخانه را ـ که روز به روز با سرعت بیشتری نسبت به هسته اصلی ASP.NET در حال رشد است ـ می‌توان آینده مایکروسافت برای توسعه‌دهند‌گان وب دانست. خیلی از برنامه‌نویسان و توسعه‌دهند‌گان نرم‌افزارهای تحت وب، این کتابخانه را جایگزین ASP.NET کرده‌اند و وب‌سایت‌های خود را روی این کتابخانه پیاده کرده‌اند. یکی از بزرگ‌ترین وب‌سایت‌هایی که با این کتابخانه توسعه داده شده وب‌سایت stackoverflow.com است. اما هر محصول جدید قطعا مزایایی نسبت به نسخه‌های قبلی خود دارد. در ادامه قصد داریم این مزیت‌ها را نسبت به نسخه‌های قبلی بررسی کرده و با آنها بیشتر آشنا شویم.

Minification (کوچک‌سازی)

تمام فایل‌های CSS و JS که به‌صورت پیش‌فرض به پروژه‌های ASP.NET MVC‌ اضافه می‌شد، بهینه شده‌ و تمام خطوط اضافه و نظرات برنامه‌نویسان این فایل‌ها حذف شده‌ است و علاوه بر این، نام متغیر‌ها نیز کوچک شده‌ است تا یک نسخه سبک از آنها ارائه شود. با این‌کار شما دیگر نگران جابه‌جایی حجم زیادی از اطلاعات با سرور خود نخواهید بود.

Bundling (متمرکزسازی)

ممکن است شما چند فایل CSS برای پروژه خود تعریف کنید. برای مثال، یکی برای محتوا و reset و دیگری برای layout خود و به‌وسیله Bundling، تمام فایل‌های CSS‌ خود را در یک فایل داشته باشید. خود ASP.NET MVC براساس قرارداد نامی مشخص، آنها را به ترتیب در یک فایل قرار می‌دهد؛ مثلا reset همیشه اولین CSS‌ در فایل حاصل خواهد بود.

Mobile

در نسخه ۳ هم شما می‌توانستید با تغییر در CSS و JS در وب‌سایت خود کاری کنید که در مرورگرهای موبایل بدرستی نمایش داده شود؛ اما در این نسخه مایکروسافت این ویژگی را به صورت داخلی در ASP.NET MVC‌ گنجانده است و با استفاده از jQuery Mobile می‌توانید وب‌سایت برای موبایل ایجاد کنید. Project Template هنگام ایجاد یک پروژه جدید MVC‌ وجود دارد و خود ASP.NET MVC‌ وظیفه رندرکردن و ایجاد فایل‌های مورد نیاز برای این‌که یک وب‌سایت را به همان صورت که در رایانه شخصی انجام می‌دهد در موبایل و با توجه به اندازه آن رندر می‌کند.

Project template

پروژه‌های جدید در این نسخه نسبت به نسخه قبلی، از قالب‌های بیشتری برای توسعه برنامه‌ها برخوردار است. شما براحتی می‌توانید پروژه‌های خود را با آن اجرا و از آن استفاده کنید. به‌طور مثال، استفاده بیشتر از AJAX و OAuth در پروژه‌های جدید و همان‌طور که در بالا توضیح داده شد، قالبی برای اجرای پروژه‌های موبایل. تمام تغییراتی که در بالا توضیح داده شد، تغییرات در لایه بیرونی ASP.NET MVC بود، اما در پشت پرده نیز اتفاقات دیگری افتاده است.

Web API

همان‌گونه که در شماره‌های پیش در مورد Web API و ایجاد وب سرویس‌ها‌ی مبتنی بر RESTful توضیح دادیم Web API نسبت به WCF خیلی راحت‌تر و سریع‌تر شده ‌است. از آنجا که معماری آن بر پایه MVC‌ بنا نهاده شده برای کسانی که پیش از این با ASP.NET MVC کار کرده‌اند پیچیدگی خاصی ندارد. هسته اصلی Web API یا همان ApiController می‌تواند با بازگرداندن یک شیء« IQueryable«T مانند سرویس‌هایی که پیش از این با استفاده از OData پیاده می‌شد، استفاده شود.

Async (غیر هم‌روند)

این ویژگی به شما امکان اجرای غیرهمروند یک اکشن را در ASP.NET MVC‌ می‌دهد و می‌تواند برای کارهای بزرگ و زمانی که تراکنش با سرور و بانک اطلاعاتی زیاد است، مورد استفاده قرار گیرد. در این حالت شما به معرفی دو متد برای این‌کار نیاز داشتید، دقیقا مانند همان چیزی که Asynchronous Programming در ویندوز وجود دارد. یک متد شما کاری که نیاز به پردازش بیشتر دارد در Thread Pool قرار می‌گیرد تا به نوبت اجرا شود، سپس داده‌های خود را به تابع دیگر می‌دهد تا وظیفه خود را برای نمایش اطلاعات و ارسال آن به بخش View را به عهده ‌گیرد. اما در نسخه جدید با توجه به توسعه ویژگی جدید به زبان # C و VB.NET به نام Asynchronous ، تعریف دو متد حذف شد و به جای آن از ویژگی Asynchronous استفاده می‌شود. به کد زیر دقت کنید:

public async Task«ActionResult» Index(string city) {    

var newsService = new NewsService();    

var sportsService = new SportsService();

return View("Common", new PortalViewModel {

NewsHeadlines = await newsService.GetHeadlinesAsync(),

SportsScores = await sportsService.GetScoresAsync()});

}