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

なぜOpenID Connectが必要となったのか、その歴史的背景
なぜOpenID Connectが必要となったのか、その歴史的背景なぜOpenID Connectが必要となったのか、その歴史的背景
なぜOpenID Connectが必要となったのか、その歴史的背景Tatsuo Kudo
 
SAML / OpenID Connect / OAuth / SCIM 技術解説 - ID&IT 2014 #idit2014
SAML / OpenID Connect / OAuth / SCIM 技術解説  - ID&IT 2014 #idit2014SAML / OpenID Connect / OAuth / SCIM 技術解説  - ID&IT 2014 #idit2014
SAML / OpenID Connect / OAuth / SCIM 技術解説 - ID&IT 2014 #idit2014Nov Matake
 
CloudWatchの使い方
CloudWatchの使い方CloudWatchの使い方
CloudWatchの使い方ShinsukeYokota
 
IDA,VC,DID関連仕様 最新情報 - OpenID BizDay #15
IDA,VC,DID関連仕様 最新情報 - OpenID BizDay #15IDA,VC,DID関連仕様 最新情報 - OpenID BizDay #15
IDA,VC,DID関連仕様 最新情報 - OpenID BizDay #15OpenID Foundation Japan
 
IAM Roles Anywhereのない世界とある世界(2022年のAWSアップデートを振り返ろう ~Season 4~ 発表資料)
IAM Roles Anywhereのない世界とある世界(2022年のAWSアップデートを振り返ろう ~Season 4~ 発表資料)IAM Roles Anywhereのない世界とある世界(2022年のAWSアップデートを振り返ろう ~Season 4~ 発表資料)
IAM Roles Anywhereのない世界とある世界(2022年のAWSアップデートを振り返ろう ~Season 4~ 発表資料)NTT DATA Technology & Innovation
 
OAuth / OpenID Connectを中心とするAPIセキュリティについて #yuzawaws
OAuth / OpenID Connectを中心とするAPIセキュリティについて #yuzawawsOAuth / OpenID Connectを中心とするAPIセキュリティについて #yuzawaws
OAuth / OpenID Connectを中心とするAPIセキュリティについて #yuzawawsTatsuo Kudo
 
[AKIBA.AWS] VPCをネットワーク図で理解してみる
[AKIBA.AWS] VPCをネットワーク図で理解してみる[AKIBA.AWS] VPCをネットワーク図で理解してみる
[AKIBA.AWS] VPCをネットワーク図で理解してみるShuji Kikuchi
 
Azure ADアプリケーションを使用した認証のあれやこれ
Azure ADアプリケーションを使用した認証のあれやこれAzure ADアプリケーションを使用した認証のあれやこれ
Azure ADアプリケーションを使用した認証のあれやこれDevTakas
 
AWS Wavelength最新情報(2020/12)
AWS Wavelength最新情報(2020/12)AWS Wavelength最新情報(2020/12)
AWS Wavelength最新情報(2020/12)Kentaro Matsumoto
 
今なら間に合う分散型IDとEntra Verified ID
今なら間に合う分散型IDとEntra Verified ID今なら間に合う分散型IDとEntra Verified ID
今なら間に合う分散型IDとEntra Verified IDNaohiro Fujie
 
Azure Media Services 大全
Azure Media Services 大全Azure Media Services 大全
Azure Media Services 大全Daiyu Hatakeyama
 
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜Masaru Kurahayashi
 
Azure API Management 俺的マニュアル
Azure API Management 俺的マニュアルAzure API Management 俺的マニュアル
Azure API Management 俺的マニュアル貴志 上坂
 
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAkihiro Kuwano
 
AWS設計ガイドラインで取り組むクラウドシフト
AWS設計ガイドラインで取り組むクラウドシフトAWS設計ガイドラインで取り組むクラウドシフト
AWS設計ガイドラインで取り組むクラウドシフトTrainocate Japan, Ltd.
 
【de:code 2020】 Azure Red hat OpenShift (ARO) によるシステムアーキテクチャ構築の実践
【de:code 2020】 Azure Red hat OpenShift (ARO) によるシステムアーキテクチャ構築の実践【de:code 2020】 Azure Red hat OpenShift (ARO) によるシステムアーキテクチャ構築の実践
【de:code 2020】 Azure Red hat OpenShift (ARO) によるシステムアーキテクチャ構築の実践日本マイクロソフト株式会社
 
AD FS deep dive - claim rule set
AD FS deep dive - claim rule setAD FS deep dive - claim rule set
AD FS deep dive - claim rule setjunichi anno
 

What's hot (20)

なぜOpenID Connectが必要となったのか、その歴史的背景
なぜOpenID Connectが必要となったのか、その歴史的背景なぜOpenID Connectが必要となったのか、その歴史的背景
なぜOpenID Connectが必要となったのか、その歴史的背景
 
Amazon VPC VPN接続設定 参考資料
Amazon VPC VPN接続設定 参考資料Amazon VPC VPN接続設定 参考資料
Amazon VPC VPN接続設定 参考資料
 
SAML / OpenID Connect / OAuth / SCIM 技術解説 - ID&IT 2014 #idit2014
SAML / OpenID Connect / OAuth / SCIM 技術解説  - ID&IT 2014 #idit2014SAML / OpenID Connect / OAuth / SCIM 技術解説  - ID&IT 2014 #idit2014
SAML / OpenID Connect / OAuth / SCIM 技術解説 - ID&IT 2014 #idit2014
 
CloudWatchの使い方
CloudWatchの使い方CloudWatchの使い方
CloudWatchの使い方
 
IDA,VC,DID関連仕様 最新情報 - OpenID BizDay #15
IDA,VC,DID関連仕様 最新情報 - OpenID BizDay #15IDA,VC,DID関連仕様 最新情報 - OpenID BizDay #15
IDA,VC,DID関連仕様 最新情報 - OpenID BizDay #15
 
IAM Roles Anywhereのない世界とある世界(2022年のAWSアップデートを振り返ろう ~Season 4~ 発表資料)
IAM Roles Anywhereのない世界とある世界(2022年のAWSアップデートを振り返ろう ~Season 4~ 発表資料)IAM Roles Anywhereのない世界とある世界(2022年のAWSアップデートを振り返ろう ~Season 4~ 発表資料)
IAM Roles Anywhereのない世界とある世界(2022年のAWSアップデートを振り返ろう ~Season 4~ 発表資料)
 
OAuth / OpenID Connectを中心とするAPIセキュリティについて #yuzawaws
OAuth / OpenID Connectを中心とするAPIセキュリティについて #yuzawawsOAuth / OpenID Connectを中心とするAPIセキュリティについて #yuzawaws
OAuth / OpenID Connectを中心とするAPIセキュリティについて #yuzawaws
 
[AKIBA.AWS] VPCをネットワーク図で理解してみる
[AKIBA.AWS] VPCをネットワーク図で理解してみる[AKIBA.AWS] VPCをネットワーク図で理解してみる
[AKIBA.AWS] VPCをネットワーク図で理解してみる
 
Azure ADアプリケーションを使用した認証のあれやこれ
Azure ADアプリケーションを使用した認証のあれやこれAzure ADアプリケーションを使用した認証のあれやこれ
Azure ADアプリケーションを使用した認証のあれやこれ
 
AWS Wavelength最新情報(2020/12)
AWS Wavelength最新情報(2020/12)AWS Wavelength最新情報(2020/12)
AWS Wavelength最新情報(2020/12)
 
今なら間に合う分散型IDとEntra Verified ID
今なら間に合う分散型IDとEntra Verified ID今なら間に合う分散型IDとEntra Verified ID
今なら間に合う分散型IDとEntra Verified ID
 
AWS BlackBelt AWS上でのDDoS対策
AWS BlackBelt AWS上でのDDoS対策AWS BlackBelt AWS上でのDDoS対策
AWS BlackBelt AWS上でのDDoS対策
 
Azure Media Services 大全
Azure Media Services 大全Azure Media Services 大全
Azure Media Services 大全
 
KeycloakでAPI認可に入門する
KeycloakでAPI認可に入門するKeycloakでAPI認可に入門する
KeycloakでAPI認可に入門する
 
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
 
Azure API Management 俺的マニュアル
Azure API Management 俺的マニュアルAzure API Management 俺的マニュアル
Azure API Management 俺的マニュアル
 
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティス
 
AWS設計ガイドラインで取り組むクラウドシフト
AWS設計ガイドラインで取り組むクラウドシフトAWS設計ガイドラインで取り組むクラウドシフト
AWS設計ガイドラインで取り組むクラウドシフト
 
【de:code 2020】 Azure Red hat OpenShift (ARO) によるシステムアーキテクチャ構築の実践
【de:code 2020】 Azure Red hat OpenShift (ARO) によるシステムアーキテクチャ構築の実践【de:code 2020】 Azure Red hat OpenShift (ARO) によるシステムアーキテクチャ構築の実践
【de:code 2020】 Azure Red hat OpenShift (ARO) によるシステムアーキテクチャ構築の実践
 
AD FS deep dive - claim rule set
AD FS deep dive - claim rule setAD FS deep dive - claim rule set
AD FS deep dive - claim rule set
 

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

新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdffurutsuka
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directoryosamut
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 

Recently uploaded (9)

新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdf
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 

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 開発 イノベーション 最初のステップ