ASP.NET 5の概要

4112 ワード

ソースhttps://docs.asp.net/en/latest/conceptual-overview/aspnet.html ASP.NET 5はASP.NETの再設計.
ASPとはNET 5
ASP.NET 5はオープンソースであり、プラットフォームを跨いで現代のクラウドプラットフォームに基づくweb応用を構築するためのものである.NETフレーム.モジュール化された、低overhead、柔軟なフレームワークです.なぜASPを構築するのかNET 5
まずはASP.NET 1.0は今まで15年になりましたが、ずっと進化していて、新しい機能を増やしていて、多くの開発者が使っていますが、プラットフォームを越えて、ソースを開けないことはできません.だから、あなたは知っていて、時代についていけません.
だからASP.NET 5はいくつかのアーキテクチャ上の変更を行い、コアのwebフレームワークをより簡素化し、モジュール化した.彼はシステムに依存しなくなった.Web.dllは、一連の粒度の小さいdllに依存するものであり、これらのdllはいずれもNuGetによる実装管理が可能であり、アプリケーションのsurface areaをすべて低減する安全性を向上させるとともに、サービス負担を低減し、性能を向上するpay for playを実行する.
ASP.NET 5は,現代化されたWeb開発に対応するため,Web UIとWeb apiおよび開発ワークフローを統合したものである.環境ベースの配置を導入することで、ASP.NET 5はcloud-readyをサポートし、内蔵のDI(依存注入)もサポートしている.
開発者を引き付けるために、オープンソース、プラットフォームにまたがって、コミュニティcontributionsを奨励します.Visual Studioの迅速な開発をサポートし、コマンドラインインタフェースも完備しています.
とにかく、ASP.NET 5は開発者を引き付け、時代に追いつくために、オープンソース、プラットフォーム間の変更を行い、基礎的な改善は以下の通りである.軽量レベルでモジュール化されたhttpリクエストpipeline 2.IISをhostとしてもよいし、self-host in your own process 3としてもよい.Built on .NET Core, which supports true side-by-side app versioning 4. 完全にNuGetによって5.NuGetパッケージの作成と使用に関する完全なサポート6.Web UIとWeb APIsに一致するウェブ開発スタック7を提供する.Cloud-ready environment-based configuration 8. 組み込みサポート依存注入9.新しいツールは現代のweb開発を簡素化する.クロスプラットフォーム11.オープンソース、コミュニティに集中
解剖の適用
ASP.NET 5は新しい.NET Execution Environment(DNX)によって構築および実行されます.各ASP.NET 5はすべてDNXプロジェクトで、Microsoftを通じて.AspNet.Hostingパッケージ、ASP.NET 5とDNXが統合されています.
ASP.NET 5アプリケーションはStartupクラスによって定義されます.
public class Startup
{
     public void ConfigureServices(IServiceCollection services)
     {
     }
    public void Configure(IApplicationBuilder app)
 {
  }
}

ConfigureServicesメソッドはアプリケーションが使用するサービスを定義し、Configureメソッドは要求パイプを構成するミドルウェアを定義します.
サービス
サービスはASP.NET 5アプリケーションで共通に使用されるコンポーネントは,注入に依存して取得される.ASP.NET 5には内蔵されたIOC容器が含まれており、デフォルトではコンストラクタ注入をサポートしており、もちろん自分のIOC容器で置き換えることも可能です.See Dependency Injection for more details.
ASP.NET 5のサービスには、singleton、scoped、transientの3つのライフサイクルがあります.Transientはリクエストごとに1回のサービスを作成し、Scopedは現在のScopedにサービスが存在しない場合に作成され、Singletonは1回だけ作成されます.Webアプリケーションでは、コンテナのscopeはリクエストごとに1回作成されます.so you can think of scoped services as per request.
ミドルウェア
ASP.NET 5では、ミドルウェアで独自のリクエストパイプを構成できます.ASP.NET 5ミドルウェアは、HttpContext上で非同期論理動作を実行し、オプションでパイプ内の次のミドルウェアを呼び出すか、要求を直接終了する.一般的には、コンフィギュレーションメソッドのIApplicationBuilderの対応する拡張メソッドを呼び出すことで、ミドルウェアを「使用」することができます.
ASP.NET 5には、プリコンパイルされたミドルウェアがいくつか付属する.Working with Static Files 2. Routing 3. Diagnostics 4. Authenticationもちろん自分のミドルウェアも書けます
サーバ
ASP.NETアプリケーションhosting modelは、要求を直接傍受するのではなく、but instead relies on an HTTP server implementation to surface the request to the application as a set of feature interfaces that can be composed into an HttpContext.
Web Root
Web RootはASP.NETアプリケーションのルート位置は、ここでhttpリクエストの処理(静的ファイルの処理など)です.ASP.NET 5のWeb Rootはプロジェクトを通過する.jsonのwebrootプロパティで構成されています.
コンフィギュレーション
ASP.NET 5は、Systemに基づくものではなく、単純なname-value対を扱う新しい構成モデルを用いる.Configurationまたはweb.config.This new configuration model pulls from an ordered set of configuration providers.組み込まれた構成providerはxml,json,iniなどの各種ファイルフォーマットをサポートし,同時に環境変数をサポートし,環境ベースの構成を実現する.自分のプロファイルを書くこともできます.ASP.NET 5では,開発や生産のような環境はfirst-class概念であり,環境変数によって設定できる.(Environments, like Development and Production, are a first-class notion in ASP.NET 5 and can also be set up using environment variables):
var builder = new ConfigurationBuilder()
    .AddJsonFile("appsettings.json")
    .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true);
if (env.IsDevelopment())
{
    // For more details on using the user secret store see http://go.microsoft.com/fwlink/?LinkID=532709
    builder.AddUserSecrets();
}
builder.AddEnvironmentVariables();
Configuration = builder.Build();

新しい構成システムについてはConfigurationを参照してください.Working with Multiple Environments for details on how to work with environments in ASP.NET 5
クライアント開発(Client-side development)
ASP.NET 5は、angularJS、KnockoutJs、BootStrapなど、さまざまなクライアントフレームワークをシームレスに統合しています.詳細はClient-Side Development for more detailsを参照してください.