SlideShare ist ein Scribd-Unternehmen logo
1 von 21
並べてみよう、HTTPベースの
.NET開発技術、全部。


     どっとねっとふぁん
       小野 修司
並べてみた




          ASP.NET                              WCF Data   WCF RIA    WCF Web
WebForm
           MVC
                    WebPages      WCF          Services   Services     API




                        VSUG DAY - Winter 2012.01.28
ベースの技術でわけてみた




                                               WCF Data   WCF RIA    WCF Web
                                   WCF         Services   Services     API




          ASP.NET
WebForm             WebPages
           MVC




                        VSUG DAY - Winter 2012.01.28
バージョンをいれてみた




           ASP.NET                              WCF Data   WCF RIA    WCF Web
WebForm
            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
ソースの提供でわけてみた




          ASP.NET                                                    WCF Web
                    WebPages
           MVC                                                         API




                                               WCF Data   WCF RIA
WebForm                           WCF          Services   Services




                        VSUG DAY - Winter 2012.01.28
ホスティングでわけてみた




                                                                     WCF Web
                                  WCF                                  API

          ASP.NET                              WCF Data   WCF RIA
WebForm             WebPages
                                               Services
           MVC                                            Services




                        VSUG DAY - Winter 2012.01.28
レスポンスでわけてみた                                                 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
ASP.NETとWCFの関係




      VSUG DAY - Winter 2012.01.28
ASP.NETとWCF


ASP.NET                WCF
• IIS上で実行              • セルフホスティング
                          Windowsサービス
                          IIS
                          WAS(Windowsプロセ
                       ス
                             アクティブ化サービ
• HTTPパイプライン           ス)

                             • HTTPパイプラインに統
                                 合すること”も”できる
                                    (ASP.NET 互換モー
              VSUG DAY - Winter 2012.01.28
HTTPパイプライン


  ブラウザ • リクエスト
                   HttpContext

                        認証


                        承認


                    キャッシュ解決
           I                                       ページ処理の実行/
           I       セッション情報取得                       Actionメソッド呼び出
           S                                       し
                   ProcessRequest                    等...

                   セッション情報格納


                   キャッシュ情報格納

  ブラウザ   • レスポンス




                    VSUG DAY - Winter 2012.01.28
ASP.NET 互換モード

• Web.config に設定
<system.serviceModel>
 <serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
</system.serviceModel>

• WCFから認証、セッション等の利用が可能になる
• WCF Data Services/WCF RIA Services では機能の追加時に設定
  される




                      VSUG DAY - Winter 2012.01.28
各技術の特徴




    VSUG DAY - Winter 2012.01.28
WebForm

                                                 aspx
ブラウザ • リクエスト
                                                            コントロールの活用が
                 HttpContext
                                                   初期化
                                                            キーポイントとなる
                      認証
                                                 リクエスト読
                                                  み込み

                      承認
                                                 コントロール          page
                                                  ツリー生成


                  キャッシュ解決                        コントロール
         I                                        イベント


         I       セッション情報取得                       ポストバック
                                                  イベント
         S
                 ProcessRequest                  レンダリング



                 セッション情報格納
                                                           SOAPベースの
                                                 asmx      Webサービス
                 キャッシュ情報格納

ブラウザ   • レスポンス
                                                 ashx      基本形
                                                           手書きなので自由度高
                                                           い
                            VSUG DAY - Winter 2012.01.28
ASP.NET MVC

                                                            チーム開発時に
ブラウザ • リクエスト
               HttpContext
                                         MvcHandler         プログラムの記述方法を
                                                            合わせやすい


                                         Actionメソッ
                                              ド
                                          (Controller)
        I
        I                                           Model
        S

                                          ViewResult        JSONResult




                                             View             JSON


                         VSUG DAY - Winter 2012.01.28
WebPages


           HttpContext                                  学習が容易
                                                        ヘルパーが作りやすい



                                                    cshtml
    I                                               vbhtml
    I
    S



                                                      Helper




                     VSUG DAY - Winter 2012.01.28
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
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
WCF Data Serviceのカスタマイズ

• インターセプターを利用してテーブルの処理にロジックをは
  さむ
 – QueryInterceptor属性
    • データ送出時の処理
    • ラムダ式を返す
 – ChangeInterceptor属性
    • データ追加/更新/削除時の処理
    • 操作を特定するには引数で判断する

• サービス操作を追加する
 – WebGet属性
    • GETメソッドに対応
    • IQueryable を返す
 – WebInvoke属性
    • メソッドは指定可能(既定値はPOST)
 – サービスのアクセス許可が必要
    • config.SetServiceOperationAccessRule("GetShop", ServiceOperationRights.All);



                          VSUG DAY - Winter 2012.01.28
WCF RIA Services

• Silverlightアプリケーションでの利用が主

• DomainServiceクラスのメソッドをWebサービスとして公開
  – ウィザードでDomainServiceクラス/メタデータクラスを追加
    し、ビルド時にSilverlightクライアント側のコードを自動生成
    • DomainServiceクラス内に処理を追加して記述することが可能
    • DataAnnotationによる入力値検証はクライアント側のコードにも反映さ
      れる
  – デフォルトではバイナリでの通信

• OData(ATOM)によるデータ公開が可能
  – 追加/更新/削除には対応しない

• Toolkitを使用することでSOAP/JSONに対応




              VSUG DAY - Winter 2012.01.28
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
まとめ




          ASP.NET                              WCF Data   WCF RIA    WCF Web
WebForm
           MVC
                    WebPages      WCF          Services   Services     API




                        VSUG DAY - Winter 2012.01.28

Weitere ähnliche Inhalte

Was ist angesagt?

はじめてのASP.NET MVC5
はじめてのASP.NET MVC5はじめてのASP.NET MVC5
はじめてのASP.NET MVC5Tomo Mizoe
 
はじめての ASP.NET MVC
はじめての ASP.NET MVCはじめての ASP.NET MVC
はじめての ASP.NET MVCjz5 MATSUE
 
jQuery/Html5/ASP.NET MVC 対応コンポーネントを用いたデバイス対応業務アプリケーション開発
jQuery/Html5/ASP.NET MVC 対応コンポーネントを用いたデバイス対応業務アプリケーション開発jQuery/Html5/ASP.NET MVC 対応コンポーネントを用いたデバイス対応業務アプリケーション開発
jQuery/Html5/ASP.NET MVC 対応コンポーネントを用いたデバイス対応業務アプリケーション開発Daizen Ikehara
 
iOS の通信における認証の種類とその取り扱い
iOS の通信における認証の種類とその取り扱いiOS の通信における認証の種類とその取り扱い
iOS の通信における認証の種類とその取り扱いniwatako
 
A 1-2 One ASP.NET - ASP.NET Web Stack
A 1-2 One ASP.NET - ASP.NET Web StackA 1-2 One ASP.NET - ASP.NET Web Stack
A 1-2 One ASP.NET - ASP.NET Web StackGoAzure
 
クライアントサイドMVVMアーキテクチャとVue.jsをまとめたよ
クライアントサイドMVVMアーキテクチャとVue.jsをまとめたよクライアントサイドMVVMアーキテクチャとVue.jsをまとめたよ
クライアントサイドMVVMアーキテクチャとVue.jsをまとめたよSeki Yousuke
 
今からでも遅くない! React事始め
今からでも遅くない! React事始め今からでも遅くない! React事始め
今からでも遅くない! React事始めynaruta
 
Service worker が拓く mobile web の新しいかたち
Service worker が拓く mobile web の新しいかたちService worker が拓く mobile web の新しいかたち
Service worker が拓く mobile web の新しいかたちKinuko Yasuda
 
iOS 8のWebKit Frameworkでアプリ内ブラウザがどう変わる?
iOS 8のWebKit Frameworkでアプリ内ブラウザがどう変わる?iOS 8のWebKit Frameworkでアプリ内ブラウザがどう変わる?
iOS 8のWebKit Frameworkでアプリ内ブラウザがどう変わる?Kosuke Ogawa
 
Build insider testingwithvs
Build insider testingwithvsBuild insider testingwithvs
Build insider testingwithvsTomoyuki Iwade
 
Asp Net Mvc 基礎のキソ
Asp Net Mvc 基礎のキソAsp Net Mvc 基礎のキソ
Asp Net Mvc 基礎のキソYoshitaka Seo
 
WebフレームワークXSS対策の自動化
WebフレームワークXSS対策の自動化WebフレームワークXSS対策の自動化
WebフレームワークXSS対策の自動化Yoshihiro Ura
 
はじめてのVue.js
はじめてのVue.jsはじめてのVue.js
はじめてのVue.jskamiyam .
 
SharePoint 2010 を使ったクラウドアプリ開発
SharePoint 2010 を使ったクラウドアプリ開発SharePoint 2010 を使ったクラウドアプリ開発
SharePoint 2010 を使ったクラウドアプリ開発Tusyoshi Matsuzaki
 
Service workerとwebプッシュ通知
Service workerとwebプッシュ通知Service workerとwebプッシュ通知
Service workerとwebプッシュ通知zaru sakuraba
 
どうなる?Visual Studioの クライアントサイド web開発の今後
どうなる?Visual Studioの クライアントサイド web開発の今後どうなる?Visual Studioの クライアントサイド web開発の今後
どうなる?Visual Studioの クライアントサイド web開発の今後Narami Kiyokura
 
React.js
React.jsReact.js
React.jsyouhe_
 
オフラインファーストの思想と実践
オフラインファーストの思想と実践オフラインファーストの思想と実践
オフラインファーストの思想と実践Shumpei Shiraishi
 

Was ist angesagt? (20)

はじめてのASP.NET MVC5
はじめてのASP.NET MVC5はじめてのASP.NET MVC5
はじめてのASP.NET MVC5
 
はじめての ASP.NET MVC
はじめての ASP.NET MVCはじめての ASP.NET MVC
はじめての ASP.NET MVC
 
jQuery/Html5/ASP.NET MVC 対応コンポーネントを用いたデバイス対応業務アプリケーション開発
jQuery/Html5/ASP.NET MVC 対応コンポーネントを用いたデバイス対応業務アプリケーション開発jQuery/Html5/ASP.NET MVC 対応コンポーネントを用いたデバイス対応業務アプリケーション開発
jQuery/Html5/ASP.NET MVC 対応コンポーネントを用いたデバイス対応業務アプリケーション開発
 
iOS WebView App
iOS WebView AppiOS WebView App
iOS WebView App
 
iOS の通信における認証の種類とその取り扱い
iOS の通信における認証の種類とその取り扱いiOS の通信における認証の種類とその取り扱い
iOS の通信における認証の種類とその取り扱い
 
A 1-2 One ASP.NET - ASP.NET Web Stack
A 1-2 One ASP.NET - ASP.NET Web StackA 1-2 One ASP.NET - ASP.NET Web Stack
A 1-2 One ASP.NET - ASP.NET Web Stack
 
クライアントサイドMVVMアーキテクチャとVue.jsをまとめたよ
クライアントサイドMVVMアーキテクチャとVue.jsをまとめたよクライアントサイドMVVMアーキテクチャとVue.jsをまとめたよ
クライアントサイドMVVMアーキテクチャとVue.jsをまとめたよ
 
今からでも遅くない! React事始め
今からでも遅くない! React事始め今からでも遅くない! React事始め
今からでも遅くない! React事始め
 
Service worker が拓く mobile web の新しいかたち
Service worker が拓く mobile web の新しいかたちService worker が拓く mobile web の新しいかたち
Service worker が拓く mobile web の新しいかたち
 
iOS 8のWebKit Frameworkでアプリ内ブラウザがどう変わる?
iOS 8のWebKit Frameworkでアプリ内ブラウザがどう変わる?iOS 8のWebKit Frameworkでアプリ内ブラウザがどう変わる?
iOS 8のWebKit Frameworkでアプリ内ブラウザがどう変わる?
 
Build insider testingwithvs
Build insider testingwithvsBuild insider testingwithvs
Build insider testingwithvs
 
Asp Net Mvc 基礎のキソ
Asp Net Mvc 基礎のキソAsp Net Mvc 基礎のキソ
Asp Net Mvc 基礎のキソ
 
Learning jQuery
Learning jQueryLearning jQuery
Learning jQuery
 
WebフレームワークXSS対策の自動化
WebフレームワークXSS対策の自動化WebフレームワークXSS対策の自動化
WebフレームワークXSS対策の自動化
 
はじめてのVue.js
はじめてのVue.jsはじめてのVue.js
はじめてのVue.js
 
SharePoint 2010 を使ったクラウドアプリ開発
SharePoint 2010 を使ったクラウドアプリ開発SharePoint 2010 を使ったクラウドアプリ開発
SharePoint 2010 を使ったクラウドアプリ開発
 
Service workerとwebプッシュ通知
Service workerとwebプッシュ通知Service workerとwebプッシュ通知
Service workerとwebプッシュ通知
 
どうなる?Visual Studioの クライアントサイド web開発の今後
どうなる?Visual Studioの クライアントサイド web開発の今後どうなる?Visual Studioの クライアントサイド web開発の今後
どうなる?Visual Studioの クライアントサイド web開発の今後
 
React.js
React.jsReact.js
React.js
 
オフラインファーストの思想と実践
オフラインファーストの思想と実践オフラインファーストの思想と実践
オフラインファーストの思想と実践
 

Andere mochten auch

最新 .NET テクノロジと次世代型アプリ開発 2013 : DE-011, MSC 2013
最新 .NET テクノロジと次世代型アプリ開発 2013 : DE-011, MSC 2013最新 .NET テクノロジと次世代型アプリ開発 2013 : DE-011, MSC 2013
最新 .NET テクノロジと次世代型アプリ開発 2013 : DE-011, MSC 2013Akira Inoue
 
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
 
Custom Color
Custom ColorCustom Color
Custom Colorhammy3158
 
Community Open Day 2013 JP - EF CodeFirst DEMO
Community Open Day 2013 JP - EF CodeFirst DEMOCommunity Open Day 2013 JP - EF CodeFirst DEMO
Community Open Day 2013 JP - EF CodeFirst DEMOokumar savurou
 
One ASP.NET, OWIN & Katana
One ASP.NET, OWIN & KatanaOne ASP.NET, OWIN & Katana
One ASP.NET, OWIN & Katanamiso- soup3
 
Windows8 最新技術動向
Windows8 最新技術動向Windows8 最新技術動向
Windows8 最新技術動向yaju88
 
Empower Every App, Every Developer ~ 統合開発プラットフォーム Visual Studio の進化 ~
Empower Every App, Every Developer ~ 統合開発プラットフォーム Visual Studio の進化 ~Empower Every App, Every Developer ~ 統合開発プラットフォーム Visual Studio の進化 ~
Empower Every App, Every Developer ~ 統合開発プラットフォーム Visual Studio の進化 ~Akira Inoue
 

Andere mochten auch (7)

最新 .NET テクノロジと次世代型アプリ開発 2013 : DE-011, MSC 2013
最新 .NET テクノロジと次世代型アプリ開発 2013 : DE-011, MSC 2013最新 .NET テクノロジと次世代型アプリ開発 2013 : DE-011, MSC 2013
最新 .NET テクノロジと次世代型アプリ開発 2013 : DE-011, MSC 2013
 
Visual Studio 2012 と ASP.NET に見る、最新 Web 開発の魅力
Visual Studio 2012 と ASP.NET に見る、最新 Web 開発の魅力Visual Studio 2012 と ASP.NET に見る、最新 Web 開発の魅力
Visual Studio 2012 と ASP.NET に見る、最新 Web 開発の魅力
 
Custom Color
Custom ColorCustom Color
Custom Color
 
Community Open Day 2013 JP - EF CodeFirst DEMO
Community Open Day 2013 JP - EF CodeFirst DEMOCommunity Open Day 2013 JP - EF CodeFirst DEMO
Community Open Day 2013 JP - EF CodeFirst DEMO
 
One ASP.NET, OWIN & Katana
One ASP.NET, OWIN & KatanaOne ASP.NET, OWIN & Katana
One ASP.NET, OWIN & Katana
 
Windows8 最新技術動向
Windows8 最新技術動向Windows8 最新技術動向
Windows8 最新技術動向
 
Empower Every App, Every Developer ~ 統合開発プラットフォーム Visual Studio の進化 ~
Empower Every App, Every Developer ~ 統合開発プラットフォーム Visual Studio の進化 ~Empower Every App, Every Developer ~ 統合開発プラットフォーム Visual Studio の進化 ~
Empower Every App, Every Developer ~ 統合開発プラットフォーム Visual Studio の進化 ~
 

Ähnlich wie 20120128

Mvc conf session_3_takehara
Mvc conf session_3_takeharaMvc conf session_3_takehara
Mvc conf session_3_takeharaHiroshi Okunushi
 
Windows Azure ではじめる Windows ストアアプリ開発
Windows Azure ではじめる Windows ストアアプリ開発Windows Azure ではじめる Windows ストアアプリ開発
Windows Azure ではじめる Windows ストアアプリ開発Shotaro Suzuki
 
19-D-2_業務システム特化型RIA「Nexaweb」
19-D-2_業務システム特化型RIA「Nexaweb」19-D-2_業務システム特化型RIA「Nexaweb」
19-D-2_業務システム特化型RIA「Nexaweb」Developers Summit
 
できる!グローバル×スケーラブル×マルチデバイス対応のソーシャルアプリ開発入門
できる!グローバル×スケーラブル×マルチデバイス対応のソーシャルアプリ開発入門できる!グローバル×スケーラブル×マルチデバイス対応のソーシャルアプリ開発入門
できる!グローバル×スケーラブル×マルチデバイス対応のソーシャルアプリ開発入門gipwest
 
最新 ASP.NET Web 開発オーバービュー
最新 ASP.NET Web 開発オーバービュー最新 ASP.NET Web 開発オーバービュー
最新 ASP.NET Web 開発オーバービューAkira Inoue
 
ASP.NETの進化とASP.NET Core Blazorの凄さ
ASP.NETの進化とASP.NET Core Blazorの凄さASP.NETの進化とASP.NET Core Blazorの凄さ
ASP.NETの進化とASP.NET Core Blazorの凄さSho Okada
 
20120309 cloud mix-public クラウドごった煮
20120309 cloud mix-public クラウドごった煮 20120309 cloud mix-public クラウドごった煮
20120309 cloud mix-public クラウドごった煮 Kentaro Ebisawa
 
App012 linux java_にも対応!_azure_service_fabric_を
App012 linux java_にも対応!_azure_service_fabric_をApp012 linux java_にも対応!_azure_service_fabric_を
App012 linux java_にも対応!_azure_service_fabric_をTech Summit 2016
 
App012 linux java_にも対応!_azure_service_fabric_を
App012 linux java_にも対応!_azure_service_fabric_をApp012 linux java_にも対応!_azure_service_fabric_を
App012 linux java_にも対応!_azure_service_fabric_をTech Summit 2016
 

Ähnlich wie 20120128 (20)

20100313
2010031320100313
20100313
 
Mvc conf session_3_takehara
Mvc conf session_3_takeharaMvc conf session_3_takehara
Mvc conf session_3_takehara
 
Windows Azure ではじめる Windows ストアアプリ開発
Windows Azure ではじめる Windows ストアアプリ開発Windows Azure ではじめる Windows ストアアプリ開発
Windows Azure ではじめる Windows ストアアプリ開発
 
Mvc conf session_1_osada
Mvc conf session_1_osadaMvc conf session_1_osada
Mvc conf session_1_osada
 
20100224
2010022420100224
20100224
 
19-D-2_業務システム特化型RIA「Nexaweb」
19-D-2_業務システム特化型RIA「Nexaweb」19-D-2_業務システム特化型RIA「Nexaweb」
19-D-2_業務システム特化型RIA「Nexaweb」
 
できる!グローバル×スケーラブル×マルチデバイス対応のソーシャルアプリ開発入門
できる!グローバル×スケーラブル×マルチデバイス対応のソーシャルアプリ開発入門できる!グローバル×スケーラブル×マルチデバイス対応のソーシャルアプリ開発入門
できる!グローバル×スケーラブル×マルチデバイス対応のソーシャルアプリ開発入門
 
最新 ASP.NET Web 開発オーバービュー
最新 ASP.NET Web 開発オーバービュー最新 ASP.NET Web 開発オーバービュー
最新 ASP.NET Web 開発オーバービュー
 
20100218
2010021820100218
20100218
 
ASP.NETの進化とASP.NET Core Blazorの凄さ
ASP.NETの進化とASP.NET Core Blazorの凄さASP.NETの進化とASP.NET Core Blazorの凄さ
ASP.NETの進化とASP.NET Core Blazorの凄さ
 
20090606
2009060620090606
20090606
 
Springの今
Springの今Springの今
Springの今
 
20120616
2012061620120616
20120616
 
Clrh 110716 wcfwf
Clrh 110716 wcfwfClrh 110716 wcfwf
Clrh 110716 wcfwf
 
Ajax basic
Ajax basicAjax basic
Ajax basic
 
20120309 cloud mix-public クラウドごった煮
20120309 cloud mix-public クラウドごった煮 20120309 cloud mix-public クラウドごった煮
20120309 cloud mix-public クラウドごった煮
 
App012 linux java_にも対応!_azure_service_fabric_を
App012 linux java_にも対応!_azure_service_fabric_をApp012 linux java_にも対応!_azure_service_fabric_を
App012 linux java_にも対応!_azure_service_fabric_を
 
App012 linux java_にも対応!_azure_service_fabric_を
App012 linux java_にも対応!_azure_service_fabric_をApp012 linux java_にも対応!_azure_service_fabric_を
App012 linux java_にも対応!_azure_service_fabric_を
 
Ajn24
Ajn24Ajn24
Ajn24
 
Windows Azure Programming
Windows Azure ProgrammingWindows Azure Programming
Windows Azure Programming
 

Mehr von 小野 修司 (20)

20120425
2012042520120425
20120425
 
20111203
2011120320111203
20111203
 
20110607
2011060720110607
20110607
 
20100218 lt
20100218 lt20100218 lt
20100218 lt
 
20091207
2009120720091207
20091207
 
20090711
2009071120090711
20090711
 
20090418
2009041820090418
20090418
 
20090328
2009032820090328
20090328
 
20090212
2009021220090212
20090212
 
20081003
2008100320081003
20081003
 
20080630
2008063020080630
20080630
 
20080627 2
20080627 220080627 2
20080627 2
 
20080627 1
20080627 120080627 1
20080627 1
 
20080524
2008052420080524
20080524
 
20080213
2008021320080213
20080213
 
20080201
2008020120080201
20080201
 
20071204
2007120420071204
20071204
 
20071030
2007103020071030
20071030
 
20070310
2007031020070310
20070310
 
20061125
2006112520061125
20061125
 

20120128

  • 1. 並べてみよう、HTTPベースの .NET開発技術、全部。 どっとねっとふぁん 小野 修司
  • 2. 並べてみた ASP.NET WCF Data WCF RIA WCF Web WebForm MVC WebPages WCF Services Services API VSUG DAY - Winter 2012.01.28
  • 3. ベースの技術でわけてみた WCF Data WCF RIA WCF Web WCF Services Services API ASP.NET WebForm WebPages MVC VSUG DAY - Winter 2012.01.28
  • 4. バージョンをいれてみた ASP.NET WCF Data WCF RIA WCF Web WebForm 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. ソースの提供でわけてみた ASP.NET WCF Web WebPages MVC API WCF Data WCF RIA WebForm WCF Services Services VSUG DAY - Winter 2012.01.28
  • 6. ホスティングでわけてみた WCF Web WCF API ASP.NET WCF Data WCF RIA WebForm WebPages Services MVC Services VSUG DAY - Winter 2012.01.28
  • 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. ASP.NETとWCFの関係 VSUG DAY - Winter 2012.01.28
  • 9. ASP.NETとWCF ASP.NET WCF • IIS上で実行 • セルフホスティング Windowsサービス IIS WAS(Windowsプロセ ス アクティブ化サービ • HTTPパイプライン ス) • HTTPパイプラインに統 合すること”も”できる (ASP.NET 互換モー VSUG DAY - Winter 2012.01.28
  • 10. HTTPパイプライン ブラウザ • リクエスト HttpContext 認証 承認 キャッシュ解決 I ページ処理の実行/ I セッション情報取得 Actionメソッド呼び出 S し ProcessRequest 等... セッション情報格納 キャッシュ情報格納 ブラウザ • レスポンス VSUG DAY - Winter 2012.01.28
  • 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. 各技術の特徴 VSUG DAY - Winter 2012.01.28
  • 13. WebForm aspx ブラウザ • リクエスト コントロールの活用が HttpContext 初期化 キーポイントとなる 認証 リクエスト読 み込み 承認 コントロール page ツリー生成 キャッシュ解決 コントロール I イベント I セッション情報取得 ポストバック イベント S ProcessRequest レンダリング セッション情報格納 SOAPベースの asmx Webサービス キャッシュ情報格納 ブラウザ • レスポンス ashx 基本形 手書きなので自由度高 い VSUG DAY - Winter 2012.01.28
  • 14. ASP.NET MVC チーム開発時に ブラウザ • リクエスト HttpContext MvcHandler プログラムの記述方法を 合わせやすい Actionメソッ ド (Controller) I I Model S ViewResult JSONResult View JSON VSUG DAY - Winter 2012.01.28
  • 15. WebPages HttpContext 学習が容易 ヘルパーが作りやすい cshtml I vbhtml I S Helper VSUG DAY - Winter 2012.01.28
  • 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. 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. WCF Data Serviceのカスタマイズ • インターセプターを利用してテーブルの処理にロジックをは さむ – QueryInterceptor属性 • データ送出時の処理 • ラムダ式を返す – ChangeInterceptor属性 • データ追加/更新/削除時の処理 • 操作を特定するには引数で判断する • サービス操作を追加する – WebGet属性 • GETメソッドに対応 • IQueryable を返す – WebInvoke属性 • メソッドは指定可能(既定値はPOST) – サービスのアクセス許可が必要 • config.SetServiceOperationAccessRule("GetShop", ServiceOperationRights.All); VSUG DAY - Winter 2012.01.28
  • 19. WCF RIA Services • Silverlightアプリケーションでの利用が主 • DomainServiceクラスのメソッドをWebサービスとして公開 – ウィザードでDomainServiceクラス/メタデータクラスを追加 し、ビルド時にSilverlightクライアント側のコードを自動生成 • DomainServiceクラス内に処理を追加して記述することが可能 • DataAnnotationによる入力値検証はクライアント側のコードにも反映さ れる – デフォルトではバイナリでの通信 • OData(ATOM)によるデータ公開が可能 – 追加/更新/削除には対応しない • Toolkitを使用することでSOAP/JSONに対応 VSUG DAY - Winter 2012.01.28
  • 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. まとめ ASP.NET WCF Data WCF RIA WCF Web WebForm MVC WebPages WCF Services Services API VSUG DAY - Winter 2012.01.28