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