53
One ASP.NET, OWIN & Katana 2013/11/09

One ASP.NET, OWIN & Katana

Embed Size (px)

DESCRIPTION

Win8.1/VS 2013リリース記念勉強会

Citation preview

Page 1: One ASP.NET, OWIN & Katana

One ASP.NET,

OWIN & Katana2013/11/09

Page 2: One ASP.NET, OWIN & Katana

今日話すこと

Visual Studio 2013 における、

ASP.NET と Web Tools の更新を紹介します

Visual Studio 2013 における、

ASP.NET と Web Tools の更新……の内、

重要である One ASP.NET, OWIN & Katana について

紹介します

ではなく…

Page 3: One ASP.NET, OWIN & Katana

アジェンダ

ASP.NET 更新概要

One ASP.NET

概要

New Project

Scaffolding

OWIN & Katana

OWIN とは

Katana とは

ASP.NET の対応

まとめ

Page 4: One ASP.NET, OWIN & Katana

セッションの ゴール

ASP.NET の注目すべき新機能を知る

One ASP.NET

OWIN & Katana

急速な Web 開発の進化に対応する ASP.NET を知る

Page 5: One ASP.NET, OWIN & Katana

対象者

ASP.NET 開発者

Page 6: One ASP.NET, OWIN & Katana

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

Page 7: One ASP.NET, OWIN & Katana

Sites Services

WebForms

WebPages

SinglePageApps

MVCWebAPI

SignalR

ASP.NET

One ASP.NET

ASP.NET 基盤を元に、

各フレームワークを組み合わせて構築可能。

Page 8: One ASP.NET, OWIN & Katana

Sites Services

SinglePageApps

MVCWebAPI

SignalR

ASP.NET

One ASP.NET

“1つにまとまった“だけではない!

→OWIN & Katana の説明後にて。

Nancy ? ? ?

Page 9: One ASP.NET, OWIN & Katana

One ASP.NETNew Project

Page 10: One ASP.NET, OWIN & Katana

One ASP.NETNew Project

Page 11: One ASP.NET, OWIN & Katana

One ASP.NETNew Project

Page 12: One ASP.NET, OWIN & Katana

One ASP.NETNew Project

・VS 2012 用も用意

・認証方法の選択

・フレームワークに依存しない認証のライブラリ

・個人アカウント

・ASP.NET メンバーシップシステム

・Social Account(Google, Twitter, Facebook, …)

・組織アカウント、Windows 認証

・Active Directory, Office 365, オンプレミス

Page 13: One ASP.NET, OWIN & Katana

One ASP.NETスタートページ

テンプレートに合わせた次のステップへのガイド

Page 14: One ASP.NET, OWIN & Katana

One ASP.NETScaffolding

「MVC 5 依存関係」という選択肢も。

各フレームワークのコードが生成可能に。

Page 15: One ASP.NET, OWIN & Katana

One ASP.NETまとめ

・× フレームワークがみんな1つになった

○ ASP.NET を基盤にして、既存・他(Nancy 等)のフレームワークが使用できる。

→ 進化する Web 開発への対応

・前: ASP.NET = ASP.NET Web Forms

・今: ASP.NET = Web 開発総称

→ OWIN の対応により次のステップへ

Page 16: One ASP.NET, OWIN & Katana

Intermezzo★Bootstrap

・プロジェクトテンプレートに Bootstrap を採用

・レスポンシブデザイン

・テーマが選べます! CSS 入れ替えでお手軽に

BootSwatch http://bootswatch.com/

Page 17: One ASP.NET, OWIN & Katana

①テンプレートの選択「MVC」

②App_Start/BundleConfig.cs

③App_Start/Startup.Auth.cs

コメントアウト

④ http://bootswatch.com/

⑤F5 でデバッグ実行

お遊びおすすめプラン

Intermezzo★Bootstrap

Page 18: One ASP.NET, OWIN & Katana

アジェンダ

ASP.NET 更新概要

One ASP.NET

概要

New Project

Scaffolding

OWIN & Katana

OWIN とは

Katana とは

ASP.NET の対応

まとめ

Page 19: One ASP.NET, OWIN & Katana

OWIN & Katana

Katana で ASP.NET アプリ開発を支援

OWIN とは

Katana とは

これからの ASP.NET にどのように関わるか

今回だけでなく、今後も関わってくる

Page 20: One ASP.NET, OWIN & Katana

OWIN とは

http://owin.org/ OWIN プロジェクトサイト

Open Web Interface for .NET

サーバーとアプリケーション間のインターフェイス

仕様です

Page 21: One ASP.NET, OWIN & Katana

OWIN とは

・Microsoft ではなく コミュニティによるオープンソースプロジェクト

・node.js, Rack, WSGI にインスパイアされた

補足情報

Page 22: One ASP.NET, OWIN & Katana

OWIN とは

・サーバーとアプリケーションを切り離す

・新しいコンポーネントが、より簡単に開発され、より簡単に使用される

・アプリケーションの移植を容易にする

目的

Page 23: One ASP.NET, OWIN & Katana

OWIN とは仕様 ~抽象的~

2つの要素からなる

・IDictionary<string, object> “Environment Dictionary”

キーと値で、リクエスト・サーバー等の状態を表す

・Task

アプリケーションが担うタスク

非同期、連結可

using AppFunc = Func<IDictionary<string, object>, Task>;

Page 24: One ASP.NET, OWIN & Katana

OWIN とは仕様 ~全体のイメージ~

サーバー アプリケーション

IDictionary<str

ing, object>を設定

IDictionary<string,

object>を元に Task を作る

HTTP

Request

HTTP

Response

OWIN

※イメージであり実際の処理の順番とは異なります。

Page 25: One ASP.NET, OWIN & Katana

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

Page 26: One ASP.NET, OWIN & Katana

↑↑ここまで OWIN ------------

OWIN まとめ

・サーバーとアプリケーションのインターフェイス

・コミュニティによるオープンソースプロジェクト

・IDictionary<string, object>, Task

----------ここから Katana ↓↓

・OWIN の実装

・Microsoft によるプロジェクト

Page 27: One ASP.NET, OWIN & Katana

アジェンダ

ASP.NET 更新概要

One ASP.NET

概要

New Project

Scaffolding

OWIN & Katana

OWIN とは

Katana とは

ASP.NET の対応

まとめ

Page 28: One ASP.NET, OWIN & Katana

Katana とは

・OWIN に対応するための、

コンポーネント・フレームワークのセットのこと

・Microsoft.Owin 名前空間にある

ライブラリが含まれている

Katana Project http://katanaproject.codeplex.com/

Page 29: One ASP.NET, OWIN & Katana

Katana とは

・Microsoft が提供

・オープンソース、NuGet による配布

補足情報

Page 30: One ASP.NET, OWIN & Katana

Katana とは

・今までの ASP.NET は、IIS(System.Web)に依存している。

→ IIS との切り離し

→ ASP.NET の Web 開発の進化への対応

・コンポーネントの再利用性

・認証、キャッシュ、ロギング等

・Azure 等のクラウドへの対応

目的

Page 31: One ASP.NET, OWIN & Katana

Katana とはどのように実装しているか

4 つの層に分けた

Host

Server

Middleware

Application

起動、読み込み

ネットワークソケット解放、

IDictionary<string, object>OWIN

Task を公開

開発者が書くコード

Page 32: One ASP.NET, OWIN & Katana

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 に含まれるコンポーネント

Page 33: One ASP.NET, OWIN & Katana

Katana とは目標

Portable

コンポーネントは置換できる

Modular / Flexible

機能は小さく、コンパクト、取り外しを容易に

Lightweight / Performant / Scalable

高パフォーマンスなサーバーに、アプリケーションを壊すことなく置換できる

Page 34: One ASP.NET, OWIN & Katana

Katana とは

HostMiddleware /

ApplicationServer

OWIN

Page 35: One ASP.NET, OWIN & Katana

Katana とはまとめ

・Microsoft による OWIN 対応のためのコンポーネント・フレームワークのセット

・Host, Server, Middleware, Application の 4 つの層に分けられる

・各コンポーネントの入れ替えが容易

Page 36: One ASP.NET, OWIN & Katana

アジェンダ

ASP.NET 更新概要

One ASP.NET

概要

New Project

Scaffolding

OWIN & Katana

OWIN とは

Katana とは

ASP.NET の対応

まとめ

Page 37: One ASP.NET, OWIN & Katana

OWIN & KatanaASP.NET の対応

OWIN 非対応:ASP.NET Web Forms, MVC(現在)

IIS

System.

Web.dllWeb Forms,

MVC

OWIN で切り離せないっ

IIS 以外で Host できない

Page 38: One ASP.NET, OWIN & Katana

OWIN & KatanaASP.NET の対応

OWIN 対応:ASP.NET Web API, SignalR

Web API,

SignalR

OWIN

何でも

OK

Page 39: One ASP.NET, OWIN & Katana

OWIN & KatanaASP.NET の対応

が! ASP.NET MVC 5 のコードを見ると…

OWIN に関連するコードがある! なぜか?

Page 40: One ASP.NET, OWIN & Katana

Katana とはASP.NET の対応

認証

(Middleware)

たとえ、IIS でホストされていても、

認証等の Middleware を適用させるため

ASP.NET MVC

(Middleware)

IIS

System.

Web.dll

OWIN

Page 41: One ASP.NET, OWIN & Katana

Katana とはASP.NET の対応

認証

(Middleware)

IIS で Host しているのに、OWIN の Middleware が作用するかの仕組み

ASP.NET MVC

(Middleware)

IIS

System.

Web.dll

OWIN

Microsoft.Owin.Hos

t.SystemWeb.dll

(Katana)

Page 42: One ASP.NET, OWIN & Katana

Katana とはMiddleware

認証,

キャッシュ,

ロギング

ASP.NET MVC,

ASP.NET Web API,

SignalR

OWIN

Middleware

・全処理共通の Middleware と、個別フレームワークの Middleware がある

Page 43: One ASP.NET, OWIN & Katana

Katana とはStartup.cs

OWIN

Middleware/

Application

・OWIN の処理に Middleware を登録するための Katana による設定クラス

Startup.cs

(Katana)

Page 44: One ASP.NET, OWIN & Katana

Katana とはMiddleware

・Startup.cs にて、Use…() メソッドにより、Middleware を登録する

・いくつも連結可能・アプリケーションのコードを壊すことなく、改善、入れ替えができる。

・認証、キャッシュ、ロギングなど、Web フレームワーク共通の処理をコンポーネントとして登録できる

これからの ASP.NET では、Web アプリ共通の処理がOWIN の Middleware として、更新・改善されていく(だろう)

Page 45: One ASP.NET, OWIN & Katana

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 は今後も目が離せない。

Page 46: One ASP.NET, OWIN & Katana

OWIN & Katanaデモ

Page 47: One ASP.NET, OWIN & Katana

OWIN & Katana例①

単純なコード

(Middleware)

OwinHost.exe

(Katana)

Microsoft.OwinHost.

HttpListener.dll

(Katana)

OWIN

Page 48: One ASP.NET, OWIN & Katana

OWIN & Katana例②

単純なコード

(Middleware)

IIS

Microsoft.Owin.Host

.SystemWeb.dll

(Katana)

OWIN

Page 49: One ASP.NET, OWIN & Katana

OWIN & Katana例③

ASP.NET Web API

(Middleware)

OWINOwinHost.exe

(Katana)

Microsoft.OwinHost.

HttpListener.dll

(Katana)

Page 50: One ASP.NET, OWIN & Katana

今回のまとめ

Page 51: One ASP.NET, OWIN & Katana

One ASP.NET

WebForms

WebPages

SinglePageApps

MVCWebAPI

SignalR

ASP.NET

Any

限定されたフレームワークだけでは、Web の進化に対応できない

Page 52: One ASP.NET, OWIN & Katana

OWIN & Katana

OWIN & KatanaHostMiddleware /

ApplicationServer

OWIN

Page 53: One ASP.NET, OWIN & Katana

今回のまとめ

・One ASP.NET と OWIN & Katana は、進化する Web 開発に対応するためのASP.NET における重要なアップデート内容。

・次々と短くなっていくリリースの間隔…

・→柔軟に対応

・ASP.NET を上手く利用して 最適な Web 開発を。