Upload
miso-soup3
View
9.102
Download
3
Embed Size (px)
DESCRIPTION
Win8.1/VS 2013リリース記念勉強会
Citation preview
One ASP.NET,
OWIN & Katana2013/11/09
今日話すこと
Visual Studio 2013 における、
ASP.NET と Web Tools の更新を紹介します
Visual Studio 2013 における、
ASP.NET と Web Tools の更新……の内、
重要である One ASP.NET, OWIN & Katana について
紹介します
ではなく…
アジェンダ
ASP.NET 更新概要
One ASP.NET
概要
New Project
Scaffolding
OWIN & Katana
OWIN とは
Katana とは
ASP.NET の対応
まとめ
セッションの ゴール
ASP.NET の注目すべき新機能を知る
One ASP.NET
OWIN & Katana
急速な Web 開発の進化に対応する ASP.NET を知る
対象者
ASP.NET 開発者
ASP.NET 更新概要
コア
One ASP.NET - ★
ASP.NET Scaffolding
ASP.NET Identity
Katana - ★
Web Tools
Browser Link
Azure Web サイトのサポート
Web エディター
Web 発行機能
NuGet 2.7
各フレームワーク
MVC 5
Web API 2
SignalR 2.0
Razor 3
Entity Framework 6
Sites Services
WebForms
WebPages
SinglePageApps
MVCWebAPI
SignalR
ASP.NET
One ASP.NET
ASP.NET 基盤を元に、
各フレームワークを組み合わせて構築可能。
Sites Services
SinglePageApps
MVCWebAPI
SignalR
ASP.NET
One ASP.NET
“1つにまとまった“だけではない!
→OWIN & Katana の説明後にて。
Nancy ? ? ?
One ASP.NETNew Project
One ASP.NETNew Project
One ASP.NETNew Project
One ASP.NETNew Project
・VS 2012 用も用意
・認証方法の選択
・フレームワークに依存しない認証のライブラリ
・個人アカウント
・ASP.NET メンバーシップシステム
・Social Account(Google, Twitter, Facebook, …)
・組織アカウント、Windows 認証
・Active Directory, Office 365, オンプレミス
One ASP.NETスタートページ
テンプレートに合わせた次のステップへのガイド
One ASP.NETScaffolding
「MVC 5 依存関係」という選択肢も。
各フレームワークのコードが生成可能に。
One ASP.NETまとめ
・× フレームワークがみんな1つになった
○ ASP.NET を基盤にして、既存・他(Nancy 等)のフレームワークが使用できる。
→ 進化する Web 開発への対応
・前: ASP.NET = ASP.NET Web Forms
・今: ASP.NET = Web 開発総称
→ OWIN の対応により次のステップへ
Intermezzo★Bootstrap
・プロジェクトテンプレートに Bootstrap を採用
・レスポンシブデザイン
・テーマが選べます! CSS 入れ替えでお手軽に
BootSwatch http://bootswatch.com/
①テンプレートの選択「MVC」
②App_Start/BundleConfig.cs
③App_Start/Startup.Auth.cs
コメントアウト
④ http://bootswatch.com/
⑤F5 でデバッグ実行
お遊びおすすめプラン
Intermezzo★Bootstrap
アジェンダ
ASP.NET 更新概要
One ASP.NET
概要
New Project
Scaffolding
OWIN & Katana
OWIN とは
Katana とは
ASP.NET の対応
まとめ
OWIN & Katana
Katana で ASP.NET アプリ開発を支援
OWIN とは
Katana とは
これからの ASP.NET にどのように関わるか
今回だけでなく、今後も関わってくる
OWIN とは
http://owin.org/ OWIN プロジェクトサイト
Open Web Interface for .NET
サーバーとアプリケーション間のインターフェイス
仕様です
OWIN とは
・Microsoft ではなく コミュニティによるオープンソースプロジェクト
・node.js, Rack, WSGI にインスパイアされた
補足情報
OWIN とは
・サーバーとアプリケーションを切り離す
・新しいコンポーネントが、より簡単に開発され、より簡単に使用される
・アプリケーションの移植を容易にする
目的
OWIN とは仕様 ~抽象的~
2つの要素からなる
・IDictionary<string, object> “Environment Dictionary”
キーと値で、リクエスト・サーバー等の状態を表す
・Task
アプリケーションが担うタスク
非同期、連結可
using AppFunc = Func<IDictionary<string, object>, Task>;
OWIN とは仕様 ~全体のイメージ~
サーバー アプリケーション
IDictionary<str
ing, object>を設定
IDictionary<string,
object>を元に Task を作る
HTTP
Request
HTTP
Response
OWIN
↓
※イメージであり実際の処理の順番とは異なります。
OWIN とは仕様 ~具体的~
・プロジェクトサイト http://owin.org/
・仕様書 http://owin.org/spec/owin-1.0.0.html
・HTTP リクエスト等の値をどんなキーで、どんな値で格納するか、等が書いてある。
・たった1つのソース IAppBuilder インターフェイスhttps://github.com/owin/owin/blob/master/src/Owin/IAppBuilder.cs
→ NuGet [Owin]で配布。Owin.dll
↑↑ここまで OWIN ------------
OWIN まとめ
・サーバーとアプリケーションのインターフェイス
・コミュニティによるオープンソースプロジェクト
・IDictionary<string, object>, Task
----------ここから Katana ↓↓
・OWIN の実装
・Microsoft によるプロジェクト
アジェンダ
ASP.NET 更新概要
One ASP.NET
概要
New Project
Scaffolding
OWIN & Katana
OWIN とは
Katana とは
ASP.NET の対応
まとめ
Katana とは
・OWIN に対応するための、
コンポーネント・フレームワークのセットのこと
・Microsoft.Owin 名前空間にある
ライブラリが含まれている
Katana Project http://katanaproject.codeplex.com/
Katana とは
・Microsoft が提供
・オープンソース、NuGet による配布
補足情報
Katana とは
・今までの ASP.NET は、IIS(System.Web)に依存している。
→ IIS との切り離し
→ ASP.NET の Web 開発の進化への対応
・コンポーネントの再利用性
・認証、キャッシュ、ロギング等
・Azure 等のクラウドへの対応
目的
Katana とはどのように実装しているか
4 つの層に分けた
Host
Server
Middleware
Application
起動、読み込み
ネットワークソケット解放、
IDictionary<string, object>OWIN
Task を公開
開発者が書くコード
Katana とはどのように実装しているか
Host
Server
Middleware
Application
IIS/ASP.NET、Custom コンソールアプリ、OwinHost.exe …
IIS/ASP.NET(System.Web)、
Microsoft.Owin.Host.SystemWeb、
Microsoft.Owin.Host.HttpListener …
Nancy、Web API、SignalR、
Microsoft.Owin.Security.Google …
Your Code.
黒字:Katana に含まれるコンポーネント
Katana とは目標
Portable
コンポーネントは置換できる
Modular / Flexible
機能は小さく、コンパクト、取り外しを容易に
Lightweight / Performant / Scalable
高パフォーマンスなサーバーに、アプリケーションを壊すことなく置換できる
Katana とは
HostMiddleware /
ApplicationServer
OWIN
Katana とはまとめ
・Microsoft による OWIN 対応のためのコンポーネント・フレームワークのセット
・Host, Server, Middleware, Application の 4 つの層に分けられる
・各コンポーネントの入れ替えが容易
アジェンダ
ASP.NET 更新概要
One ASP.NET
概要
New Project
Scaffolding
OWIN & Katana
OWIN とは
Katana とは
ASP.NET の対応
まとめ
OWIN & KatanaASP.NET の対応
OWIN 非対応:ASP.NET Web Forms, MVC(現在)
IIS
System.
Web.dllWeb Forms,
MVC
OWIN で切り離せないっ
IIS 以外で Host できない
OWIN & KatanaASP.NET の対応
OWIN 対応:ASP.NET Web API, SignalR
Web API,
SignalR
OWIN
何でも
OK
OWIN & KatanaASP.NET の対応
が! ASP.NET MVC 5 のコードを見ると…
OWIN に関連するコードがある! なぜか?
Katana とはASP.NET の対応
認証
(Middleware)
たとえ、IIS でホストされていても、
認証等の Middleware を適用させるため
ASP.NET MVC
(Middleware)
IIS
System.
Web.dll
OWIN
Katana とはASP.NET の対応
認証
(Middleware)
IIS で Host しているのに、OWIN の Middleware が作用するかの仕組み
ASP.NET MVC
(Middleware)
IIS
System.
Web.dll
OWIN
Microsoft.Owin.Hos
t.SystemWeb.dll
(Katana)
Katana とはMiddleware
認証,
キャッシュ,
ロギング
ASP.NET MVC,
ASP.NET Web API,
SignalR
OWIN
Middleware
・全処理共通の Middleware と、個別フレームワークの Middleware がある
Katana とはStartup.cs
OWIN
Middleware/
Application
・OWIN の処理に Middleware を登録するための Katana による設定クラス
Startup.cs
(Katana)
Katana とはMiddleware
・Startup.cs にて、Use…() メソッドにより、Middleware を登録する
・いくつも連結可能・アプリケーションのコードを壊すことなく、改善、入れ替えができる。
・認証、キャッシュ、ロギングなど、Web フレームワーク共通の処理をコンポーネントとして登録できる
これからの ASP.NET では、Web アプリ共通の処理がOWIN の Middleware として、更新・改善されていく(だろう)
OWIN & Katanaまとめ
・OWIN : サーバーとアプリケーション間インターフェイス・Katana : OWIN の実装・ASP.NET Web API, SignalR → OWIN 対応・ASP.NET MVC, WebForms → OWIN 非対応
(System.Web に依存)
・OWIN 対応・非対応に限らず ASP.NET には、Startup.cs と、Middleware が適用される
・どちらにしても、進化する Web 開発に対応するには、OWIN & Katana、Middleware は今後も目が離せない。
OWIN & Katanaデモ
OWIN & Katana例①
単純なコード
(Middleware)
OwinHost.exe
(Katana)
Microsoft.OwinHost.
HttpListener.dll
(Katana)
OWIN
OWIN & Katana例②
単純なコード
(Middleware)
IIS
Microsoft.Owin.Host
.SystemWeb.dll
(Katana)
OWIN
OWIN & Katana例③
ASP.NET Web API
(Middleware)
OWINOwinHost.exe
(Katana)
Microsoft.OwinHost.
HttpListener.dll
(Katana)
今回のまとめ
One ASP.NET
WebForms
WebPages
SinglePageApps
MVCWebAPI
SignalR
ASP.NET
Any
限定されたフレームワークだけでは、Web の進化に対応できない
OWIN & Katana
OWIN & KatanaHostMiddleware /
ApplicationServer
OWIN
今回のまとめ
・One ASP.NET と OWIN & Katana は、進化する Web 開発に対応するためのASP.NET における重要なアップデート内容。
・次々と短くなっていくリリースの間隔…
・→柔軟に対応
・ASP.NET を上手く利用して 最適な Web 開発を。