SlideShare a Scribd company logo
1 of 39
Download to read offline
OWIN って何?
~昨今の .NET Web 開発のイノベーション~
矢後 比呂加
2014/5/16
今日の内容
昨今の Microsoft (.NET) Web 開発の
イノベーション
 2013/11 Visual Studio 2013 リリース
 2014/4 Build 2014
 2014/5 TechEd North America
 2014/5 de:code ← next !
• OWIN, Katana, Project Helios, ASP.NET vNext
• 課題とその解決
ゴール
• OWIN, Katana, Project Helios, ASP.NET vNext
が何かを知る
• それらはどのような課題を解決するのか
を知る
概要
• 急速する Web 開発の進化への対応
• Mobile First, Cloud First
ASP.NET の課題とは
現在
概要
OWIN & Katana (2013/11)
• サーバーとアプリの疎結
• Modular / Flexible / Composable
Project Helios (2014/2 alpha)
• IIS における System.Web からの脱却
ASP.NET vNext
• .NET vNext
• ランタイム、ホスティング、アプリ、開発
エクスペリエンス等を一新した次の ASP.NET ステージ
• 10年続く ASP.NET の歴史と課題
• これまでの取り組み
• 昨今の取り組み
• OWIN, Katana
• Project Helios
• ASP.NET vNext
アジェンダ
2002 年(平成 14 年)ASP.NET 1.0
with .NET Framework 1.0
• Classic ASP, Windows 業務アプリ開発者むけ
• .NET Framework と一緒にリリースされていく
10 年続く ASP.NET の歴史と課題
Web
Forms
Web
Pages
MVC
Web
API
SignalR
ASP.NET
2002 年 ~ 今まで 10 数年続く ASP.NET
10 年続く ASP.NET の歴史と課題
• HTTP 回り
• HTTP Module
• HTTP Handler
• Session
• Cache
• Web Forms
• Controls
etc…
10 年続く ASP.NET の歴史と課題
System.Web とは
10 年続く ASP.NET の歴史と課題
• 全てを行うための1枚岩モデル
• 全ての機能がデフォルトで ON
• 肥大化、複雑化
• ブラックボックス
• .NET Framework のサイクルと
Web 開発のサイクルの歩調の違い
• System.Web は .NET Framework の一部
• Only IIS
• 古い時代の実装 System.Web
画像 : Channel9 - The Katana Project - OWIN for ASP.NET
• 10年続く ASP.NET の歴史と課題
• これまでの取り組み
• 昨今の取り組み
• OWIN, Katana
• Project Helios
• ASP.NET vNext
アジェンダ
これまでの取り組み1
2009 年 ~ ASP.NET MVC 1 - 5
• .NET Framework のサイクルから外れる
• (が System.Web に依存)
これまでの取り組み2
2012, 2013 年 ASP.NET Web API
ASP.NET SignalR
• System.Web に依存しない設計
• self-host が可能となる
• NuGet による配布
• ASP.NET MVC 4 も
これまでの取り組み3
2013 年 One ASP.NET
Web
Forms
Web
Pages
Single
Page
Apps
MVC
Web
API
SignalR
ASP.NET
• 1枚岩 → モジュール化
フレームワークの選択、組み合わせが可能に
*any*
これまでの取り組み
まだまだ残る課題
Web
Forms
Web
Pages
Single
Page
Apps
MVC
Web
API
SignalR
ASP.NET
• System.Web への依存
• 複数のフレームワークの混在、似たような構成
• Web 構成、認証、セキュリティ、依存性の注入 etc…
• IIS, self-host
*any*
• 10年続く ASP.NET の歴史と課題
• これまでの取り組み
• 昨今の取り組み
• OWIN, Katana
• Project Helios
• ASP.NET vNext
アジェンダ
OWIN とは
Open Web Interface for .NET
• サーバーとアプリを抽象化するインターフェイス
(=仕様)
App
Server
OWIN
App
Server
Portable
OWIN とは
2つの要素
• IDictionary<string, object>
環境ディクショナリ
サーバーやリクエストの状態等を表す
• Func<IDictionary<string, object>, Task>;
App は、環境ディクショナリをもとに Task を定義
App
Server
OWIN とは
ドキュメント
• OWIN http://owin.org/
• 仕様書 http://owin.org/spec/owin-1.0.0.html
• Owin.dll - IAppBuilder
https://github.com/owin/owin/blob/master/src/Owin/IAppBuilder.cs
OWIN を実装するため一つの基準のようなもの
Katana とは
• OWIN に準じた Web アプリの構築、起動するための
コンポーネントやツール等のセット
• Microsoft による実装
⇔OWIN はコミュニティプロジェクト
• “Katana” = “Microsoft OWIN”
Katana Project – CodePlex
http://katanaproject.codeplex.com/
Katana とは
Host
Server
Middleware
Application
OWIN
アプリ特有の実装コード
Web API/SignalR/Nancy/認証/CORS etc…
Func<IDictionary<string, object>, Task>;
System.Web/HttpListener/NOwin/
WebListener/Helios etc…
IIS/Custom Host/OwinHost.exe
Katana とは
目的
• Portable
• Modular / Flexible / Composable
• 機能は小さくコンパクトに
• コンポーネントは置換でき、NuGet による迅速な更新
• それぞれの部品はニーズに合わせて組み合わせが可能
• Lightweight / Performance / Scalable
• 必要最低限な構成によるリソース消費の削減
• アプリケーションに影響することなくサーバーの改善が可能
Middleware の特徴
Host
Server
Middleware
Request
Response
連結可能
Middleware は次の Middleware の実行を制御する
Katana もう少し詳しく1
Cookie 認証
Middleware
Application
有効な Request
(200 OK)
無効な Request
(401 Unauthorized)
参考:Understanding OWIN Forms authentication in MVC 5
Middleware による認証例
Startup.cs とは
Host
Server
Middleware
Application
Middleware の構成を定義する
クラス
Katana もう少し詳しく2
とは言っても
Host
Server
Middleware
Application MVC 5 は System.Web に
依存するので OWIN アプ
リとしては稼働できない
Microsoft.Owin.Host.SystemWeb
の助けにより、System.Web のパイプライ
ンを Startup.cs に通している
System.Web で動きながらも Middleware 使
えるZe!
とは言っても2
IIS
System.Web
Middleware
Custom Host/
OwinHost.exe
HttpListener
Middleware
IIS の Host では、
System.Web のみ対応
IIS は優秀だし、
でも System.Web から
脱却したい・・・
• 10年続く ASP.NET の歴史と課題
• これまでの取り組み
• 昨今の取り組み
• OWIN, Katana
• Project Helios
• ASP.NET vNext
アジェンダ
Project Helios とは
IIS 上で、System.Web パイプラインを通さずに
Web アプリを稼働させるための
プロジェクト
IIS と self-host の双方の利点を
取り入れる
NuGet : Microsoft.Owin.Host.IIS -Pre
IIS
Not
System.Web
Middleware
Project Helios とは
IIS の利点
• 10 年以上稼働してきたセキュリティ対策
• Caching
• Static Files
• Web Socket
• ライフタイム管理
• レスポンス圧縮
• Power Shell
etc…
Project Helios とは
パフォーマンスの改善
• System.Web より、2, 3 倍のスループット
• System.Web より、メモリ消費 96% 削減
参考:Supplemental to ASP.NET Project “Helios”
• 10年続く ASP.NET の歴史と課題
• これまでの取り組み
• 昨今の取り組み
• OWIN, Katana
• Project Helios
• ASP.NET vNext
アジェンダ
ASP.NET vNext
• System.Web からの脱却
• アプリ側(MVC, Web API, Web Pages 6)
• サーバー側(Helios)
• Web Framework の更なる抽象化
• MVC, Web API, Web Pages の統合
• HTTP 周り(not System.Web, not System.Net.Http)
• Dependency Injection 等の共通化
(※このセッションのテーマから見た内容)
• 10年続く ASP.NET の歴史と課題
• これまでの取り組み
• 昨今の取り組み
• OWIN, Katana, Project Helios, ASP.NET vNext
まとめ
10 年続く ASP.NET の歴史と課題
• 全てを行うための1枚岩モデル
• 全ての機能がデフォルトで ON
• 肥大化、複雑化
• ブラックボックス
• .NET Framework のサイクルと
Web 開発のサイクルの歩調の違い
• System.Web は .NET Framework の一部
• Only IIS
• 古い時代の実装 System.Web
画像 : Channel9 - The Katana Project - OWIN for ASP.NET
OWIN & Katana (2013/11)
• サーバーとアプリの疎結
• Mobular / Flexible / Composability
Project Helios (2014/2 alpha)
• IIS における System.Web からの脱却
ASP.NET vNext
• System.Web からの完全脱却 と 更なる抽象化
• Mobile First , Cloud First へ
OWIN って何?
.NET Web 開発 イノベーション
最初のステップ

More Related Content

What's hot

今さら聞けない! Active Directoryドメインサービス入門
今さら聞けない! Active Directoryドメインサービス入門今さら聞けない! Active Directoryドメインサービス入門
今さら聞けない! Active Directoryドメインサービス入門Tetsuya Yokoyama
 
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方Taku Miyakawa
 
今さら聞けないDiとspring
今さら聞けないDiとspring今さら聞けないDiとspring
今さら聞けないDiとspring土岐 孝平
 
DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話
DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話
DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話JustSystems Corporation
 
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture世界一わかりやすいClean Architecture
世界一わかりやすいClean ArchitectureAtsushi Nakamura
 
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところY Watanabe
 
Cloud Foundry V2を、もうちょっと深掘りしよう
Cloud Foundry V2を、もうちょっと深掘りしようCloud Foundry V2を、もうちょっと深掘りしよう
Cloud Foundry V2を、もうちょっと深掘りしようKazuto Kusama
 
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Springドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring増田 亨
 
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計Yoshinori Matsunobu
 
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)Trainocate Japan, Ltd.
 
PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門泰 増田
 
SQL大量発行処理をいかにして高速化するか
SQL大量発行処理をいかにして高速化するかSQL大量発行処理をいかにして高速化するか
SQL大量発行処理をいかにして高速化するかShogo Wakayama
 
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~infinite_loop
 
それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?Yoshitaka Kawashima
 
REST API のコツ
REST API のコツREST API のコツ
REST API のコツpospome
 
今なら間に合う分散型IDとEntra Verified ID
今なら間に合う分散型IDとEntra Verified ID今なら間に合う分散型IDとEntra Verified ID
今なら間に合う分散型IDとEntra Verified IDNaohiro Fujie
 
Alfresco勉強会#24 コンテンツのライフサイクル
Alfresco勉強会#24 コンテンツのライフサイクルAlfresco勉強会#24 コンテンツのライフサイクル
Alfresco勉強会#24 コンテンツのライフサイクルJun Terashita
 
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsugJava ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsugMasatoshi Tada
 

What's hot (20)

今さら聞けない! Active Directoryドメインサービス入門
今さら聞けない! Active Directoryドメインサービス入門今さら聞けない! Active Directoryドメインサービス入門
今さら聞けない! Active Directoryドメインサービス入門
 
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方
 
今さら聞けないDiとspring
今さら聞けないDiとspring今さら聞けないDiとspring
今さら聞けないDiとspring
 
DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話
DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話
DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話
 
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
 
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
 
Cloud Foundry V2を、もうちょっと深掘りしよう
Cloud Foundry V2を、もうちょっと深掘りしようCloud Foundry V2を、もうちょっと深掘りしよう
Cloud Foundry V2を、もうちょっと深掘りしよう
 
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Springドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
 
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。 【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
 
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
 
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
 
PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門
 
SQL大量発行処理をいかにして高速化するか
SQL大量発行処理をいかにして高速化するかSQL大量発行処理をいかにして高速化するか
SQL大量発行処理をいかにして高速化するか
 
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
 
それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?
 
REST API のコツ
REST API のコツREST API のコツ
REST API のコツ
 
今なら間に合う分散型IDとEntra Verified ID
今なら間に合う分散型IDとEntra Verified ID今なら間に合う分散型IDとEntra Verified ID
今なら間に合う分散型IDとEntra Verified ID
 
Alfresco勉強会#24 コンテンツのライフサイクル
Alfresco勉強会#24 コンテンツのライフサイクルAlfresco勉強会#24 コンテンツのライフサイクル
Alfresco勉強会#24 コンテンツのライフサイクル
 
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsugJava ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
 
【BS2】.NET 6 最新アップデート
【BS2】.NET 6 最新アップデート【BS2】.NET 6 最新アップデート
【BS2】.NET 6 最新アップデート
 

Similar to OWIN って何?

ASP.NET vNext / Visual Studio "14" に見る .NET の未来像
ASP.NET vNext / Visual Studio "14" に見る .NET の未来像ASP.NET vNext / Visual Studio "14" に見る .NET の未来像
ASP.NET vNext / Visual Studio "14" に見る .NET の未来像Akira Inoue
 
ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説
ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説
ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説Akira Inoue
 
.NET の過去、現在、そして未来 ~ .NET 最新アップデート
.NET の過去、現在、そして未来 ~ .NET 最新アップデート.NET の過去、現在、そして未来 ~ .NET 最新アップデート
.NET の過去、現在、そして未来 ~ .NET 最新アップデートAkira Inoue
 
One ASP.NET, OWIN & Katana
One ASP.NET, OWIN & KatanaOne ASP.NET, OWIN & Katana
One ASP.NET, OWIN & Katanamiso- soup3
 
.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して
.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して
.NET の今と未来 ~ デバイス&クラウド ネイティブを目指してAkira Inoue
 
WebIntentsにより拓かれる次のWeb
WebIntentsにより拓かれる次のWebWebIntentsにより拓かれる次のWeb
WebIntentsにより拓かれる次のWebKensaku Komatsu
 
One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~
One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~
One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~Akira Inoue
 
【de:code 2020】 「あつまれ フロントエンドエンジニア」 Azure Static Web Apps がやってきた
【de:code 2020】 「あつまれ フロントエンドエンジニア」 Azure Static Web Apps がやってきた【de:code 2020】 「あつまれ フロントエンドエンジニア」 Azure Static Web Apps がやってきた
【de:code 2020】 「あつまれ フロントエンドエンジニア」 Azure Static Web Apps がやってきた日本マイクロソフト株式会社
 
2011年マイクロソフト テクノロジー振り返り~開発編~
2011年マイクロソフト テクノロジー振り返り~開発編~2011年マイクロソフト テクノロジー振り返り~開発編~
2011年マイクロソフト テクノロジー振り返り~開発編~Takeshi Shinmura
 
~ Cloud First から Cloud Optimized へ ~ .NET on Cloud が描くモダナイゼーション
~ Cloud First から Cloud Optimized へ ~ .NET on Cloud が描くモダナイゼーション~ Cloud First から Cloud Optimized へ ~ .NET on Cloud が描くモダナイゼーション
~ Cloud First から Cloud Optimized へ ~ .NET on Cloud が描くモダナイゼーションAkira Inoue
 
Visual Studio 2012 で実現する HTML5 & マルチ デバイス時代の Web 開発
Visual Studio 2012 で実現する HTML5 & マルチ デバイス時代の Web 開発Visual Studio 2012 で実現する HTML5 & マルチ デバイス時代の Web 開発
Visual Studio 2012 で実現する HTML5 & マルチ デバイス時代の Web 開発Akira Inoue
 
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...Shotaro Suzuki
 
OWIN - .NETにおけるPSGI -
OWIN - .NETにおけるPSGI -OWIN - .NETにおけるPSGI -
OWIN - .NETにおけるPSGI -将 高野
 
【de:code 2020】 Build 2020 最新情報 〜 Azure & Visual Studio & .NET 〜
【de:code 2020】 Build 2020 最新情報 〜 Azure & Visual Studio & .NET 〜【de:code 2020】 Build 2020 最新情報 〜 Azure & Visual Studio & .NET 〜
【de:code 2020】 Build 2020 最新情報 〜 Azure & Visual Studio & .NET 〜日本マイクロソフト株式会社
 
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~Akira Inoue
 
Cloud Days Tokyo 2015 "オンプレミス環境のクラウド化と運用を楽にする OpenStack ソリューション ~ハイブリッド・クラウドを...
Cloud Days Tokyo 2015 "オンプレミス環境のクラウド化と運用を楽にする OpenStack ソリューション ~ハイブリッド・クラウドを...Cloud Days Tokyo 2015 "オンプレミス環境のクラウド化と運用を楽にする OpenStack ソリューション ~ハイブリッド・クラウドを...
Cloud Days Tokyo 2015 "オンプレミス環境のクラウド化と運用を楽にする OpenStack ソリューション ~ハイブリッド・クラウドを...Shinichiro Arai
 
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...Shotaro Suzuki
 
~初心者がこれから Web アプリの開発をするために~
~初心者がこれから Web アプリの開発をするために~~初心者がこれから Web アプリの開発をするために~
~初心者がこれから Web アプリの開発をするために~Oda Shinsuke
 
Visual Studio 2012 と ASP.NET に見る、最新 Web 開発の魅力
Visual Studio 2012 と ASP.NET に見る、最新 Web 開発の魅力Visual Studio 2012 と ASP.NET に見る、最新 Web 開発の魅力
Visual Studio 2012 と ASP.NET に見る、最新 Web 開発の魅力Akira Inoue
 
Azure 高速サイトソリューション
Azure 高速サイトソリューションAzure 高速サイトソリューション
Azure 高速サイトソリューションHiromasa Oka
 

Similar to OWIN って何? (20)

ASP.NET vNext / Visual Studio "14" に見る .NET の未来像
ASP.NET vNext / Visual Studio "14" に見る .NET の未来像ASP.NET vNext / Visual Studio "14" に見る .NET の未来像
ASP.NET vNext / Visual Studio "14" に見る .NET の未来像
 
ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説
ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説
ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説
 
.NET の過去、現在、そして未来 ~ .NET 最新アップデート
.NET の過去、現在、そして未来 ~ .NET 最新アップデート.NET の過去、現在、そして未来 ~ .NET 最新アップデート
.NET の過去、現在、そして未来 ~ .NET 最新アップデート
 
One ASP.NET, OWIN & Katana
One ASP.NET, OWIN & KatanaOne ASP.NET, OWIN & Katana
One ASP.NET, OWIN & Katana
 
.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して
.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して
.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して
 
WebIntentsにより拓かれる次のWeb
WebIntentsにより拓かれる次のWebWebIntentsにより拓かれる次のWeb
WebIntentsにより拓かれる次のWeb
 
One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~
One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~
One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~
 
【de:code 2020】 「あつまれ フロントエンドエンジニア」 Azure Static Web Apps がやってきた
【de:code 2020】 「あつまれ フロントエンドエンジニア」 Azure Static Web Apps がやってきた【de:code 2020】 「あつまれ フロントエンドエンジニア」 Azure Static Web Apps がやってきた
【de:code 2020】 「あつまれ フロントエンドエンジニア」 Azure Static Web Apps がやってきた
 
2011年マイクロソフト テクノロジー振り返り~開発編~
2011年マイクロソフト テクノロジー振り返り~開発編~2011年マイクロソフト テクノロジー振り返り~開発編~
2011年マイクロソフト テクノロジー振り返り~開発編~
 
~ Cloud First から Cloud Optimized へ ~ .NET on Cloud が描くモダナイゼーション
~ Cloud First から Cloud Optimized へ ~ .NET on Cloud が描くモダナイゼーション~ Cloud First から Cloud Optimized へ ~ .NET on Cloud が描くモダナイゼーション
~ Cloud First から Cloud Optimized へ ~ .NET on Cloud が描くモダナイゼーション
 
Visual Studio 2012 で実現する HTML5 & マルチ デバイス時代の Web 開発
Visual Studio 2012 で実現する HTML5 & マルチ デバイス時代の Web 開発Visual Studio 2012 で実現する HTML5 & マルチ デバイス時代の Web 開発
Visual Studio 2012 で実現する HTML5 & マルチ デバイス時代の Web 開発
 
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...
 
OWIN - .NETにおけるPSGI -
OWIN - .NETにおけるPSGI -OWIN - .NETにおけるPSGI -
OWIN - .NETにおけるPSGI -
 
【de:code 2020】 Build 2020 最新情報 〜 Azure & Visual Studio & .NET 〜
【de:code 2020】 Build 2020 最新情報 〜 Azure & Visual Studio & .NET 〜【de:code 2020】 Build 2020 最新情報 〜 Azure & Visual Studio & .NET 〜
【de:code 2020】 Build 2020 最新情報 〜 Azure & Visual Studio & .NET 〜
 
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~
 
Cloud Days Tokyo 2015 "オンプレミス環境のクラウド化と運用を楽にする OpenStack ソリューション ~ハイブリッド・クラウドを...
Cloud Days Tokyo 2015 "オンプレミス環境のクラウド化と運用を楽にする OpenStack ソリューション ~ハイブリッド・クラウドを...Cloud Days Tokyo 2015 "オンプレミス環境のクラウド化と運用を楽にする OpenStack ソリューション ~ハイブリッド・クラウドを...
Cloud Days Tokyo 2015 "オンプレミス環境のクラウド化と運用を楽にする OpenStack ソリューション ~ハイブリッド・クラウドを...
 
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...
 
~初心者がこれから Web アプリの開発をするために~
~初心者がこれから Web アプリの開発をするために~~初心者がこれから Web アプリの開発をするために~
~初心者がこれから Web アプリの開発をするために~
 
Visual Studio 2012 と ASP.NET に見る、最新 Web 開発の魅力
Visual Studio 2012 と ASP.NET に見る、最新 Web 開発の魅力Visual Studio 2012 と ASP.NET に見る、最新 Web 開発の魅力
Visual Studio 2012 と ASP.NET に見る、最新 Web 開発の魅力
 
Azure 高速サイトソリューション
Azure 高速サイトソリューションAzure 高速サイトソリューション
Azure 高速サイトソリューション
 

More from miso- soup3

2016/05/01 Visual Studio with Cordova
2016/05/01 Visual Studio with Cordova2016/05/01 Visual Studio with Cordova
2016/05/01 Visual Studio with Cordovamiso- soup3
 
2016/12/17 ASP.NET フロントエンドタスク入門
 2016/12/17 ASP.NET フロントエンドタスク入門 2016/12/17 ASP.NET フロントエンドタスク入門
2016/12/17 ASP.NET フロントエンドタスク入門miso- soup3
 
Visual Studio 2017 RC C# まわり
Visual Studio 2017 RC C# まわりVisual Studio 2017 RC C# まわり
Visual Studio 2017 RC C# まわりmiso- soup3
 
Web開発の最新トレンド ~1から知るASP.NET~
Web開発の最新トレンド ~1から知るASP.NET~Web開発の最新トレンド ~1から知るASP.NET~
Web開発の最新トレンド ~1から知るASP.NET~miso- soup3
 
50分で掴み取る ASP.NET Web API パターン&テクニック
50分で掴み取る ASP.NET Web API パターン&テクニック50分で掴み取る ASP.NET Web API パターン&テクニック
50分で掴み取る ASP.NET Web API パターン&テクニックmiso- soup3
 
Hokuriku.NET ASP.NET MVC 入門 2 回目 1.編集機能を実装
Hokuriku.NET ASP.NET MVC 入門 2 回目 1.編集機能を実装Hokuriku.NET ASP.NET MVC 入門 2 回目 1.編集機能を実装
Hokuriku.NET ASP.NET MVC 入門 2 回目 1.編集機能を実装miso- soup3
 
ASP.NET WEB API 開発体験
ASP.NET WEB API 開発体験ASP.NET WEB API 開発体験
ASP.NET WEB API 開発体験miso- soup3
 
Hokuriku.NET ASP.NET MVC入門 「実践」 20120825
Hokuriku.NET ASP.NET MVC入門 「実践」 20120825 Hokuriku.NET ASP.NET MVC入門 「実践」 20120825
Hokuriku.NET ASP.NET MVC入門 「実践」 20120825 miso- soup3
 

More from miso- soup3 (8)

2016/05/01 Visual Studio with Cordova
2016/05/01 Visual Studio with Cordova2016/05/01 Visual Studio with Cordova
2016/05/01 Visual Studio with Cordova
 
2016/12/17 ASP.NET フロントエンドタスク入門
 2016/12/17 ASP.NET フロントエンドタスク入門 2016/12/17 ASP.NET フロントエンドタスク入門
2016/12/17 ASP.NET フロントエンドタスク入門
 
Visual Studio 2017 RC C# まわり
Visual Studio 2017 RC C# まわりVisual Studio 2017 RC C# まわり
Visual Studio 2017 RC C# まわり
 
Web開発の最新トレンド ~1から知るASP.NET~
Web開発の最新トレンド ~1から知るASP.NET~Web開発の最新トレンド ~1から知るASP.NET~
Web開発の最新トレンド ~1から知るASP.NET~
 
50分で掴み取る ASP.NET Web API パターン&テクニック
50分で掴み取る ASP.NET Web API パターン&テクニック50分で掴み取る ASP.NET Web API パターン&テクニック
50分で掴み取る ASP.NET Web API パターン&テクニック
 
Hokuriku.NET ASP.NET MVC 入門 2 回目 1.編集機能を実装
Hokuriku.NET ASP.NET MVC 入門 2 回目 1.編集機能を実装Hokuriku.NET ASP.NET MVC 入門 2 回目 1.編集機能を実装
Hokuriku.NET ASP.NET MVC 入門 2 回目 1.編集機能を実装
 
ASP.NET WEB API 開発体験
ASP.NET WEB API 開発体験ASP.NET WEB API 開発体験
ASP.NET WEB API 開発体験
 
Hokuriku.NET ASP.NET MVC入門 「実践」 20120825
Hokuriku.NET ASP.NET MVC入門 「実践」 20120825 Hokuriku.NET ASP.NET MVC入門 「実践」 20120825
Hokuriku.NET ASP.NET MVC入門 「実践」 20120825
 

Recently uploaded

TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 

Recently uploaded (8)

TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 

OWIN って何?

  • 1. OWIN って何? ~昨今の .NET Web 開発のイノベーション~ 矢後 比呂加 2014/5/16
  • 2. 今日の内容 昨今の Microsoft (.NET) Web 開発の イノベーション  2013/11 Visual Studio 2013 リリース  2014/4 Build 2014  2014/5 TechEd North America  2014/5 de:code ← next ! • OWIN, Katana, Project Helios, ASP.NET vNext • 課題とその解決
  • 3. ゴール • OWIN, Katana, Project Helios, ASP.NET vNext が何かを知る • それらはどのような課題を解決するのか を知る
  • 4. 概要 • 急速する Web 開発の進化への対応 • Mobile First, Cloud First ASP.NET の課題とは 現在
  • 5. 概要 OWIN & Katana (2013/11) • サーバーとアプリの疎結 • Modular / Flexible / Composable Project Helios (2014/2 alpha) • IIS における System.Web からの脱却 ASP.NET vNext • .NET vNext • ランタイム、ホスティング、アプリ、開発 エクスペリエンス等を一新した次の ASP.NET ステージ
  • 6. • 10年続く ASP.NET の歴史と課題 • これまでの取り組み • 昨今の取り組み • OWIN, Katana • Project Helios • ASP.NET vNext アジェンダ
  • 7. 2002 年(平成 14 年)ASP.NET 1.0 with .NET Framework 1.0 • Classic ASP, Windows 業務アプリ開発者むけ • .NET Framework と一緒にリリースされていく 10 年続く ASP.NET の歴史と課題
  • 8. Web Forms Web Pages MVC Web API SignalR ASP.NET 2002 年 ~ 今まで 10 数年続く ASP.NET 10 年続く ASP.NET の歴史と課題
  • 9. • HTTP 回り • HTTP Module • HTTP Handler • Session • Cache • Web Forms • Controls etc… 10 年続く ASP.NET の歴史と課題 System.Web とは
  • 10. 10 年続く ASP.NET の歴史と課題 • 全てを行うための1枚岩モデル • 全ての機能がデフォルトで ON • 肥大化、複雑化 • ブラックボックス • .NET Framework のサイクルと Web 開発のサイクルの歩調の違い • System.Web は .NET Framework の一部 • Only IIS • 古い時代の実装 System.Web 画像 : Channel9 - The Katana Project - OWIN for ASP.NET
  • 11. • 10年続く ASP.NET の歴史と課題 • これまでの取り組み • 昨今の取り組み • OWIN, Katana • Project Helios • ASP.NET vNext アジェンダ
  • 12. これまでの取り組み1 2009 年 ~ ASP.NET MVC 1 - 5 • .NET Framework のサイクルから外れる • (が System.Web に依存)
  • 13. これまでの取り組み2 2012, 2013 年 ASP.NET Web API ASP.NET SignalR • System.Web に依存しない設計 • self-host が可能となる • NuGet による配布 • ASP.NET MVC 4 も
  • 14. これまでの取り組み3 2013 年 One ASP.NET Web Forms Web Pages Single Page Apps MVC Web API SignalR ASP.NET • 1枚岩 → モジュール化 フレームワークの選択、組み合わせが可能に *any*
  • 15. これまでの取り組み まだまだ残る課題 Web Forms Web Pages Single Page Apps MVC Web API SignalR ASP.NET • System.Web への依存 • 複数のフレームワークの混在、似たような構成 • Web 構成、認証、セキュリティ、依存性の注入 etc… • IIS, self-host *any*
  • 16. • 10年続く ASP.NET の歴史と課題 • これまでの取り組み • 昨今の取り組み • OWIN, Katana • Project Helios • ASP.NET vNext アジェンダ
  • 17. OWIN とは Open Web Interface for .NET • サーバーとアプリを抽象化するインターフェイス (=仕様) App Server OWIN App Server Portable
  • 18. OWIN とは 2つの要素 • IDictionary<string, object> 環境ディクショナリ サーバーやリクエストの状態等を表す • Func<IDictionary<string, object>, Task>; App は、環境ディクショナリをもとに Task を定義 App Server
  • 19. OWIN とは ドキュメント • OWIN http://owin.org/ • 仕様書 http://owin.org/spec/owin-1.0.0.html • Owin.dll - IAppBuilder https://github.com/owin/owin/blob/master/src/Owin/IAppBuilder.cs OWIN を実装するため一つの基準のようなもの
  • 20. Katana とは • OWIN に準じた Web アプリの構築、起動するための コンポーネントやツール等のセット • Microsoft による実装 ⇔OWIN はコミュニティプロジェクト • “Katana” = “Microsoft OWIN” Katana Project – CodePlex http://katanaproject.codeplex.com/
  • 21. Katana とは Host Server Middleware Application OWIN アプリ特有の実装コード Web API/SignalR/Nancy/認証/CORS etc… Func<IDictionary<string, object>, Task>; System.Web/HttpListener/NOwin/ WebListener/Helios etc… IIS/Custom Host/OwinHost.exe
  • 22. Katana とは 目的 • Portable • Modular / Flexible / Composable • 機能は小さくコンパクトに • コンポーネントは置換でき、NuGet による迅速な更新 • それぞれの部品はニーズに合わせて組み合わせが可能 • Lightweight / Performance / Scalable • 必要最低限な構成によるリソース消費の削減 • アプリケーションに影響することなくサーバーの改善が可能
  • 23. Middleware の特徴 Host Server Middleware Request Response 連結可能 Middleware は次の Middleware の実行を制御する Katana もう少し詳しく1
  • 24. Cookie 認証 Middleware Application 有効な Request (200 OK) 無効な Request (401 Unauthorized) 参考:Understanding OWIN Forms authentication in MVC 5 Middleware による認証例
  • 26. とは言っても Host Server Middleware Application MVC 5 は System.Web に 依存するので OWIN アプ リとしては稼働できない Microsoft.Owin.Host.SystemWeb の助けにより、System.Web のパイプライ ンを Startup.cs に通している System.Web で動きながらも Middleware 使 えるZe!
  • 28. IIS は優秀だし、 でも System.Web から 脱却したい・・・
  • 29. • 10年続く ASP.NET の歴史と課題 • これまでの取り組み • 昨今の取り組み • OWIN, Katana • Project Helios • ASP.NET vNext アジェンダ
  • 30. Project Helios とは IIS 上で、System.Web パイプラインを通さずに Web アプリを稼働させるための プロジェクト IIS と self-host の双方の利点を 取り入れる NuGet : Microsoft.Owin.Host.IIS -Pre IIS Not System.Web Middleware
  • 31. Project Helios とは IIS の利点 • 10 年以上稼働してきたセキュリティ対策 • Caching • Static Files • Web Socket • ライフタイム管理 • レスポンス圧縮 • Power Shell etc…
  • 32. Project Helios とは パフォーマンスの改善 • System.Web より、2, 3 倍のスループット • System.Web より、メモリ消費 96% 削減 参考:Supplemental to ASP.NET Project “Helios”
  • 33.
  • 34. • 10年続く ASP.NET の歴史と課題 • これまでの取り組み • 昨今の取り組み • OWIN, Katana • Project Helios • ASP.NET vNext アジェンダ
  • 35. ASP.NET vNext • System.Web からの脱却 • アプリ側(MVC, Web API, Web Pages 6) • サーバー側(Helios) • Web Framework の更なる抽象化 • MVC, Web API, Web Pages の統合 • HTTP 周り(not System.Web, not System.Net.Http) • Dependency Injection 等の共通化 (※このセッションのテーマから見た内容)
  • 36. • 10年続く ASP.NET の歴史と課題 • これまでの取り組み • 昨今の取り組み • OWIN, Katana, Project Helios, ASP.NET vNext まとめ
  • 37. 10 年続く ASP.NET の歴史と課題 • 全てを行うための1枚岩モデル • 全ての機能がデフォルトで ON • 肥大化、複雑化 • ブラックボックス • .NET Framework のサイクルと Web 開発のサイクルの歩調の違い • System.Web は .NET Framework の一部 • Only IIS • 古い時代の実装 System.Web 画像 : Channel9 - The Katana Project - OWIN for ASP.NET
  • 38. OWIN & Katana (2013/11) • サーバーとアプリの疎結 • Mobular / Flexible / Composability Project Helios (2014/2 alpha) • IIS における System.Web からの脱却 ASP.NET vNext • System.Web からの完全脱却 と 更なる抽象化 • Mobile First , Cloud First へ
  • 39. OWIN って何? .NET Web 開発 イノベーション 最初のステップ