猫でもわかる asp.net 5 入門
TRANSCRIPT
![Page 1: 猫でもわかる ASP.NET 5 入門](https://reader034.vdocuments.net/reader034/viewer/2022050706/55b4f897bb61eb6c5b8b470b/html5/thumbnails/1.jpg)
猫でもわかる ASP.NET 5 入門
しばやん (@shibayan)
![Page 2: 猫でもわかる ASP.NET 5 入門](https://reader034.vdocuments.net/reader034/viewer/2022050706/55b4f897bb61eb6c5b8b470b/html5/thumbnails/2.jpg)
自己紹介
• しばやん
• @shibayan
• Microsoft MVP for ASP.NET/IIS
• http://blog.shibayan.jp/
![Page 3: 猫でもわかる ASP.NET 5 入門](https://reader034.vdocuments.net/reader034/viewer/2022050706/55b4f897bb61eb6c5b8b470b/html5/thumbnails/3.jpg)
はじめに
• 40 分聞くだけで、ASP.NET 5 について知ったかぶれるはずです
• まだ 1.0.0-beta6 なので、変わる可能性があります
![Page 4: 猫でもわかる ASP.NET 5 入門](https://reader034.vdocuments.net/reader034/viewer/2022050706/55b4f897bb61eb6c5b8b470b/html5/thumbnails/4.jpg)
アジェンダ
• 実行環境の進化– DNX / CoreCLR
• フレームワークの進化– MVC 6 / Entity Framework 7
• 開発環境の進化– VS2015 / Visual Studio Code
![Page 5: 猫でもわかる ASP.NET 5 入門](https://reader034.vdocuments.net/reader034/viewer/2022050706/55b4f897bb61eb6c5b8b470b/html5/thumbnails/5.jpg)
アジェンダ
• 実行環境の進化– DNX / CoreCLR
• フレームワークの進化– MVC 6 / Entity Framework 7
• 開発環境の進化– VS2015 / Visual Studio Code
![Page 6: 猫でもわかる ASP.NET 5 入門](https://reader034.vdocuments.net/reader034/viewer/2022050706/55b4f897bb61eb6c5b8b470b/html5/thumbnails/6.jpg)
DNX
![Page 7: 猫でもわかる ASP.NET 5 入門](https://reader034.vdocuments.net/reader034/viewer/2022050706/55b4f897bb61eb6c5b8b470b/html5/thumbnails/7.jpg)
ざっくり説明
• クロスプラットフォームに対応した .NET アプリケーション実行環境
–依存関係の解決 / コンパイラ (Roslyn) / パッケージマネージャ (NuGet) など一式
• ASP.NET 5 に限定しない実行環境
![Page 8: 猫でもわかる ASP.NET 5 入門](https://reader034.vdocuments.net/reader034/viewer/2022050706/55b4f897bb61eb6c5b8b470b/html5/thumbnails/8.jpg)
3 つのコマンド
• dnvm コマンド– DNX のインストールと管理を行う
• dnu コマンド– 開発中に便利な機能が実装されている
• dnx コマンド– 実際にアプリケーションを実行する
![Page 9: 猫でもわかる ASP.NET 5 入門](https://reader034.vdocuments.net/reader034/viewer/2022050706/55b4f897bb61eb6c5b8b470b/html5/thumbnails/9.jpg)
dnvm コマンド
• dnvm upgrade
–最新の Stable 版をインストールする
• dnvm upgrade –u
–最新の Unstable 版をインストールする
–これだけ覚えておけば何とかなる
![Page 10: 猫でもわかる ASP.NET 5 入門](https://reader034.vdocuments.net/reader034/viewer/2022050706/55b4f897bb61eb6c5b8b470b/html5/thumbnails/10.jpg)
dnu コマンド
• dnu restore
• 必要なパッケージを NuGet から入れる
–これだけ覚えておけば何とかなる
![Page 11: 猫でもわかる ASP.NET 5 入門](https://reader034.vdocuments.net/reader034/viewer/2022050706/55b4f897bb61eb6c5b8b470b/html5/thumbnails/11.jpg)
dnx コマンド
• dnx . (run / web / kestrel)
• アプリケーションを実行してくれる
–これだけ覚えておけば何とかなる
![Page 12: 猫でもわかる ASP.NET 5 入門](https://reader034.vdocuments.net/reader034/viewer/2022050706/55b4f897bb61eb6c5b8b470b/html5/thumbnails/12.jpg)
デモ
• コンソールアプリを DNX 使って動かす
• dnu restore -> dnx . run だけ使う
![Page 13: 猫でもわかる ASP.NET 5 入門](https://reader034.vdocuments.net/reader034/viewer/2022050706/55b4f897bb61eb6c5b8b470b/html5/thumbnails/13.jpg)
CORECLR
![Page 14: 猫でもわかる ASP.NET 5 入門](https://reader034.vdocuments.net/reader034/viewer/2022050706/55b4f897bb61eb6c5b8b470b/html5/thumbnails/14.jpg)
ざっくり説明
• .NET Framework の実行部分 (CLR) をクロスプラットフォームに対応させたもの
• 今は x64 のみ
– x86 / ARM / ARM64 にも対応予定
![Page 15: 猫でもわかる ASP.NET 5 入門](https://reader034.vdocuments.net/reader034/viewer/2022050706/55b4f897bb61eb6c5b8b470b/html5/thumbnails/15.jpg)
CoreCLR 単体でも使える
• ソースを自分でビルドすると、corerun コマンドで exe を実行できる
• Clang 3.5 以上が必要、時間もかかる
–何よりも依存関係の解決が大変
![Page 16: 猫でもわかる ASP.NET 5 入門](https://reader034.vdocuments.net/reader034/viewer/2022050706/55b4f897bb61eb6c5b8b470b/html5/thumbnails/16.jpg)
DNX で試す場合
• dnvm upgrade -u -r coreclr
• CoreCLR 版 DNX をインストール
–まだちょっと不安定
![Page 17: 猫でもわかる ASP.NET 5 入門](https://reader034.vdocuments.net/reader034/viewer/2022050706/55b4f897bb61eb6c5b8b470b/html5/thumbnails/17.jpg)
デモ
• corerun コマンドを使ってみる
• コンソールアプリを CoreCLR 版 DNX を使って動かす
![Page 18: 猫でもわかる ASP.NET 5 入門](https://reader034.vdocuments.net/reader034/viewer/2022050706/55b4f897bb61eb6c5b8b470b/html5/thumbnails/18.jpg)
アジェンダ
• 実行環境の進化– DNX / CoreCLR
• フレームワークの進化– MVC 6 / Entity Framework 7
• 開発環境の進化– VS2015 / Visual Studio Code
![Page 19: 猫でもわかる ASP.NET 5 入門](https://reader034.vdocuments.net/reader034/viewer/2022050706/55b4f897bb61eb6c5b8b470b/html5/thumbnails/19.jpg)
ASP.NET 5
![Page 20: 猫でもわかる ASP.NET 5 入門](https://reader034.vdocuments.net/reader034/viewer/2022050706/55b4f897bb61eb6c5b8b470b/html5/thumbnails/20.jpg)
ざっくり説明
• DNX で動かすために新開発されたASP.NET の新バージョン
• IIS へ依存しないフレームワークに
– OWIN 的な実装に(察して)
![Page 21: 猫でもわかる ASP.NET 5 入門](https://reader034.vdocuments.net/reader034/viewer/2022050706/55b4f897bb61eb6c5b8b470b/html5/thumbnails/21.jpg)
Web サーバーについて
• DNX / ASP.NET 5 単体では Web サーバーの機能がない
• Ruby のようにプラガブルに
– IIS / HttpListener / Kestrel (libuv)
![Page 23: 猫でもわかる ASP.NET 5 入門](https://reader034.vdocuments.net/reader034/viewer/2022050706/55b4f897bb61eb6c5b8b470b/html5/thumbnails/23.jpg)
ASP.NET MVC 6
![Page 24: 猫でもわかる ASP.NET 5 入門](https://reader034.vdocuments.net/reader034/viewer/2022050706/55b4f897bb61eb6c5b8b470b/html5/thumbnails/24.jpg)
ざっくり説明
• DNX 上で動作する ASP.NET MVC
– MVC 5 との互換性はソースレベルで多少
• 新機能がたくさん
– Unified Framework / Async / DI
– Tag Helper / View Components
![Page 25: 猫でもわかる ASP.NET 5 入門](https://reader034.vdocuments.net/reader034/viewer/2022050706/55b4f897bb61eb6c5b8b470b/html5/thumbnails/25.jpg)
Unified Framework
• ASP.NET 4.6 までは
– MVC 5 / Web Pages 3 / Web API 2
• ASP.NET 5 からは
– MVC 6 (Web Pages / Web API)
![Page 26: 猫でもわかる ASP.NET 5 入門](https://reader034.vdocuments.net/reader034/viewer/2022050706/55b4f897bb61eb6c5b8b470b/html5/thumbnails/26.jpg)
Async
• HTTP パイプラインから Razor の HTML 生成まで、全てが非同期
• C# 5.0 の async / await は必須機能
![Page 27: 猫でもわかる ASP.NET 5 入門](https://reader034.vdocuments.net/reader034/viewer/2022050706/55b4f897bb61eb6c5b8b470b/html5/thumbnails/27.jpg)
Dependency Injection
• 機能を全て Service として扱う
– Startup.cs の中で DI の設定を行ってる
• 既存機能の一部だけ差し替えとか出来る
![Page 28: 猫でもわかる ASP.NET 5 入門](https://reader034.vdocuments.net/reader034/viewer/2022050706/55b4f897bb61eb6c5b8b470b/html5/thumbnails/28.jpg)
Tag Helpers
• MVC 5 までは Html Helper
• MVC 6 からは Tag Helpers
@Html.ActionLink(“リンクテキスト”, “Index”, “Home”)
<a asp-controller=“Home” asp-action=“Index”>リンクテキスト</a>
![Page 29: 猫でもわかる ASP.NET 5 入門](https://reader034.vdocuments.net/reader034/viewer/2022050706/55b4f897bb61eb6c5b8b470b/html5/thumbnails/29.jpg)
View Components
• Html.RenderAction に近いもの
–考え方的には Web Forms のカスタムコントロールにも近い
• まだ仕様が微妙に fix してない
![Page 30: 猫でもわかる ASP.NET 5 入門](https://reader034.vdocuments.net/reader034/viewer/2022050706/55b4f897bb61eb6c5b8b470b/html5/thumbnails/30.jpg)
おまけ:Razor 大進化
• 新キーワード追加
– @await / @inject
• CodeDOM に依存しないコード生成
–生成したコードは Roslyn でコンパイル
![Page 31: 猫でもわかる ASP.NET 5 入門](https://reader034.vdocuments.net/reader034/viewer/2022050706/55b4f897bb61eb6c5b8b470b/html5/thumbnails/31.jpg)
ENTITY FRAMEWORK 7
![Page 32: 猫でもわかる ASP.NET 5 入門](https://reader034.vdocuments.net/reader034/viewer/2022050706/55b4f897bb61eb6c5b8b470b/html5/thumbnails/32.jpg)
ざっくり説明
• これまでの Entity Framework が DNX で動かなくなるので頑張って開発中
• 生成される SQL の質がかなり向上
![Page 33: 猫でもわかる ASP.NET 5 入門](https://reader034.vdocuments.net/reader034/viewer/2022050706/55b4f897bb61eb6c5b8b470b/html5/thumbnails/33.jpg)
対応する DB
• 今のところ SQL Server と SQLite
–開発用には In-Memory もある
• 将来的には Azure Table と Redis
– v1 の時点では諦めたらしい
![Page 34: 猫でもわかる ASP.NET 5 入門](https://reader034.vdocuments.net/reader034/viewer/2022050706/55b4f897bb61eb6c5b8b470b/html5/thumbnails/34.jpg)
アジェンダ
• 実行環境の進化– DNX / CoreCLR
• フレームワークの進化– MVC 6 / Entity Framework 7
• 開発環境の進化– VS2015 / Visual Studio Code
![Page 35: 猫でもわかる ASP.NET 5 入門](https://reader034.vdocuments.net/reader034/viewer/2022050706/55b4f897bb61eb6c5b8b470b/html5/thumbnails/35.jpg)
VISUAL STUDIO 2015
![Page 36: 猫でもわかる ASP.NET 5 入門](https://reader034.vdocuments.net/reader034/viewer/2022050706/55b4f897bb61eb6c5b8b470b/html5/thumbnails/36.jpg)
当然ながら対応
• 特に紹介することもないかなと思う
• 終わり
![Page 37: 猫でもわかる ASP.NET 5 入門](https://reader034.vdocuments.net/reader034/viewer/2022050706/55b4f897bb61eb6c5b8b470b/html5/thumbnails/37.jpg)
VISUAL STUDIO CODE
![Page 38: 猫でもわかる ASP.NET 5 入門](https://reader034.vdocuments.net/reader034/viewer/2022050706/55b4f897bb61eb6c5b8b470b/html5/thumbnails/38.jpg)
事実上の標準
• クロスプラットフォーム対応なので、OS X でも ASP.NET 5 が使える!
• 使うかどうかは別にして
![Page 39: 猫でもわかる ASP.NET 5 入門](https://reader034.vdocuments.net/reader034/viewer/2022050706/55b4f897bb61eb6c5b8b470b/html5/thumbnails/39.jpg)
テンプレート問題
• プロジェクトテンプレートなんて機能はVSC にはない
• そうだ、Yeoman を使おう
![Page 40: 猫でもわかる ASP.NET 5 入門](https://reader034.vdocuments.net/reader034/viewer/2022050706/55b4f897bb61eb6c5b8b470b/html5/thumbnails/40.jpg)
Yeoman を使う
• npm install -g yo generator-aspnet bower grunt-cli
• yo aspnet– テンプレートをスキャフォールディングで生成
• yo aspnet:MvcController とかも
![Page 41: 猫でもわかる ASP.NET 5 入門](https://reader034.vdocuments.net/reader034/viewer/2022050706/55b4f897bb61eb6c5b8b470b/html5/thumbnails/41.jpg)
デモ
• Yeoman を使ってプロジェクト作成
• Visual Studio Code で編集
• Kestrel を使って実行
![Page 42: 猫でもわかる ASP.NET 5 入門](https://reader034.vdocuments.net/reader034/viewer/2022050706/55b4f897bb61eb6c5b8b470b/html5/thumbnails/42.jpg)
終わり
• 時間内に終わるとは思っていませんでした