Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
OWIN って何?
~昨今の .NET Web 開発のイノベーション~
矢後 比呂加
2014/5/16
今日の内容
昨今の Microsoft (.NET) Web 開発の
イノベーション
 2013/11 Visual Studio 2013 リリース
 2014/4 Build 2014
 2014/5 TechEd North Ame...
ゴール
• 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...
• 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 年続く...
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 開発のサイクルの歩調の違い
• ...
• 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 M...
これまでの取り組み3
2013 年 One ASP.NET
Web
Forms
Web
Pages
Single
Page
Apps
MVC
Web
API
SignalR
ASP.NET
• 1枚岩 → モジュール化
フレームワークの選択、組...
これまでの取り組み
まだまだ残る課題
Web
Forms
Web
Pages
Single
Page
Apps
MVC
Web
API
SignalR
ASP.NET
• System.Web への依存
• 複数のフレームワークの混在、似たよう...
• 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 は、環...
OWIN とは
ドキュメント
• OWIN http://owin.org/
• 仕様書 http://owin.org/spec/owin-1.0.0.html
• Owin.dll - IAppBuilder
https://github....
Katana とは
• OWIN に準じた Web アプリの構築、起動するための
コンポーネントやツール等のセット
• Microsoft による実装
⇔OWIN はコミュニティプロジェクト
• “Katana” = “Microsoft OW...
Katana とは
Host
Server
Middleware
Application
OWIN
アプリ特有の実装コード
Web API/SignalR/Nancy/認証/CORS etc…
Func<IDictionary<string, ...
Katana とは
目的
• Portable
• Modular / Flexible / Composable
• 機能は小さくコンパクトに
• コンポーネントは置換でき、NuGet による迅速な更新
• それぞれの部品はニーズに合わせて組...
Middleware の特徴
Host
Server
Middleware
Request
Response
連結可能
Middleware は次の Middleware の実行を制御する
Katana もう少し詳しく1
Cookie 認証
Middleware
Application
有効な Request
(200 OK)
無効な Request
(401 Unauthorized)
参考:Understanding OWIN Forms authentic...
Startup.cs とは
Host
Server
Middleware
Application
Middleware の構成を定義する
クラス
Katana もう少し詳しく2
とは言っても
Host
Server
Middleware
Application MVC 5 は System.Web に
依存するので OWIN アプ
リとしては稼働できない
Microsoft.Owin.Host.SystemWeb
の助...
とは言っても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.Ow...
Project Helios とは
IIS の利点
• 10 年以上稼働してきたセキュリティ対策
• Caching
• Static Files
• Web Socket
• ライフタイム管理
• レスポンス圧縮
• Power Shell
...
Project Helios とは
パフォーマンスの改善
• System.Web より、2, 3 倍のスループット
• System.Web より、メモリ消費 96% 削減
参考:Supplemental to ASP.NET Project...
• 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,...
• 10年続く ASP.NET の歴史と課題
• これまでの取り組み
• 昨今の取り組み
• OWIN, Katana, Project Helios, ASP.NET vNext
まとめ
10 年続く ASP.NET の歴史と課題
• 全てを行うための1枚岩モデル
• 全ての機能がデフォルトで ON
• 肥大化、複雑化
• ブラックボックス
• .NET Framework のサイクルと
Web 開発のサイクルの歩調の違い
• ...
OWIN & Katana (2013/11)
• サーバーとアプリの疎結
• Mobular / Flexible / Composability
Project Helios (2014/2 alpha)
• IIS における System...
OWIN って何?
.NET Web 開発 イノベーション
最初のステップ
OWIN って何?
Upcoming SlideShare
Loading in …5
×

OWIN って何?

22,924 views

Published on

http://connpass.com/event/5900/
こちらの勉強会で発表した内容

Published in: Technology
  • Login to see the comments

OWIN って何?

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

×