MVC6の新機能

Model View Controllerパターンは、テストと保守が容易なアプリケーションの構築に役立つ最も人気のあるデザインパターンの1つです。Model View Controller(一般にMVCとして知られている)フレームワークは、テスト容易性とコードの再利用を容易にします。ASP.Net MVCフレームワークは、ASP.Netランタイムの上に構築され、MVCデザインパターンに従います。この投稿では、Model View Controllerのデザインパターンを調べ、ASP.Net MVC6の新機能の概要も示します。

名前が示すように、Model View Controllerのデザインパターンは、3つの主要なコンポーネントで構成されています。これらには次のものが含まれます。

  1. モデル-これは、アプリケーションのデータを表すレイヤーです
  2. ビュー-これは、プレゼンテーションまたはユーザーインターフェイスレイヤーを表します
  3. コントローラー-このレイヤーには通常、アプリケーションのビジネスロジックが含まれます

Model View Controllerのデザインパターンを使用すると、懸念事項を切り分けて、アプリケーションのコードのテストと保守を容易にすることができます。

このフレームワークの最新バージョンはMVC6です。MVC6では、System.Web.dllへの依存関係が排除されています。以前のバージョンで行ったSystem.Web.Mvcとは異なり、Microsoft.AspNet.Mvc名前空間を含める必要があります。 ASP.NetMVCフレームワークの。System.Webへの依存は非常に高価だったため、削除されました。MVC6は、はるかにスリムなフレームワーク、より高速な起動時間、およびリソース消費の削減を提供します。

MVC 6フレームワークはクラウド向けに設計されており、クラウドに最適化されたASP.Net 5ランタイムの一部として組み込まれ、Visual Studio 2015の一部として利用できるようになります。クラウドに最適化されたフレームワークを持つことの利点は、さまざまなものを使用できることです。 CLRのバージョンは、クラウドで実行されているさまざまなWebサイトに共存します。 ASP.Net 5では、MVCおよびWebAPIフレームワークが単一のプログラミングモデルに統合されました。そのため、MVC、Web API、およびASP.Netランタイムがすべて1つの統合プログラミングモデルに統合されました。 MVC 6はホストに依存しません。IISでホストする機能がある以外に、セルフホストすることもできます。 MVC 6は、OWIN抽象化のサポートも提供し、これら3つのフレームワーク間の重複を排除するためのWebAPIとWebページを含みます。

依存性注入(制御の反転とも呼ばれます)は、アプリケーションに疎結合でテスト可能で再利用可能なオブジェクトを実装するために使用されるソフトウェアデザインパターンです。 IServiceProviderインターフェイスを利用して、カスタムの依存性注入コンテナを追加できます。このインターフェースは、実際の依存性注入コンテナーの実装に対して一定レベルの抽象化を提供します。デフォルトの依存性注入コンテナがありますが、機能が制限されていることに注意してください。制限された機能が必要な場合は、このデフォルトの依存性注入コンテナを使用できます。追加機能が必要な場合は、独自の依存性注入コンテナーを作成し、IServiceProviderインターフェースを使用して、作成したカスタム依存性注入コンテナーを追加できます。

以前の対応するものとは異なり、MVC6は環境ベースの構成システムをサポートします。MVC6アプリケーションのクラウドへのデプロイが簡単になりました。VisualStudioで新しいMVC6プロジェクトを作成する場合、観察される新しい構成ファイルのセットには次のものが含まれます。

  1. Config.json-これには通常、アプリケーション構成が含まれます
  2. Project.json-このファイルにはプロジェクトの依存関係情報が含まれています
  3. Startup.cs-このファイルにはStartupクラスが含まれており、StartupクラスにはConfigureメソッドが含まれています
  4. Global.json-このファイルには、プロジェクト参照に関する情報が含まれています

VisualStudioでMVC6プロジェクトを作成すると、Startup.csファイルは次のようになります。

Microsoft.Owinを使用します。

Owinを使用します。

[アセンブリ:OwinStartupAttribute(typeof(.Startup))]

名前空間

{{

    パブリック部分クラススタートアップ

    {{

        public void Configuration(IAppBuilderアプリ)

        {{

        }

    }

}

次のコードスニペットは、Startupクラスの一般的なConfigメソッドがどのように見えるかを示しています。

public void Configure(IApplicationBuilder app)      

    {{   

       var configuration = new Configuration()。AddJsonFile( "config.json")。AddEnvironmentVariables();

    }

ConfigureメソッドのIApplicationBuilderパラメーター(このパラメーターは、アプリケーションの起動時にホストから渡されます)に注意してください。Configurationクラスのインスタンスが作成され、構成ソースが渡されます。構成ソースはいくつでも持つことができます。各構成ソースは、構成値プロバイダーに関連付けられています。このアプローチにより、必要に応じてアプリケーションをクラウドにシームレスに移行できます。

また、ConfigureServicesメソッドを使用して、EntityFrameworkサービスをサービスコンテナーに追加することもできます。次のコードスニペットは、一般的なConfigureServicesメソッドがどのように見えるかを示しています。

public void ConfigureServices(IServiceCollection services)

        {{

          services.AddEntityFramework()。AddSqlServer()。AddDbContext();

          services.AddMvc();

          //その他のコード

        }

以下のコードスニペットに示すように、UseMvc拡張メソッドを使用してルート情報を指定することもできます。

            {{

                ルート.MapRoute(

                    名前:「デフォルト」、

                    テンプレート: "{controller} / {action} / {id}"、

                    デフォルト:new {controller = ""、action = "Index"});

AddEntityFramework()およびAddMvc()は、IServiceCollectionインターフェイスで定義された拡張メソッドであることに注意してください。

MVC 6については、今後のブログ投稿でさらに記事を書く予定です。だから、お楽しみに!