SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Scott Guthrie氏 Blog翻訳

ASP.NET 5の紹介

連載:ScottGu's Blog翻訳

  • このエントリーをはてなブックマークに追加

 本稿は、Scott Guthrie氏のブログを、氏の許可を得て、翻訳、転載したものです。米Microsoft社の副社長で、ASP.NETやSilverlightの開発チームを統率する氏のブログでは、次期製品を含む最新の技術をいち早く紹介しています。  原典:Introducing ASP.NET 5

  • このエントリーをはてなブックマークに追加

はじめに

 ASP.NET 1.0の最初のプレビューリリースはおよそ15年位前になります。それ以来、数百万もの開発者がこれを使用し、すばらしいWebアプリケーションを構築してきており、長年にわたって、非常に多くの機能を追加し進化させてきました。

 今回、ASP.NET 5という現在作業中であるASP.NETの新しいリリースについてご報告できうれしく思います。この新しいリリースは、ASP.NETに行った最大級の構造的更新になります。今回のリリースで、ASP.NETをよりスリムでよりモジュール化されたクロスプラットフォームでクラウドに最適化されたものにしています。ASP.NET 5は、現在プレビューリリースとして利用可能です。Visual Studio 2015の最新CTPをダウンロードして頂ければすぐにお使い頂けます。

 ASP.NET 5は、最新のWebアプリケーションを構築するためのオープンソースWebフレームワークで、Windows、Linux、Mac上で開発および実行できます。MVC 6フレームワークが含まれており、これは1つのWebプログラミングフレームワークにMVCとWeb APIの機能を組み合わせたものになります。ASP.NET 5はSignalR 3の基礎にもなっており、クラウド接続されたアプリケーションに対してリアルタイム機能を追加できます。ASP.NET 5は、.NET Coreランタイム上に構築されていますが、最大の互換性のためにすべての.NET Framework上でも実行できます。

 ASP.NET 5では、数多くの構造上の変更を行っており、それによりコアのWebフレームワークはよりスリムに(System.Web.dllが不要)、よりモジュール化されます(ほぼすべての機能がNuGetモジュールとして実装され、アプリは必要なものだけ持つように最適化できます)。ASP.NET 5には、以下の基礎的改善が行われています。

  • Windows、Mac、Linux上でクロスプラットフォームなASP.NETアプリをビルドおよび実行
  • 真のサイドバイサイドアプリをサポートする.NET Core上に構築
  • 最新Web開発を簡素化する新しいツール
  • Web UIとWeb APIに対するシングル配列Webスタック
  • クラウド対応環境ベースの構成
  • NuGetパッケージの作成および使用に対する統合サポート
  • 依存性注入に対するビルトインサポート
  • IIS上でのホスト機能または独自プロセスでの自己ホスト機能

 つまり最終的に、ASP.NETが非常に馴染みがあり、かつさらに最新のWeb開発のために調整されたものになります。

柔軟でクロスプラットフォームのランタイム

 ASP.NET 5は2つのランタイム環境で動作するため、アプリをホストする際により大きな柔軟性が得られます。2つのランタイムは、以下の通りです。

 .NET Core-より小さいフットプリントを持つ新しいモジュール式クロスプラットフォームのランタイムです。.NET Coreを対象にすると、以下のような新しい利点が利用できます。

 1)アプリに.NET Coreランタイムを展開することができます。つまり、ホストのオペレーティングシステム上にインストールされたランタイムのバージョンではなく、この展開バージョンのランタイムでアプリを実行できます。ランタイムのバージョンは、他のアプリのバージョンとサイドバイサイドで実行します。必要なら、他のアプリに影響を与えることなくランタイムを更新することもできますし、またシステム上の他のアプリが更新されてもそのまま同じバージョンで実行し続けることもできます。これにより、より簡単に、かつシステムで実行中の他のアプリによりインパクトを少なくアプリの展開やフレームワークの更新が行えます。

 2)アプリは、本当に必要な機能にのみ依存します。そのため、アプリに無関係な機能に対するランタイム更新を促すメッセージが表示されなくなります。アプリの機能におそらく無関係な更新プログラムのテストや展開に費やす時間が減少します。

 3)アプリは、クロスプラットフォームで実行できます。Windows、Linux、Mac OS Xシステム用.NET Coreのクロスプラットフォームバージョンを提供します。開発に使用するオペレーティングシステムや展開の対象にするオペレーティングシステムに関わらず.NETを使用できます。ランタイムのクロスプラットフォーム版はまだリリースされていませんが、現在GitHub上で作業中で、公式プレビューは間もなく公開する予定にしています。

 .NET Framework-.NET CoreのAPIは、現在完全な.NET Frameworkより制限があるため、.NET Coreを対象にする場合既存のアプリを変更する必要があります。アプリを更新したくない場合、代わりに完全な.NETフレームワーク(バージョン4.5.2以上)上でASP.NET 5アプリケーションを実行できます。これを実行すれば、完全な.NET Framework API一式にアクセスできます。既存のアプリケーションとライブラリは、このランタイム上で変更することなく動作します。

MVC 6-統一化されたプログラミングモデル

 MVC、Web API、Webページは相補的な機能を提供しており、ソリューション開発時によく一緒に使用されます。しかし、過去のASP.NETリリースでは、これらのプログラミングフレームワークが別々に実装されていたため、重複や矛盾が発生していました。MVC 6では、1つのプログラミングモデルにこれらのモデルをマージしています。これからは、プログラミングフレームワークの違いを調整することなく、Web UIとデータサービスを処理する1つのWebアプリケーションが作成できます。また、まずより堅牢なMVCアプリケーションにWebページで開発されたシンプルなサイトをシームレスに移行することも可能です。

 これで、同じコントローラからRazorビューとコンテントネゴシエーションされたデータを返すことができ、同じMVCフィルタパイプラインが使用できます。

 既存フレームワークの統一以外に、新しいタグヘルパー機能など、サーバー側のWeb開発が簡単になる新機能も追加しています。タグヘルパーにより、マークアップでタグの文法を拡張するだけで、ビューでHTMLヘルパーが使用できるようになります。

 つまり以下を書く代わりに、

@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<div class="form-group">
  @Html.LabelFor(m => m.UserName, new { @class = "col-md-2 control-label" })
  <div class="col-md-10">
    @Html.TextBoxFor(m => m.UserName, new { @class = "form-control" })
    @Html.ValidationMessageFor(m => m.UserName, "", new { @class = "text-danger" })
  </div>
</div>

 以下が書けます。

<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<div class="form-group">
  <label asp-for="UserName" class="col-md-2 control-label"></label>
  <div class="col-md-10">
    <input asp-for="UserName" class="form-control" />
    <span asp-validation-for="UserName" class="text-danger"></span>
  </div>
</div>

 タグヘルパーは、ビューがより自然で読みやすくなるように編集してくれます。HTMLエディタをフルに活用しつつ、追加されたマークアップでHTMLヘルパーの出力のカスタマイズを簡素化することもできます。

 MVC 6アプリの作成例については、これらのチュートリアルをご確認ください。

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
最新のWeb開発

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
Scott Guthrie氏 Blog翻訳連載記事一覧

もっと読む

この記事の著者

WINGSプロジェクト Chica(チカ)

WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS Twitter: @yyamada(公式)、@yyamada/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

Scott Guthrie(Scott Guthrie)

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/8537 2015/03/13 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング