×
  • Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
 

OWIN って何?

on

  • 448 views

http://connpass.com/event/5900/

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

Statistics

Views

Total Views
448
Views on SlideShare
339
Embed Views
109

Actions

Likes
6
Downloads
3
Comments
0

1 Embed 109

https://twitter.com 109

Accessibility

Categories

Upload Details

Uploaded via SlideShare as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
Post Comment
Edit your comment

    OWIN って何? OWIN って何? Presentation Transcript

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