asp.net-core-mvc チュートリアル
asp.net-core-mvcを使い始める
サーチ…
備考
このセクションでは、asp.net-core-mvcの概要と、なぜ開発者がそれを使いたいのかを概説します。
また、asp.net-core-mvc内の大きなテーマについても言及し、関連トピックにリンクする必要があります。 asp.net-core-mvcのドキュメントは新しくなっているので、それらの関連トピックの初期バージョンを作成する必要があります。
インストールまたはセットアップ
Visual Studioのインストール
Visual Studioがインストールされていない場合は、 ここで無料のVisual Studio Community Editionをダウンロードできます 。インストール済みの場合は、次の手順に進むことができます。
ASP.NET Core MVCアプリケーションの作成
- Visual Studioを開きます。
- ファイル/新規プロジェクトを選択します。
- 左側の[テンプレート]セクションで希望する言語でWebを選択します。
- ダイアログ内で優先プロジェクトタイプを選択します。
- オプション:ターゲットにする.NET Frameworkを選択します
- プロジェクトに名前を付け、プロジェクトのソリューションを作成するかどうかを指定します。
- [OK]をクリックしてプロジェクトを作成します。
プロジェクトに使用するテンプレートを選択する別のダイアログが表示されます。
各説明は自明です。この最初のプロジェクトでは、 Webアプリケーションを選択します 。これには、すべてのデフォルト設定、認証、および既存のコンテンツが含まれます。
これは導入アプリケーションであり、セキュリティや認証を必要としないため、ダイアログボックスの右側で認証オプションを[認証なし]に変更し、 [OK ]をクリックしてプロジェクトを作成できます 。
ソリューションエクスプローラで新しいプロジェクトが表示されます。
F5キーを押してアプリケーションを実行し 、デバッグセッションを開始すると、デフォルトのブラウザでアプリケーションが起動します。
これで、プロジェクトがローカルに起動して実行されていることがわかり、アプリケーションを構築する準備が整いました。
PS:Used asp.net-core Documentationからasp.net-coreトピックを使い始める 。
MVCミドルウェアを追加
空のプロジェクトを作成した場合、またはまだアプリケーションにmvcが設定されていない場合は、依存関係を追加できます。
"Microsoft.AspNetCore.Mvc": "1.0.1"
project.json
ファイルの"dependencies"
ます。
StartupクラスにMVCミドルウェアを登録します:
public void ConfigureServices(IServiceCollection services)
{
...
services.AddMvc();
}
Service.AddMvc services.AddMvc()
とservices.AddMvcCore()
両方があることに注意してください。あなたがasp.net core
で始まっている場合、またはそれをそのまま使用したい場合は、 services.AddMvc()
。しかし、高度な経験が必要な場合は、最小限のMVCパイプラインから始め、 services.AddMvcCore()
を使用してカスタマイズされたフレームワークを取得する機能を追加することができservices.AddMvcCore()
。 AddMvcCore
詳細については、 このディスカッションを参照してください。
public void ConfigureServices(IServiceCollection services)
{
services
.AddMvcCore()
.AddAuthorization()
.AddJsonFormatters(j => j.Formatting = Formatting.Indented);
}
これでアプリケーションビルダーにmvc:
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
...
app.UseMvc();
}
またはデフォルトルーティングで
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
依存性注入の基礎
ほぼすべてのコントローラは、動作するためにいくつかの外部依存関係を必要とします。依存オブジェクト(またはそのファクトリ)をコンフィグレーションしてコントローラに渡す方法があります。そうすることで、懸念の分離を維持し、コードを明確かつテスト可能な状態に保つのに役立ちます。
言うことですが、コンストラクタでconfigからいくつかの値を必要とするインタフェースとその実装があります:
public interface ISomeDependency
{
async Task<IEnumerable<string>> GetItemsAsync(string key);
}
public class SomeDependency : ISomeDependency
{
public SomeDependency(string connectionString)
{
...
}
...
}
いくつかのコントローラクラスで使用されています:
public class SomeController : Controller
{
private reanonly ISomeDependency dependency;
public SomeController(ISomeDependency dependency)
{
...
this.dependency = dependency;
}
...
public async Task<IEnumerable<string>> Get(string key) =>
await dependency.GetItemsAsync(key);
}
Startup.ConfigureServices
メソッド内でStartup.ConfigureServices
呼び出すコントローラーコンストラクターにこの依存関係を挿入できservices.AddTransient
。
public class Startup
{
public Startup(IHostingEnvironment env)
{
var builder = new ConfigurationBuilder().
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
...
Configuration = builder.Build();
}
public IConfigurationRoot Configuration { get; }
public void ConfigureServices(IServiceCollection services)
{
...
services.AddTransient(serviceProvider =>
new MyDependency(Configuration["Data:ConnectionString"]));
}
...
}
Data:ConnectionString
は、 appsettings.json
ファイルの設定へのパスです。
{
...
},
"Data": {
"ConnectionString": "some connection string"
}
}
生涯管理
注入されたオブジェクトの寿命を管理するために、一緒にAddTransient
別の2つのオプションが存在する: AddSingleton
とAddScoped
。最後の1つは、オブジェクトのライフタイムがHTTP要求にスコープされていることを意味します。
バージョン
バージョン | お知らせ | 発売日 |
---|---|---|
RC1 * | 1.0.0-rc1 | 2015-11-01 |
RC2 * | 1.0.0-rc2 | 2016年5月16日 |
1.0.0 | 1.0.0 | 2016年6月27日 |
1.0.1 | 1.0.1 | 2016-09-13 |
1.0.1 | 1.0.1 | 2016-09-13 |
1.1 | 1.1.0 | Q4 2016 / Q1 2017 |
1.2 | 1.2.0 | Q1 2017 / Q2 2017 |
*年次四半期(Q1、Q2、Q3、Q4)への参照はカレンダーベースです