ASP.NET MVC - ASP.NET MVC 4 Recipes、Task支援Async Controller
2012/02/25更新
終於到了ASP.NET MVC 4 的最終章,而剩下的一點點東西,就會在這篇介紹完畢,最後剩下的新功能,大概就是Recipes和Asynchronous Controllers這兩樣,其實這兩樣東西在路線圖就已經有介紹過了,而這些東西,這次官網也沒有真的公布許多東西,所以我就稍微針對官網的敘述,做一個解釋。
Recipes
這個新功能,可以讓你在Visual Studio裡面擁有完整的解決方案,就像之前所提到的,利用NuGet來安裝jQuery Mobile,來取得完整的Mobile裝置環境,而這次官方也提供Recipes Framework來給使用者開發使用,來製作方便好用的Package,並且使用此功能,也可以讓你去新增或是處理Area、Controller、View等檔案,而且配合NuGet的更新能力,更讓整個機制更加的完整而且方便。
Task 正式支援 Asynchronous Controllers
Asynchronous Controllers的Return可以返回Task了;如以下範例,以下範例使用了C# 5.0 (or 使用了AsynC CTP )。
public async TaskIndex(string city) { var newsService = new NewsService(); var sportsService = new SportsService(); return View("Common", new PortalViewModel { NewsHeadlines = await newsService.GetHeadlinesAsync(), SportsScores = await sportsService.GetScoresAsync() }); }
第二個範例,我們可以設定TimeOut的時間。
[AsyncTimeout(2500)] [HandleError(ExceptionType = typeof(TaskCanceledException), View = "TimedOut")] public async TaskIndex(string city, CancellationToken cancellationToken) { var newsService = new NewsService(); var sportsService = new SportsService(); return View("Common", new PortalViewModel { NewsHeadlines = await newsService.GetHeadlinesAsync(cancellationToken), SportsScores = await sportsService.GetScoresAsync(cancellationToken) }); }
原則上就是這樣,其中有一些issues的部分,因為會一直去做修正,所以就不在這裡講了,有興趣的可以直接去參考相關網站。