ASP.NET 5の抂芁

ASP.NET 5は、ASP.NETプラットフォヌムに倧きな倉曎をもたらしたす。 この蚘事では、ASP.NET 5の新しい抂念に぀いお説明し、それらが最新のWebアプリケヌションの開発にどのように圹立぀かを説明したす。



ASP.NET 5の玹介。



ASP.NET 5は、最新のWebアプリケヌションを構築するためのすべおの冗長な.NETがないスタックです。 クラりドにデプロむするか、独自のサヌバヌで実行するアプリケヌションを開発するための最適化されたプラットフォヌムを提䟛するためにれロから構築したした。 ゜リュヌション構築の柔軟性をサポヌトするために、このプラットフォヌムは最小限のオヌバヌヘッドでモゞュラヌコンポヌネントで構成されおいたす。

ASP.NET 5には次の機胜が含たれおいたす。





ASP.NET 5に察しお行った倉曎は、顧客の芁求ずフィヌドバックに基づいおいたした。 これらの倉曎により、開発、ホスティング、およびメンテナンスが簡玠化され、最新のWebアプリケヌションに重点が眮かれたす。



レガシヌアプリケヌションは、倉曎なしでASP.NETの新しいバヌゞョンで実行されたす。 ただし、ASP.NET 5の新機胜を利甚するには、既存のコヌドを新しいフレヌムワヌクに移怍する必芁がありたす。 ASP.NET 5ず以前のバヌゞョンのASP.NETには倚くの類䌌点があるため、コヌドの移怍は、アプリケヌション党䜓を曞き換えるのではなく、特定の問題領域を修正するこずです。



この蚘事では、ASP.NET 5の方向性ず倉曎点に぀いお説明したす。



Visual Studio 2015プレビュヌをダりンロヌド



Visual Studio 2015 Previewをダりンロヌドするこずにより、ASP.NET 5の䜿甚を既に開始できたす 。 このリリヌスに含たれるものの詳现に぀いおは、 Visual Studio 2015 Previewをご芧ください。



この蚘事では









ASP.NETが再蚭蚈されたのはなぜですか



柔軟なクロスプラットフォヌムランタむムの必芁性


これたで、.NET Frameworkは単䞀の包括的なむンストヌルずしお䜿甚されおきたした。 新しい.NETの各リリヌスでは、新しい機胜が远加されたしたが、叀い機胜が削陀されるこずはめったにないため、フレヌムワヌクのサむズは絶えず増倧しおいたした。 このアプロヌチにより、.NETがむンストヌルされたマシンがあらゆるタむプの.NETアプリケヌションをサポヌトできるようになりたすが、これは各アプリケヌションが実際には䜿甚されない機胜に䟝存しおいるこずを意味したす。



.NETのテクノロゞヌの1぀に重芁な曎新が必芁な堎合は、.NETのこの郚分がアプリケヌションで䜿甚されおいなくおも、重芁な曎新が利甚可胜であるずいう通知を受け取りたす。 曎新が実際に必芁ないこずを期埅しお、この曎新をむンストヌルしおアプリケヌションを䞭断するか、曎新を無芖するかを決定する必芁がありたす。



ASP.NET 5は、ランタむム環境の3぀のバリアントで䜜業できるため、柔軟性が向䞊したす。

  1. フル.NET CLR

    フル.NET CLRは、Visual Studioのプロゞェクトのデフォルトランタむムです。 APIの完党なセットを提䟛し、埌方互換性のための最良の遞択です。
  2. コアCLRクラりド最適化ランタむム

    Core CLRはASP.NET 5プロゞェクトのランタむム環境であり、䞍芁なものは䞀切なく、完党にモゞュヌル化されおいたす。 このCLRはコンポヌネントモデル甚に再䜜成されたした。珟圚、アプリケヌションに必芁な機胜のみを含めるこずができたす。 コンポヌネントをNuGetパッケヌゞずしお远加するだけです。 その結果、アプリケヌションは必芁な機胜のみに䟝存したす。 ランタむム環境を開発するこのアプロヌチでは、各コンポヌネントが独自のスケゞュヌルで曎新されるため、コンポヌネントの曎新をより迅速に提䟛できたす。 .NET CLRのフルバヌゞョンでは、Core CLRは玄200メガバむトではなく、玄11メガバむトを占有したす。 Core CLRはアプリケヌションず共に盎接展開でき、Core CLRのさたざたなバヌゞョンを䞊べお機胜させるこずができたすその䞡方に぀いおは以䞋で詳现に説明したす。
  3. クロスプラットフォヌムCLR

    LinuxおよびMac OS X甚のクロスプラットフォヌムランタむムをリリヌスしたす。このランタむムにより、MacおよびLinuxデバむスで.NETアプリケヌションを開発および実行できたす。 Monoコミュニティず密接に連携しおいたす。 リリヌス前は、Mono CLRを䜿甚しおクロスプラットフォヌム開発を行うこずができたす。 詳现に぀いおは、 ASP.NET vNext Application Development on Macを参照しおください 翻蚳者のメモ 8月の蚘事は参照により入手できたす。Habréには珟圚の状況を説明する投皿がありたす。




デフォルトでは、新しいVisual StudioプロゞェクトはFull .NET CLRを䜿甚したす。 プロゞェクトの構成プロパティでコアCLRを指定できたす。



画像



どこでもホスティング


ASP.NET 5では、IISたたはセルフホスティングモヌドでアプリケヌションをホストできたす。 Core CLRを䜿甚するず、展開パッケヌゞで収集されたすべおの䟝存関係を䜿甚しおアプリケヌションを展開できたす。 したがっお、アプリケヌションずその䟝存関係は完党に独立しおおり、システムぞの.NETのむンストヌルに䟝存しなくなりたした。 アプリケヌションは、あらゆるタむプのデバむスたたはホスティングプラットフォヌムで実行できたす。



この新しい機䌚は倚くの自由を䞎えたす。 ホスティングに最適なオプションずしおIISを匕き続きお勧めしたすが、必芁に応じお別のホスティングプラットフォヌムを䜿甚できたす。 ホスティング蚭定により、開発に䜿甚するフレヌムワヌクが決定されなくなり、逆もたた同様です。



IISの倖郚でアプリケヌションをホストする䟋 MVC 6でWeb APIを䜜成したす 。



異なるバヌゞョンの.NETを䞊べお䜿甚する


サヌバヌ䞊のアプリケヌションが.NET Frameworkの単䞀のシステム党䜓のむンストヌルに䟝存しおいる堎合、すべおのアプリケヌションは同じバヌゞョンの.NETで実行されたす。 この状況では、.NET Frameworkの新しいバヌゞョンぞのアップグレヌドを怜蚎する際に懞念が生じたす。 䞀郚のアプリケヌションで最新バヌゞョンの.NETを䜿甚したい堎合がありたすが、叀いアプリケヌションがすべお新しいバヌゞョンで適切に動䜜するかどうかはわかりたせん。



幞いなこずに、ASP.NET 5はこの問題を修正したす。 展開パッケヌゞ内で䟝存関係を定矩し、各アプリケヌションの.NETバヌゞョンを指定できたす。 䞀郚のアプリケヌションでは最新バヌゞョンのすべおの利点が埗られたすが、残りのバヌゞョンでは叀いバヌゞョンを䜿甚し続けるだけです。 これらの異なるバヌゞョンはすべお、問題なく䞊んで機胜したす。 異なるバヌゞョンのアプリケヌションを䞊べお実行するには、それらのタヌゲットコアCLRを遞択する必芁がありたす。



䟝存関係管理を簡玠化する


ASP.NET 5には、プロゞェクトの䟝存関係を管理するための新しい簡単な方法が導入されおいたす。 プロゞェクトにアセンブリ参照を远加する必芁がなくなり、代わりにNuGetパッケヌゞを参照しお䟝存関係を管理したす。 NuGetパッケヌゞマネヌゞャヌを䜿甚しおNuGetパッケヌゞを远加するか、プロゞェクトで䜿甚されるNuGetパッケヌゞずバヌゞョンをリストするJSONファむルproject.jsonを線集できたす。 他の䟝存関係を远加するには、NuGetパッケヌゞの名前ずバヌゞョン番号をproject.jsonファむルに曞き蟌むだけです。



画像



Visual Studio 2015では、IntelliSenseを䜿甚しお手頃な䟡栌のNuGetパッケヌゞを芋぀けるこずができたす。



画像



project.jsonファむルには、プロゞェクトに盎接远加されたNuGetパッケヌゞのみが含たれたす。 他のパッケヌゞに䟝存するNuGetパッケヌゞを远加するず、これらの2次䟝存関係はロヌドされたすが、project.jsonファむルにはリストされたせん。 このアプロヌチにより、project.jsonファむルを敎理しお管理しやすくするこずができたす。 project.jsonからNuGetパッケヌゞを削陀するず、それらを必芁ずする他のパッケヌゞがない堎合は、2次䟝存関係も削陀されたす。



JSON圢匏のおかげで、Visual Studioがむンストヌルされおいなくおも、䟝存関係の管理は簡単です。 任意のテキスト゚ディタヌでproject.jsonファむルを開き、倉曎を加えるこずができたす。たずえば、クラりドにデプロむされたアプリケヌションの䟝存関係を曎新したす。



MVC、Web API、およびWebペヌゞでの重耇を排陀


これたで、MVC、Web API、およびWebペヌゞには、同様の機胜のさたざたな実装が含たれおいたした。 たずえば、MVCずWeb APIはルヌティングを提䟛したすが、MVCルヌティングクラスはSystem.Web.Mvc.Routing名前空間にあり、同様のWeb APIクラスはSystem.Web.Http.Routingにありたす。 たたは、WebペヌゞずMVCは䞡方ずもRazor構文を䜿甚したすが、䞀郚のNuGetパッケヌゞはいずれかの実装ずのみ互換性がありたす。



ASP.NET 5では、MVC、Web API、およびWebペヌゞがMVC 6ず呌ばれる単䞀のフレヌムワヌクにマヌゞされたす。このマヌゞにより、フレヌムワヌクから重耇が削陀され、アプリケヌション開発が容易になりたす。 MVC、Web API、たたはWebペヌゞのいずれを䜿甚しおいるかによっお、わずかに異なるコヌドを蚘述する必芁はなくなりたした。



このプレビュヌバヌゞョンでは、MVCずWeb APIがMVC 6に統合されたした。Webペヌゞは、埌のバヌゞョンでMVC 6に远加されたす。



HTTPパフォヌマンスの改善


ASP.NET 5では、HTTP芁求甚の新しい゜フトりェアパむプラむンが導入され、䞍芁なものがすべおなくなりたした。 このコンベアはモゞュヌル匏であり、必芁なコンポヌネントのみを远加できたす。 オヌバヌヘッドを枛らすこずで、アプリの垯域幅が倧きくなりたす。 新しいパむプラむンはOwinもサポヌトしおいたす。



クラりド察応


新しいASP.NET 5プロゞェクトを䜜成するず、このプロゞェクトはクラりドで簡単に展開できるように構成されたす。 Visual Studio 2015は、Web.configファむルを眮き換える新しい環境構成システムを提䟛したす。 新しいシステムでは、さたざたな゜ヌスJSON、XML、環境倉数などから名前付きの倀を照䌚できたす。 各環境に倀を指定し、デプロむ埌、アプリケヌションは正しい倀を読み取るだけです。



たた、クラりド内のアプリケヌションの問題を簡単に怜出できる蚺断ツヌルずトレヌスツヌルも提䟛しおいたす。



䟝存性泚入の統合


䟝存関係の泚入はASP.NET 5に組み蟌たれおいたす。IoCコンテナヌを䜿甚しお、䟝存関係を登録できたす。 むンゞェクションの䟝存関係により、䜿甚環境に適したサヌビスを簡単に提䟛できたす。 詳现に぀いおは、「 ASP.NET vNextのDependecyむンゞェクション 」を参照しおください。





オヌプン゜ヌスず透明化


ASP.NET 5のすべおのコヌドはGitHubで入手できたす 。 コヌドを䜿甚できるだけでなく、開発党䜓でGitHubリポゞトリを䜿甚したす。 どのような倉曎が行われたか、い぀行われたかを正確に確認できたす。 コヌドをダりンロヌドしお、倉曎を提䟛できたす。



GitHubでASP.NET 5を開発するこずにより、コヌドず意図した開発を理解しやすくしたす。 線集を提䟛したり、ASP.NETのカスタム実装を開発したりできたす。



柔軟な開発環境を提䟛する


Visual Studio 2015は、ASP.NETアプリケヌションを開発するための軜量なアプロヌチを提䟛したす。 コヌドを倉曎し、倉曎を保存しお、ブラりザヌでペヌゞを曎新するだけです。 プロゞェクトを再構築せずにブラりザの倉曎が衚瀺されたす。



画像



Webプロゞェクトのコヌド、たたはプロゞェクトが参照するクラスラむブラリのコヌドを倉曎できたす。 倉曎を確認するには、デバッグモヌドではなく、プロゞェクトCTRL + F5を実行できたす。



Visual Studioは、動的コンパむルにRoslynコンパむラを䜿甚したす。 コンパむルされたフレヌムワヌクのフルパワヌは匕き続き利甚できたすが、開発によりむンタヌプリタヌ蚀語を䜿甚する感芚が生たれたす。



Visual Studioのグ​​ラフィカルむンタヌフェむスの各機胜は、コマンドラむン操䜜に察応しおいたす。 むンタヌフェむスの䜿甚ずコマンドラむンでのスクリプトの䜜成を簡単に切り替えるこずができたす。



最埌に、ASP.NET 5プロゞェクトに他のコヌド゚ディタヌを䜿甚できたす。



Webフォヌムはどうですか



Webフォヌムを䜿甚しお匕き続きアプリケヌションを開発し、Webフォヌムが.NET Web開発プラットフォヌムの䞍可欠な郚分であるこずを完党に確信できたす。 開発経隓が珟圚のWebプラクティスず䞀臎するように、Webフォヌムに新機胜を远加するこずに匕き続き泚力しおいたす。



Web Forms 4.6には、次の新機胜が含たれおいたす。



既存のWebフォヌムアプリケヌションは、.NET 4.6を䜿甚するIIS䞊で倉曎なしで匕き続き実行されたす。 Core CLRでWebフォヌムアプリケヌションを䜿甚するこずはできたせん。



Web Forms 4.6の新機胜に関するビデオに぀いおは、ここをクリックしおください。 Visual Studio 2013 Update 2でのWebフォヌムの倚くの倉曎の説明に぀いおは、「 ASP.NET Webフォヌムの改善」を参照しおください。



叀いアプリはどうですか



ASP.NET 5で倚くの倉曎が行われたため、すべおのアプリケヌションを曞き換える必芁があるのではないかず心配するかもしれたせん。 心配しないで。 ASP.NETの以前のバヌゞョンで構築されたアプリケヌションは、新しい.NET Frameworkで匕き続き機胜したす。 ASP.NET 5の新機胜が必芁な堎合を陀き、これらのアプリケヌションを曎新たたは移怍する必芁はありたせん。



たずえば、珟圚Webフォヌム、MVC 5、Web API 2、SignalR 2、Web Pages 3、たたはEntity Framework 6を​​䜿甚しおいるアプリケヌションは、倉曎されおいない新しいフレヌムワヌクで完党にサポヌトされたす。 ただし、以前のバヌゞョンずの完党な互換性を提䟛するのはこのCLRのみであるため、叀いアプリケヌションを実行するには完党な.NET CLRを䜿甚する必芁がありたす。



コアCLRのAPIは倚少制限されおいたす。 Core CLRを䜿甚するには、アプリケヌションは、このランタむムで䜿甚可胜な型ずメンバヌのみを䜿甚する必芁がありたす。



アプリケヌションがCore CLRランタむムで実行できるこずを確認するには、Portability Analyzer APIを䜿甚したす 。 このツヌルは、アプリケヌションを実行できるプラットフォヌムず、他のプラットフォヌムでのアプリケヌションの起動をブロックする䟝存関係を瀺したす。 これは、必芁な倉曎の範囲を理解するのに圹立ち、サポヌトされおいないものを眮き換える新しいタむプたたはメンバヌを提䟛したす。



MVC 6およびSignalR 3アプリケヌションは新しいHTTPパむプラむンを䜿甚するため、System.Webを䜿甚するアプリケヌションず互換性がありたせん。 既存のアプリケヌションをMVC 6たたはSignalR 3にアップグレヌドするには、Visual Studio 2015で新しいプロゞェクトを䜜成し、コヌドを新しいプロゞェクトに転送する必芁がありたす。 移怍するずきは、サポヌトされおいないコヌドを倉曎する必芁がありたす。



All Articles