今朝、ASP.NET チームのお偉いさんである Scott Hunter が ASP.NET MVC 5.1 / Web API 2.1 / Web Pages 3.1 のリリース候補版を公開したとツイートしていたので、ちょっと内容を書いてみようと思います。
公式のブログでもしっかりと新機能の説明がされているので、まずはこっちを読むといいですね。
一応、リリースノートも更新されていますね。
ASP.NET and Web Tools 2013.2 for Visual Studio 2013 Release Notes | The ASP.NET Site
チラチラと ASP.NET and Web Tools 2013.2 という文字が見えますが、実際にはランタイム部分だけリリース候補版が公開された形になります。
ただし、今回のアップデートを試すには Visual Studio 2012 の場合は ASP.NET and Web Tools 2013.1 のインストールを、Visual Studio 2013 の場合は Visual Studio 2013 Update 1 のリリース候補版を入れておいた方が良いみたいです。*1
簡単に今回のリリース候補版を試すには、空の ASP.NET MVC プロジェクトや Web API プロジェクトを作成して、以下のようなコマンドを叩きこむのが楽だと思います。
// まずは日本語リソースを削除 Uninstall-Package Microsoft.AspNet.Mvc.ja Uninstall-Package Microsoft.AspNet.Razor.ja Uninstall-Package Microsoft.AspNet.WebPages.ja // リリース前パッケージを含める形でアップデート Update-Package -Pre
注意点としては日本語リリースを削除しておかないと、依存関係周りでエラーになります。
ASP.NET MVC 5.1
Attribute Routing での HTTP ヘッダー対応は Web API 側だけでいいんじゃないかと言う気はしますが、今回は既に ASP.NET MVC 5.1 の新機能を Nightly Build で試してみた - しばやん雑記 でも紹介した EnumHelper 周りがメインな感じです。
正直言って HTML Helper の Bootstrap サポートが、まさか Html.EditorFor で html タグの属性を指定出来るようになっただけだったことに驚きを隠せませんね。そして EnumHelper に関しても、まさか EnumDropDownListFor だけの追加になるとは思ってもいませんでした…。
一応サンプルではラジオボタンとして扱うコードもあるのですが、それもまさかまさかの IEnumerable
RTM までにもうちょっと何とかなってくれることを祈りたいです。ちなみに
ASP.NET MVC に投げた 2 つ目の Pull Request がマージされました - しばやん雑記
ASP.NET MVC に投げた Pull Request がマージされました - しばやん雑記
で書いた修正も既に取り込まれているので、個人的に安心できました。
ASP.NET Web API 2.1
ちらっと見た感じでは BSON 対応や ActionFilter での非同期対応が新しい感じですね。ActionFilter での非同期対応は MVC にも早く来てくれという感じでしょうか。個人的には今まで IgnoreRoute に対応していなかったのが不思議で仕方ないです。
それ以外の解説は id:miso_soup3 に任せることにします。*2
まとめ
そういえば、一応 Web Pages と Razor も 3.1 にバージョンが上がっているんですが、リリースノートや CodePlex の Issue にも全然記載が無いので大した更新はされて無さそうです。
今まではプレビューやベータがまず公開されることが多かった ASP.NET MVC / Web API / Web Pages ですが、今回は突然のリリース候補版なので ASP.NET Web Stack も高速リリースサイクルに乗ったということでしょう。
多分、年末から年明けの早いうちに RTM が公開されるのではないかと思っていますので、その時にまた詳しく書くことにします。