Entity Framework 6の改善
Visual Studio 2013は、Entity Framework 6が一緒に出荷されており、データアクセス空間にすばらしい新機能が数多く含まれています。
非同期とTask<T>のサポート
EF6の新しい非同期クエリと保存のサポートにより、非同期データアクセスを実行し、データアクセスシナリオ内の.NET 4.5に導入されたTask<T>サポートを活用することができます。これにより、データアクセスリクエストでブロックされる可能性のあるスレッドが解放され、データベースエンジンの処理を待っている間に他のリクエスト処理に使用できます。データベースサーバが応答すると、スレッドは、ASP.NETアプリケーション内で再度キューに登録され、実行が継続されます。これにより、かなりスケーラブルなサーバコードを簡単に書くことができます。
以下は、新しいEF6非同期クエリメソッドを利用するASP.NET WebAPIアクションの例になります。
傍受とログ
傍受とSQLログにより、Entity Frameworkによりデータベースに送信されたすべてのコマンドが確認(また変更も)できるようになりました。これには、デバッグに適した単純で人間が読める形のログと、コマンドや結果にアクセスできるように、低レベルのビルディングブロックがいくつか含まれています。
以下は、MVCコントローラのコンストラクタでデバッグするために設定された簡単なログの例です。
独自のコードファースト表記規則
新しい独自のコードファースト表記規則では、コードファーストモデルを一括設定することができ、書いたり保守したりする必要のあるコードの量を減らします。
ドメインクラスがコードファースト規則に一致しない場合に便利です。
例えば、以下の規則は、エンティティが属する主キーとなる"Key’と呼ばれるすべてのプロパティを設定します。
これは、IDおよび<type name>Idを想定するデフォルトのコードファースト規則とは異なります。
接続の弾力性
EF6の新しいConnection Resiliency機能では、失敗したデータベース操作の処理(必要に応じて再試行)を行う実行戦略を登録することができます。
これは、ロードバランサや分散ネットワークをトラバースすると、よく接続のドロップが見つかるクラウド環境に展開すると特に便利です。
再試行可能な例外の種類を知っていて、エラー発生時に再試行された数と再試行間の時間に対して常識的な(上書き可能)デフォルトをいくつか持っているSQL Azure用の実行戦略がEF6にはビルトインされています。
登録は、新しいコードベースの構成サポートを使用するだけです。
これらはEF6の新機能の一部です。新機能の完全なリストは、Entity Frameworkサイトのリリースノートセクションを参照してください。
Microsoft OWINコンポーネント
Open Web Interface for .NET(OWIN)は、.NET WebサーバとWebアプリケーション間のオープンな抽象化を定義しており、ASP.NET "Katana"プロジェクトでは、この抽象化をASP.NETにもたらします。
OWINは、Webアプリケーションをホストに依存しないようにし、サーバからWebアプリケーションを分離します。例えば、OWINベースのWebアプリケーションは、IISでホストすることも独自のプロセスで自己ホストすることもできます。
OWINとKatanaの詳細については、OWINおよびKatanaの進捗をご確認ください。
まとめ
Visual Studio 2013、ASP.NET、Entity Frameworkの今回のリリースは、Web開発のライフサイクルを効率化するすばらしい新機能を提供してます。これらの機能は、サーバフレームワークから、データアクセス、クライアント側のHTML開発ツールに渡っています。これらは、いくつかのすばらしいオープンソース技術や、開発者コミュニティからの貢献とも統合されています。
ダウンロードして、すぐに使用してみてください!
Scott
P.S.ブログに加え、現在Twitterを使って簡単な更新やリンク共有を行っています。twitter.com/scottguで、私をフォローしてください。