並べてみよう、HTTPベースの.NET開発技術、全部。     どっとねっとふぁん       小野 修司
並べてみた          ASP.NET                              WCF Data   WCF RIA    WCF WebWebForm           MVC                    ...
ベースの技術でわけてみた                                               WCF Data   WCF RIA    WCF Web                                  ...
バージョンをいれてみた           ASP.NET                              WCF Data   WCF RIA    WCF WebWebForm            MVC            ...
ソースの提供でわけてみた          ASP.NET                                                    WCF Web                    WebPages      ...
ホスティングでわけてみた                                                                     WCF Web                                  ...
レスポンスでわけてみた                                                 SOAP                                                          ...
ASP.NETとWCFの関係      VSUG DAY - Winter 2012.01.28
ASP.NETとWCFASP.NET                WCF• IIS上で実行              • セルフホスティング                          Windowsサービス              ...
HTTPパイプライン  ブラウザ • リクエスト                   HttpContext                        認証                        承認                ...
ASP.NET 互換モード• Web.config に設定<system.serviceModel> <serviceHostingEnvironment aspNetCompatibilityEnabled="true" /></system...
各技術の特徴    VSUG DAY - Winter 2012.01.28
WebForm                                                 aspxブラウザ • リクエスト                                                  ...
ASP.NET MVC                                                            チーム開発時にブラウザ • リクエスト               HttpContext      ...
WebPages           HttpContext                                  学習が容易                                                     ...
WCF(Windows Communication Foundation)• すべてのデータ通信の基礎となるものとして提供された技術• ABC要素を設定  – A:アドレス     • 接続のためのアドレス  – B:バインディング     •...
WCF Data Services• データベースをそのままWebサービスに公開  – テンプレートでDataServiceクラスを追加し、接続先とな    るデータベースを指定する    • ObjectContextを指定        –...
WCF Data Serviceのカスタマイズ• インターセプターを利用してテーブルの処理にロジックをは  さむ – QueryInterceptor属性    • データ送出時の処理    • ラムダ式を返す – ChangeIntercep...
WCF RIA Services• Silverlightアプリケーションでの利用が主• DomainServiceクラスのメソッドをWebサービスとして公開  – ウィザードでDomainServiceクラス/メタデータクラスを追加    し...
WCF Web API• WCF Web HTTP プログラミング モデルをより簡単に記述で  きるようにしたもの  – CodePlexにソースコード/ドキュメントを公開  – NuGetよりWebApi.allをプロジェクトに追加して利用•...
まとめ          ASP.NET                              WCF Data   WCF RIA    WCF WebWebForm           MVC                    We...
Upcoming SlideShare
Loading in …5
×

20120128

2,294 views
2,234 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,294
On SlideShare
0
From Embeds
0
Number of Embeds
1,443
Actions
Shares
0
Downloads
8
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

20120128

  1. 1. 並べてみよう、HTTPベースの.NET開発技術、全部。 どっとねっとふぁん 小野 修司
  2. 2. 並べてみた ASP.NET WCF Data WCF RIA WCF WebWebForm MVC WebPages WCF Services Services API VSUG DAY - Winter 2012.01.28
  3. 3. ベースの技術でわけてみた WCF Data WCF RIA WCF Web WCF Services Services API ASP.NETWebForm WebPages MVC VSUG DAY - Winter 2012.01.28
  4. 4. バージョンをいれてみた ASP.NET WCF Data WCF RIA WCF WebWebForm MVC WebPages WCF Services Services API 4 3 4 4 V1.0 SP2 Preview 6(4.5 DP) (4DP) (2DP) (4.5 DP) (4.5 DP) VS11 ( TraningKit に記載 ) VSUG DAY - Winter 2012.01.28
  5. 5. ソースの提供でわけてみた ASP.NET WCF Web WebPages MVC API WCF Data WCF RIAWebForm WCF Services Services VSUG DAY - Winter 2012.01.28
  6. 6. ホスティングでわけてみた WCF Web WCF API ASP.NET WCF Data WCF RIAWebForm WebPages Services MVC Services VSUG DAY - Winter 2012.01.28
  7. 7. レスポンスでわけてみた SOAP (Toolkit) JSON (Toolkit)WebForm ASP.NET WebPages ATOM MVC JSON JSON (表示のみ) asmx(SOAP) バイン JSONResult ディング ATOM バイナリ ATOM による ashx WCF Data WCF RIA WCF Web WCF Services Services API cshtml ViewResult vbhtml aspx ※ATOM、JSONと記述した箇所 は ODataに対応 VSUG DAY - Winter 2012.01.28
  8. 8. ASP.NETとWCFの関係 VSUG DAY - Winter 2012.01.28
  9. 9. ASP.NETとWCFASP.NET WCF• IIS上で実行 • セルフホスティング Windowsサービス IIS WAS(Windowsプロセ ス アクティブ化サービ• HTTPパイプライン ス) • HTTPパイプラインに統 合すること”も”できる (ASP.NET 互換モー VSUG DAY - Winter 2012.01.28
  10. 10. HTTPパイプライン ブラウザ • リクエスト HttpContext 認証 承認 キャッシュ解決 I ページ処理の実行/ I セッション情報取得 Actionメソッド呼び出 S し ProcessRequest 等... セッション情報格納 キャッシュ情報格納 ブラウザ • レスポンス VSUG DAY - Winter 2012.01.28
  11. 11. ASP.NET 互換モード• Web.config に設定<system.serviceModel> <serviceHostingEnvironment aspNetCompatibilityEnabled="true" /></system.serviceModel>• WCFから認証、セッション等の利用が可能になる• WCF Data Services/WCF RIA Services では機能の追加時に設定 される VSUG DAY - Winter 2012.01.28
  12. 12. 各技術の特徴 VSUG DAY - Winter 2012.01.28
  13. 13. WebForm aspxブラウザ • リクエスト コントロールの活用が HttpContext 初期化 キーポイントとなる 認証 リクエスト読 み込み 承認 コントロール page ツリー生成 キャッシュ解決 コントロール I イベント I セッション情報取得 ポストバック イベント S ProcessRequest レンダリング セッション情報格納 SOAPベースの asmx Webサービス キャッシュ情報格納ブラウザ • レスポンス ashx 基本形 手書きなので自由度高 い VSUG DAY - Winter 2012.01.28
  14. 14. ASP.NET MVC チーム開発時にブラウザ • リクエスト HttpContext MvcHandler プログラムの記述方法を 合わせやすい Actionメソッ ド (Controller) I I Model S ViewResult JSONResult View JSON VSUG DAY - Winter 2012.01.28
  15. 15. WebPages HttpContext 学習が容易 ヘルパーが作りやすい cshtml I vbhtml I S Helper VSUG DAY - Winter 2012.01.28
  16. 16. WCF(Windows Communication Foundation)• すべてのデータ通信の基礎となるものとして提供された技術• ABC要素を設定 – A:アドレス • 接続のためのアドレス – B:バインディング • プロトコル、エンコーディング等をまとめたもの • 用意されたものが各種存在。独自に作成も可能 – C:コントラクト • やりとりするデータの型を決めるもの• 汎用型 – 設定が煩雑 – HTTPベースでのデータ通信に特化した使いやすいものが派生 • WCF Data Services(ADO.NET対応) • WCF RIA Services(Silverlight対応) – WCF Web HTTP プログラミングモデル(MSDN ドキュメントより) • SOAP以外のWebサービス形式に対応 • WCF Web API がCodePlexで提供 VSUG DAY - Winter 2012.01.28
  17. 17. WCF Data Services• データベースをそのままWebサービスに公開 – テンプレートでDataServiceクラスを追加し、接続先とな るデータベースを指定する • ObjectContextを指定 – 基本的にはEntityFrameworkの利用が前提 – IQueryable/IUpdatableに対応したクラスであれば利用可能 – データの送出だけならIEnumerableでも可能 – テーブル名のURLに対してCRUD • HTTPメソッドでコントロール – POST/GET/PUT/DELETE – アクセス制御もテーブル名単位で行う • config.SetEntitySetAccessRule("*", EntitySetRights.All); – ATOM/JSONの切り替えはリクエストのHTTPヘッダー による VSUG DAY - Winter 2012.01.28
  18. 18. WCF Data Serviceのカスタマイズ• インターセプターを利用してテーブルの処理にロジックをは さむ – QueryInterceptor属性 • データ送出時の処理 • ラムダ式を返す – ChangeInterceptor属性 • データ追加/更新/削除時の処理 • 操作を特定するには引数で判断する• サービス操作を追加する – WebGet属性 • GETメソッドに対応 • IQueryable を返す – WebInvoke属性 • メソッドは指定可能(既定値はPOST) – サービスのアクセス許可が必要 • config.SetServiceOperationAccessRule("GetShop", ServiceOperationRights.All); VSUG DAY - Winter 2012.01.28
  19. 19. WCF RIA Services• Silverlightアプリケーションでの利用が主• DomainServiceクラスのメソッドをWebサービスとして公開 – ウィザードでDomainServiceクラス/メタデータクラスを追加 し、ビルド時にSilverlightクライアント側のコードを自動生成 • DomainServiceクラス内に処理を追加して記述することが可能 • DataAnnotationによる入力値検証はクライアント側のコードにも反映さ れる – デフォルトではバイナリでの通信• OData(ATOM)によるデータ公開が可能 – 追加/更新/削除には対応しない• Toolkitを使用することでSOAP/JSONに対応 VSUG DAY - Winter 2012.01.28
  20. 20. WCF Web API• WCF Web HTTP プログラミング モデルをより簡単に記述で きるようにしたもの – CodePlexにソースコード/ドキュメントを公開 – NuGetよりWebApi.allをプロジェクトに追加して利用• データをPOCOで定義し、公開するメソッドを作成する – WebGet属性、WebInvoke属性を利用 – アクセスするURLは上記属性の定義内で設定 – 返り値や引数としてPOCOを利用できる – HttpStatusCodeを返すことができる – ATOM/JSONの切り替えはリクエストのHTTPヘッダーによる• ASP.NET MVCへの組み込みも容易 VSUG DAY - Winter 2012.01.28
  21. 21. まとめ ASP.NET WCF Data WCF RIA WCF WebWebForm MVC WebPages WCF Services Services API VSUG DAY - Winter 2012.01.28

×