ROOM A
Time Room ID Title 9:30 10:30 A DEV-002 Visual Studio Online 概要 ~ 開発基盤のクラウド化 ~ 今ココ 13:15 13:40 G DEV-005S.NET Core 5 on Linux and Mac OS X 5/27 Day 2 14:35 15:35 C DEV-023 15:55 16:55 A DEV-006 17:15 18:15 A DEV-007 18:35 19:35 A DEV-008 新しいクロスプラットフォーム開発 Visual Studio Code ASP.NET Web 開発 ~ ランタイム編 ~ ASP.NET Web 開発 ~ フレームワーク編 ~ 進化は止まらない! ADO.NET Entity Framework の今
セッションのゴール Session Takeaways.NET Core 5 & ASP.NET 5 の実行環境の基礎知識を得る DNX 環境を構築して ASP.NET 5 アプリを実行できるようになる
マイクロソフト開発ツールのビジョン すべてのアプリ すべての開発者
.NET の新しい方向性 ASP.NET 5.NET Core.NET Innovation Open Source Cross-Platform
.NET 2015.NET Framework 4.6.NET Core 5 Fully-featured and integrated.net libraries and runtime for Windows Modular and optimized.net libraries and runtimes Runtime RyuJIT, SIMD Compilers.NET Compiler Platform ( Roslyn ) C#/F#/VB Languages Libraries.NET Core 5 Libraries.NET Framework 4.6 Libraries
.NET オープンソース オープンソース クロスプラットフォーム対応.NET Framework 4.6.NET Core 5 Runtime RyuJIT, SIMD Compilers.NET Compiler Platform ( Roslyn ) Languages Libraries.NET Core 5 Libraries.NET Framework 4.6 Libraries GitHub と Mono Project https://github.com/aspnet https://github.com/microsoft/dotnet
.NET OSS コミュニティの成長 dotnetfoundation.org dotnet.github.io @dotnetfdn http://dotnet.github.io/
.NET Core 5 & ASP.NET 5 FCL (Framework Class Library) for MVC, Web API and SignalR BCL (Base Class Library) CoreFX (.NET Core Libraries) Mono 様々なシナリオに適した完全な.NET Framework とライブラリ サーバー & クラウド環境に最適化された軽量ランタイム (.NET Framework サブセット )
DNX (.NET Execution Environment) 概要 DNX (.NET Execution Environment).NET アプリケーションをビルド & 実行するための SDK とランタイム Windows, Mac OS X, Linux に対応 dnx.exe ランタイムエントリポイント dnx.exe <project.json のパス > < 実行コマンド > 例 : dnx. run, dnx. web, dnx. kestrel, dnu コマンド (.NET Development Utility) DNX プロジェクトのビルド パッケージングと発行 パッケージの依存関係の解決 dnvm コマンド (.NET Version Manager) DNX バージョン管理 : install, upgrade, list, use, alias DNX DNX DNX dnx.exe dnu.cmd dnvm.cmd
DNX セットアップ : Windows 編
DNX セットアップ : Mac OS X 編 1. http://brew.sh/ 2.
DNX セットアップ : Linux 編 1. 2.
DNX / ASP.NET 5 アプリケーションの実行 #1 1. 2.
DNX / ASP.NET 5 アプリケーションの実行 #2 1. 2.
DNX プロジェクトと設定 DNX プロジェクト project.json ファイルがあるフォルダーがプロジェクトルート フォルダー名がプロジェクト名となる project.json ランタイムバージョンやライブラリの依存関係などの記述 dnx コマンドを通して実行するコマンド定義の記述 { } Visual Studio の設定等開発ツール関連の情報は "dependencies": { 含まない "Microsoft.AspNet.Mvc": "1.0.0-beta4" } "commands": { "kestrel": "Microsoft.AspNet.Hosting --server Kestrel..." }
Project.json webroot プロパティ webroot プロパティによる Web Server Root の指定 Web サーバー上のパブリックフォルダーのルート 静的ファイル (HTML, CSS, JavaScript, 画像等 ) の公開ファイルの格納先 コードファイル (C#, cshtml, ts, less, sass 等 ) と明確に分離 project.json で変更可能 { } "webroot": "wwwroot", "version": "1.0.0-*",...
ASP.NET 5 : ホストサーバー Microsoft.AspNet.Loader.IIS (Helios) IIS ホスト System.Web には非依存 (Helios ベース ) 他の IIS モジュールとともに統合される Microsoft.AspNet.Server.WebListener (WebListener) Microsoft.AspNet.Hosting でロードされる (IIS には非依存 ) Http.sys カーネールドライバー上で直接実行 Microsoft.AspNet.Server.Kestrel (Kestrel) Microsoft.AspNet.Hosting でロードされる (IIS には非依存 ) libuv ( 非同期 IO ライブラリ ) ベースのクロスプラットフォームサーバー
.NET Core 5 & ASP.NET 5 と DNX [project.json] [project.json] "dependencies": {... }, "dependencies": {... }, FCL (Framework Class Library) for MVC, Web API and SignalR "frameworks": { "dnx451": {... } } "frameworks": { "dnxcore50": {... } } [Source Code] BCL (Base Class Library) #if DNX451 #endif [Source Code] CoreFX (.NET Core Libraries) #if DNXCORE50 #endif DNX (dnx.exe, dnu.cmd) Mono 様々なシナリオに適した完全な.NET Framework とライブラリ dnvm.cmd サーバー & クラウド環境に最適化された軽量ランタイム (.NET Framework サブセット )
ASP.NET 5 ドキュメント http://docs.asp.net/ https://github.com/aspnet/home/wiki
Web 開発クライアントツール Yeoman (http://yeoman.io/) クロスプラットフォームツール群 Windows, Mac OS, Linux 下記のツールで構成 yo : スキャフォールディングツール Bower, npm : パッケージマネージャー Grunt, Gulp : タスクランナー / ビルドツール yo generator for ASP.NET 5 ASP.NET 5 プロジェクト生成ツール
最初にインストールしておきたい OSS ツール Git : https://git-scm.com/ Node.js : https://nodejs.org/ Gulp Yo Grunt ASP.NET 5 generator Bower TypeScript
クロスプラットフォーム.NET 開発 OmniSharp ( http://www.omnisharp.net/ ) オープンソース プロジェクト 様々なエディター環境での.NET 開発を実現するためのプロジェクト Sublime Text 3, Emacs, Atom, Vim, Brackets, Visual Studio Code Intellisense, ビルド & 実行コマンドなどの機能を提供
Visual Studio Code http://code.visualstudio.com/ Code optimized editor Intellisense, debugging, GIT Windows + Mac + Linux
.NET Core 5 開発環境 (Windows/Linux/OS X) Visual Studio 2015 Visual Studio Code Sublime Text, Atom, Emacs, Vim, etc... Visual Studio Code Sublime Text, Atom, Emacs, Vim, etc Visual Studio Code Atom, Vim, Emacs, etc
Docker とは? VM App A Bins/ Libs Guest OS App A Bins/ Libs Gues t OS Guest OS Hypervisor (Type 2) Host OS Server App B Bins/ Libs Gues t OS Guest OS コンテナー型のアプリ仮想化技術 コンテナ間は分離 OS カーネルや各種ライブラリ等は共有 高速かつオーバーヘッドの少ないデプロイ 再起動 移行 オープンソース Container App A App A Bins/Libs App B App B Bins/Libs Host OS Server App B App B
Docker Hub Docker イメージを共有するためのリポジトリ (Docker レジストリの一つ ) 2014 年 7 月設立 : https://hub.docker.com/ Docker アプリケーションリポジトリを提供 ( 公式 パブリック プライベート ) ワークフローの管理 (Automated Builds, Webhooks) ベンダーから提供されるソフトウェアの供給チャネル https://registry.hub.docker.com/u/microsoft/aspnet/
Linux / OS X 環境における.NET Core 5 のメリット
Download now!.net Core RC for Windows.NET Core preview for Linux.NET Core preview for Mac OS X
つづく DEV-007 ASP.NET Web 開発 ~ フレームワーク編 ~
アンケートにご協力ください アンケートに上記の Session ID のブレイクアウトセッションにチェックを入れて下さい アンケートはお帰りの際に 受付でご提出ください マイクロソフトスペシャルグッズと引換えさせていただきます