SlideShare a Scribd company logo
One ASP.NET,
OWIN & Katana
2013/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



Katana とは





OWIN とは
ASP.NET の対応

まとめ
セッションの ゴール


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

One ASP.NET
OWIN & Katana


急速な Web 開発の進化に対応する ASP.NET を知る
対象者
ASP.NET 開発者
ASP.NET 更新概要
コア

各フレームワーク

One ASP.NET - ★

MVC 5

ASP.NET Scaffolding

Web API 2

ASP.NET Identity

SignalR 2.0

Katana - ★

Razor 3

Web Tools
Browser Link

Azure Web サイトのサポート
Web エディター
Web 発行機能
NuGet 2.7

Entity Framework 6
One ASP.NET
Sites
Web
Forms

Web
Pages

Services

Single
Page
Apps

MVC

ASP.NET
ASP.NET 基盤を元に、
各フレームワークを組み合わせて構築可能。

Web
API

SignalR
One ASP.NET
Services

Single
Page
Apps

MVC

Web
API

SignalR

ASP.NET

“1つにまとまった“だけではない!
→OWIN & Katana の説明後にて。

Nancy

???
One ASP.NET
New Project
One ASP.NET
New Project
One ASP.NET
New Project
One ASP.NET
New Project
・VS 2012 用も用意
・認証方法の選択
・フレームワークに依存しない認証のライブラリ
・個人アカウント

・ASP.NET メンバーシップシステム
・Social Account(Google, Twitter, Facebook, …)
・組織アカウント、Windows 認証
・Active Directory, Office 365, オンプレミス
One ASP.NET

スタートページ

テンプレートに合わせた次のステップへのガイド
One ASP.NET
Scaffolding

「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/
Intermezzo★Bootstrap
お遊びおすすめプラン
①テンプレートの選択「MVC」
②App_Start/BundleConfig.cs

③App_Start/Startup.Auth.cs
コメントアウト

④ http://bootswatch.com/
⑤F5 でデバッグ実行
アジェンダ


ASP.NET 更新概要



One ASP.NET
 概要
 New

Project

 Scaffolding


OWIN & Katana



Katana とは





OWIN とは
ASP.NET の対応

まとめ
OWIN & Katana
Katana で ASP.NET アプリ開発を支援


OWIN とは



Katana とは



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

今回だけでなく、今後も関わってくる
OWIN とは
Open Web Interface for .NET
サーバーとアプリケーション間のインターフェイス

仕様
です

http://owin.org/

OWIN プロジェクトサイト
OWIN とは
補足情報

・Microsoft ではなく コミュニティによる
オープンソースプロジェクト
・node.js, Rack, WSGI にインスパイアされた
OWIN とは
目的

・サーバーとアプリケーションを切り離す
・新しいコンポーネントが、より簡単に開発され、
より簡単に使用される
・アプリケーションの移植を容易にする
OWIN とは

仕様 ~抽象的~
using AppFunc =
Func<IDictionary<string, object>, Task>;

2つの要素からなる
・IDictionary<string, object> “Environment Dictionary”
キーと値で、リクエスト・サーバー等の状態を表す

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

非同期、連結可
OWIN とは

仕様 ~全体のイメージ~
サーバー

HTTP
Request

OWIN
↓

アプリケーション

IDictionary<str
ing, object>
を設定
IDictionary<string,
object>
を元に Task を作る

HTTP
Response

※イメージであり実際の処理の順番とは異なります。
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 まとめ
・サーバーとアプリケーションのインターフェイス
・コミュニティによるオープンソースプロジェクト
・IDictionary<string, object>, Task

↑↑ここまで OWIN ---------------------ここから Katana ↓↓
・OWIN の実装
・Microsoft によるプロジェクト
アジェンダ


ASP.NET 更新概要



One ASP.NET
 概要
 New

Project

 Scaffolding


OWIN & Katana



Katana とは





OWIN とは
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
OWIN

起動、読み込み
ネットワークソケット解放、
IDictionary<string, object>

Middleware

Task を公開

Application

開発者が書くコード
Katana とは

どのように実装しているか
Host

IIS/ASP.NET、Custom コンソール
アプリ、OwinHost.exe …

Server

IIS/ASP.NET(System.Web)、
Microsoft.Owin.Host.SystemWeb、
Microsoft.Owin.Host.HttpListener …

Middleware

Nancy、Web API、SignalR、
Microsoft.Owin.Security.Google …

Application

Your Code.
黒字:Katana に含まれるコンポーネント
Katana とは
目標


Portable




Modular / Flexible




コンポーネントは置換できる
機能は小さく、コンパクト、取り外しを容易に

Lightweight / Performant / Scalable


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

Middleware /
Application
Katana とは
まとめ

・Microsoft による OWIN 対応のためのコンポーネント・
フレームワークのセット
・Host, Server, Middleware, Application の 4 つの層に
分けられる
・各コンポーネントの入れ替えが容易
アジェンダ


ASP.NET 更新概要



One ASP.NET
 概要
 New

Project

 Scaffolding


OWIN & Katana



Katana とは





OWIN とは
ASP.NET の対応

まとめ
OWIN & Katana
ASP.NET の対応

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

System.
Web.dll

Web Forms,
MVC

OWIN で切り離せないっ
IIS 以外で Host できない
OWIN & Katana
ASP.NET の対応

OWIN 対応:ASP.NET Web API, SignalR
OWIN

何でも
OK

Web API,
SignalR
OWIN & Katana
ASP.NET の対応

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

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

ASP.NET の対応

たとえ、IIS でホストされていても、
認証等の Middleware を適用させるため
OWIN
IIS
System.
Web.dll

認証
ASP.NET MVC
(Middleware) (Middleware)
Katana とは

ASP.NET の対応

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

IIS
System.
Web.dll

認証
ASP.NET MVC
(Middleware) (Middleware)
Microsoft.Owin.Hos
t.SystemWeb.dll
(Katana)
Katana とは
Middleware
・全処理共通の Middleware と、
個別フレームワークの Middleware がある
OWIN
Middleware
認証,
キャッシュ,
ロギング

ASP.NET MVC,
ASP.NET Web API,
SignalR
Katana とは
Startup.cs
・OWIN の処理に Middleware を登録するため
の Katana による設定クラス
OWIN
Startup.cs
(Katana)
Middleware/
Application
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
例①

OwinHost.exe
(Katana)

OWIN

Microsoft.OwinHost.
HttpListener.dll
(Katana)

単純なコード
(Middleware)
OWIN & Katana
例②

IIS

OWIN

Microsoft.Owin.Host
.SystemWeb.dll
(Katana)

単純なコード
(Middleware)
OWIN & Katana
例③

OwinHost.exe
(Katana)

OWIN

Microsoft.OwinHost.
HttpListener.dll
(Katana)

ASP.NET Web API
(Middleware)
今回のまとめ
One ASP.NET

Web
Forms

Web
Pages

Single
Page
Apps

MVC

Web
API

SignalR

Any

ASP.NET

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

OWIN & Katana /
Middleware

Host
Server

Application
今回のまとめ
・One ASP.NET と OWIN & Katana は、
進化する Web 開発に対応するための
ASP.NET における重要なアップデート内容。
・次々と短くなっていくリリースの間隔…
・→柔軟に対応
・ASP.NET を上手く利用して 最適な Web 開発を。

More Related Content

PDF
OWIN って何?
PDF
Web開発の最新トレンド ~1から知るASP.NET~
PDF
50分で掴み取る ASP.NET Web API パターン&テクニック
PDF
ASP.NET WEB API 開発体験
PPTX
2016/12/17 ASP.NET フロントエンドタスク入門
PDF
Scala が支える医療系ウェブサービス #jissenscala
PDF
.NET Core 1.0
PDF
2016/05/01 Visual Studio with Cordova
OWIN って何?
Web開発の最新トレンド ~1から知るASP.NET~
50分で掴み取る ASP.NET Web API パターン&テクニック
ASP.NET WEB API 開発体験
2016/12/17 ASP.NET フロントエンドタスク入門
Scala が支える医療系ウェブサービス #jissenscala
.NET Core 1.0
2016/05/01 Visual Studio with Cordova

What's hot (20)

PPTX
ASP.NET習得の最短経路を考察する
PDF
多分モダンなWebアプリ開発
PDF
20141129-dotNet2015
PDF
ビズリーチの新サービスをScalaで作ってみた 〜マイクロサービスの裏側 #jissenscala
PDF
The state of sbt 0.13, sbt server, and sbt 1.0 (ScalaMatsuri ver)
PDF
ASP.NETの進化とASP.NET Core Blazorの凄さ
PDF
おれおれブログシステムにServiceWorkerを導入してみた #serviceworker
PPTX
はじめてのASP.NET MVC5
PDF
Consumer Driven Contractsで REST API/マイクロサービスをテスト #m3tech
PDF
DevOpsハッカソン参加レポート
PDF
Skinny Controllers, Skinny Models
PDF
はじめての ASP.NET MVC
PDF
AWS Elastic Beanstalk(初心者向け 超速マスター編)JAWSUG大阪
PPTX
サーバーレスで ガチ本番運用までやってるお話し
PDF
ネタじゃないScala.js
PDF
Jawsug chiba API Gateway
PPTX
PHP on Cloud
PDF
実戦Scala
PPTX
202109-New_Relic-for-csharp-engineers
PDF
AWSで開発するサーバレスAPIバックエンド
ASP.NET習得の最短経路を考察する
多分モダンなWebアプリ開発
20141129-dotNet2015
ビズリーチの新サービスをScalaで作ってみた 〜マイクロサービスの裏側 #jissenscala
The state of sbt 0.13, sbt server, and sbt 1.0 (ScalaMatsuri ver)
ASP.NETの進化とASP.NET Core Blazorの凄さ
おれおれブログシステムにServiceWorkerを導入してみた #serviceworker
はじめてのASP.NET MVC5
Consumer Driven Contractsで REST API/マイクロサービスをテスト #m3tech
DevOpsハッカソン参加レポート
Skinny Controllers, Skinny Models
はじめての ASP.NET MVC
AWS Elastic Beanstalk(初心者向け 超速マスター編)JAWSUG大阪
サーバーレスで ガチ本番運用までやってるお話し
ネタじゃないScala.js
Jawsug chiba API Gateway
PHP on Cloud
実戦Scala
202109-New_Relic-for-csharp-engineers
AWSで開発するサーバレスAPIバックエンド
Ad

Viewers also liked (7)

PDF
Visual Studio 2017 RC C# まわり
PPTX
それっぽく、適当に
PPTX
.NET Compiler Platform
PPTX
C#とILとネイティブと
PPTX
Visual Studio 2017 と Team Foundation Server / Visual Studio Team Services で実現...
PPTX
C#や.NET Frameworkがやっていること
PPTX
新しい Visual Studio & .NET と新時代のアーキテクチャ
Visual Studio 2017 RC C# まわり
それっぽく、適当に
.NET Compiler Platform
C#とILとネイティブと
Visual Studio 2017 と Team Foundation Server / Visual Studio Team Services で実現...
C#や.NET Frameworkがやっていること
新しい Visual Studio & .NET と新時代のアーキテクチャ
Ad

Similar to One ASP.NET, OWIN & Katana (20)

PDF
ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説
PDF
ASP.NET vNext / Visual Studio "14" に見る .NET の未来像
PDF
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
PDF
One ASP.NET の今とこれから
PDF
A 1-2 One ASP.NET - ASP.NET Web Stack
PDF
Linux & Mac OS でも動く! ~ クロスプラットフォーム対応に見る ASP.NET Core 5 の可能性 ~
PDF
~ Cloud First から Cloud Optimized へ ~ .NET on Cloud が描くモダナイゼーション
PPTX
Web matrix2とvisual studio
PDF
Windows 開発者のための Dev&Ops on AWS
PPTX
About .Net vNext
PPTX
About .Net vNext
PPT
Using Windows Azure
PDF
.NET Core向けコンテナおよびデバッグ関連のVisual Studio 2019の機能
PDF
Mvc conf session_1_osada
PDF
.NET Core向けコンテナおよびデバッグ関連のVisual Studioの新機能
PDF
[TL04] .NET 15 周年の今こそ考えるクラウドネイティブ アプリケーションと .NET の活用
PDF
OWIN - .NETにおけるPSGI -
PDF
CloudStack Ecosystem Day - OpenStack/Swift
PDF
.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して
PPTX
Container x azure x kubernetes
ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説
ASP.NET vNext / Visual Studio "14" に見る .NET の未来像
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
One ASP.NET の今とこれから
A 1-2 One ASP.NET - ASP.NET Web Stack
Linux & Mac OS でも動く! ~ クロスプラットフォーム対応に見る ASP.NET Core 5 の可能性 ~
~ Cloud First から Cloud Optimized へ ~ .NET on Cloud が描くモダナイゼーション
Web matrix2とvisual studio
Windows 開発者のための Dev&Ops on AWS
About .Net vNext
About .Net vNext
Using Windows Azure
.NET Core向けコンテナおよびデバッグ関連のVisual Studio 2019の機能
Mvc conf session_1_osada
.NET Core向けコンテナおよびデバッグ関連のVisual Studioの新機能
[TL04] .NET 15 周年の今こそ考えるクラウドネイティブ アプリケーションと .NET の活用
OWIN - .NETにおけるPSGI -
CloudStack Ecosystem Day - OpenStack/Swift
.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して
Container x azure x kubernetes

One ASP.NET, OWIN & Katana