One ASP.NET, OWIN & Katana

10,468 views

Published on

Win8.1/VS 2013リリース記念勉強会

Published in: Technology
0 Comments
13 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
10,468
On SlideShare
0
From Embeds
0
Number of Embeds
100
Actions
Shares
0
Downloads
37
Comments
0
Likes
13
Embeds 0
No embeds

No notes for slide

One ASP.NET, OWIN & Katana

  1. 1. One ASP.NET, OWIN & Katana 2013/11/09
  2. 2. 今日話すこと Visual Studio 2013 における、 ASP.NET と Web Tools の更新を紹介します ではなく… Visual Studio 2013 における、 ASP.NET と Web Tools の更新……の内、 重要である One ASP.NET, OWIN & Katana について 紹介します
  3. 3. アジェンダ  ASP.NET 更新概要  One ASP.NET  概要  New Project  Scaffolding  OWIN & Katana   Katana とは   OWIN とは ASP.NET の対応 まとめ
  4. 4. セッションの ゴール  ASP.NET の注目すべき新機能を知る One ASP.NET OWIN & Katana  急速な Web 開発の進化に対応する ASP.NET を知る
  5. 5. 対象者 ASP.NET 開発者
  6. 6. 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
  7. 7. One ASP.NET Sites Web Forms Web Pages Services Single Page Apps MVC ASP.NET ASP.NET 基盤を元に、 各フレームワークを組み合わせて構築可能。 Web API SignalR
  8. 8. One ASP.NET Services Single Page Apps MVC Web API SignalR ASP.NET “1つにまとまった“だけではない! →OWIN & Katana の説明後にて。 Nancy ???
  9. 9. One ASP.NET New Project
  10. 10. One ASP.NET New Project
  11. 11. One ASP.NET New Project
  12. 12. One ASP.NET New Project ・VS 2012 用も用意 ・認証方法の選択 ・フレームワークに依存しない認証のライブラリ ・個人アカウント ・ASP.NET メンバーシップシステム ・Social Account(Google, Twitter, Facebook, …) ・組織アカウント、Windows 認証 ・Active Directory, Office 365, オンプレミス
  13. 13. One ASP.NET スタートページ テンプレートに合わせた次のステップへのガイド
  14. 14. One ASP.NET Scaffolding 「MVC 5 依存関係」という選択肢も。 各フレームワークのコードが生成可能に。
  15. 15. One ASP.NET まとめ ・× フレームワークがみんな1つになった ○ ASP.NET を基盤にして、既存・他(Nancy 等)の フレームワークが使用できる。 → 進化する Web 開発への対応 ・前: ASP.NET = ASP.NET Web Forms ・今: ASP.NET = Web 開発総称 → OWIN の対応により次のステップへ
  16. 16. Intermezzo★Bootstrap ・プロジェクトテンプレートに Bootstrap を採用 ・レスポンシブデザイン ・テーマが選べます! CSS 入れ替えでお手軽に BootSwatch http://bootswatch.com/
  17. 17. Intermezzo★Bootstrap お遊びおすすめプラン ①テンプレートの選択「MVC」 ②App_Start/BundleConfig.cs ③App_Start/Startup.Auth.cs コメントアウト ④ http://bootswatch.com/ ⑤F5 でデバッグ実行
  18. 18. アジェンダ  ASP.NET 更新概要  One ASP.NET  概要  New Project  Scaffolding  OWIN & Katana   Katana とは   OWIN とは ASP.NET の対応 まとめ
  19. 19. OWIN & Katana Katana で ASP.NET アプリ開発を支援  OWIN とは  Katana とは  これからの ASP.NET にどのように関わるか  今回だけでなく、今後も関わってくる
  20. 20. OWIN とは Open Web Interface for .NET サーバーとアプリケーション間のインターフェイス 仕様 です http://owin.org/ OWIN プロジェクトサイト
  21. 21. OWIN とは 補足情報 ・Microsoft ではなく コミュニティによる オープンソースプロジェクト ・node.js, Rack, WSGI にインスパイアされた
  22. 22. OWIN とは 目的 ・サーバーとアプリケーションを切り離す ・新しいコンポーネントが、より簡単に開発され、 より簡単に使用される ・アプリケーションの移植を容易にする
  23. 23. OWIN とは 仕様 ~抽象的~ using AppFunc = Func<IDictionary<string, object>, Task>; 2つの要素からなる ・IDictionary<string, object> “Environment Dictionary” キーと値で、リクエスト・サーバー等の状態を表す ・Task アプリケーションが担うタスク 非同期、連結可
  24. 24. OWIN とは 仕様 ~全体のイメージ~ サーバー HTTP Request OWIN ↓ アプリケーション IDictionary<str ing, object> を設定 IDictionary<string, object> を元に Task を作る HTTP Response ※イメージであり実際の処理の順番とは異なります。
  25. 25. 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
  26. 26. OWIN まとめ ・サーバーとアプリケーションのインターフェイス ・コミュニティによるオープンソースプロジェクト ・IDictionary<string, object>, Task ↑↑ここまで OWIN ---------------------ここから Katana ↓↓ ・OWIN の実装 ・Microsoft によるプロジェクト
  27. 27. アジェンダ  ASP.NET 更新概要  One ASP.NET  概要  New Project  Scaffolding  OWIN & Katana   Katana とは   OWIN とは ASP.NET の対応 まとめ
  28. 28. Katana とは ・OWIN に対応するための、 コンポーネント・ フレームワークのセットのこと ・Microsoft.Owin 名前空間にある ライブラリが含まれている Katana Project http://katanaproject.codeplex.com/
  29. 29. Katana とは 補足情報 ・Microsoft が提供 ・オープンソース、NuGet による配布
  30. 30. Katana とは 目的 ・今までの ASP.NET は、IIS(System.Web)に依存している。 → IIS との切り離し → ASP.NET の Web 開発の進化への対応 ・コンポーネントの再利用性 ・認証、キャッシュ、ロギング等 ・Azure 等のクラウドへの対応
  31. 31. Katana とは どのように実装しているか 4 つの層に分けた Host Server OWIN 起動、読み込み ネットワークソケット解放、 IDictionary<string, object> Middleware Task を公開 Application 開発者が書くコード
  32. 32. 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 に含まれるコンポーネント
  33. 33. Katana とは 目標  Portable   Modular / Flexible   コンポーネントは置換できる 機能は小さく、コンパクト、取り外しを容易に Lightweight / Performant / Scalable  高パフォーマンスなサーバーに、アプリケーションを壊すこ となく置換できる
  34. 34. Katana とは OWIN Host Server Middleware / Application
  35. 35. Katana とは まとめ ・Microsoft による OWIN 対応のためのコンポーネント・ フレームワークのセット ・Host, Server, Middleware, Application の 4 つの層に 分けられる ・各コンポーネントの入れ替えが容易
  36. 36. アジェンダ  ASP.NET 更新概要  One ASP.NET  概要  New Project  Scaffolding  OWIN & Katana   Katana とは   OWIN とは ASP.NET の対応 まとめ
  37. 37. OWIN & Katana ASP.NET の対応 OWIN 非対応:ASP.NET Web Forms, MVC(現在) IIS System. Web.dll Web Forms, MVC OWIN で切り離せないっ IIS 以外で Host できない
  38. 38. OWIN & Katana ASP.NET の対応 OWIN 対応:ASP.NET Web API, SignalR OWIN 何でも OK Web API, SignalR
  39. 39. OWIN & Katana ASP.NET の対応 が! ASP.NET MVC 5 のコードを見ると… OWIN に関連するコードがある! なぜか?
  40. 40. Katana とは ASP.NET の対応 たとえ、IIS でホストされていても、 認証等の Middleware を適用させるため OWIN IIS System. Web.dll 認証 ASP.NET MVC (Middleware) (Middleware)
  41. 41. Katana とは ASP.NET の対応 IIS で Host しているのに、OWIN の Middleware が作用する かの仕組み OWIN IIS System. Web.dll 認証 ASP.NET MVC (Middleware) (Middleware) Microsoft.Owin.Hos t.SystemWeb.dll (Katana)
  42. 42. Katana とは Middleware ・全処理共通の Middleware と、 個別フレームワークの Middleware がある OWIN Middleware 認証, キャッシュ, ロギング ASP.NET MVC, ASP.NET Web API, SignalR
  43. 43. Katana とは Startup.cs ・OWIN の処理に Middleware を登録するため の Katana による設定クラス OWIN Startup.cs (Katana) Middleware/ Application
  44. 44. Katana とは Middleware ・Startup.cs にて、Use…() メソッドにより、 Middleware を登録する ・いくつも連結可能 ・アプリケーションのコードを壊すことなく、改善、 入れ替えができる。 ・認証、キャッシュ、ロギングなど、Web フレームワーク 共通の処理をコンポーネントとして登録できる これからの ASP.NET では、Web アプリ共通の処理が OWIN の Middleware として、更新・改善されていく (だろう)
  45. 45. 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 は今後も目が離せない。
  46. 46. OWIN & Katana デモ
  47. 47. OWIN & Katana 例① OwinHost.exe (Katana) OWIN Microsoft.OwinHost. HttpListener.dll (Katana) 単純なコード (Middleware)
  48. 48. OWIN & Katana 例② IIS OWIN Microsoft.Owin.Host .SystemWeb.dll (Katana) 単純なコード (Middleware)
  49. 49. OWIN & Katana 例③ OwinHost.exe (Katana) OWIN Microsoft.OwinHost. HttpListener.dll (Katana) ASP.NET Web API (Middleware)
  50. 50. 今回のまとめ
  51. 51. One ASP.NET Web Forms Web Pages Single Page Apps MVC Web API SignalR Any ASP.NET 限定されたフレームワークだけでは、Web の進化に対応でき ない
  52. 52. OWIN & Katana OWIN OWIN & Katana / Middleware Host Server Application
  53. 53. 今回のまとめ ・One ASP.NET と OWIN & Katana は、 進化する Web 開発に対応するための ASP.NET における重要なアップデート内容。 ・次々と短くなっていくリリースの間隔… ・→柔軟に対応 ・ASP.NET を上手く利用して 最適な Web 開発を。

×