One ASP.NET, OWIN & Katana

Preview:

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 開発を。

Recommended