   HTTP通信
    › ブラウザからのリクエスト(GET/POST=テキスト)
    › サーバからのレスポンス(HTML=テキスト)
    › サーバは複数のリクエストを同時に処理
   HTML
    › ブラウザによる実装の違い(CSS、JavaScript)
   動作環境
    › Webサーバ(IIS)、DBサーバの設定/管理
    › ネットワーク
   セキュリティ
    › URLに対するアクセス制御
    › SQLインジェクション、クロスサイトスクリプティング
   実行環境
    › IIS + .NET Framework
    › IIS6とIIS7/7.5では設定方法に違いがある
   開発環境
    › VisualStudio
       VisualStudio.NET - Framework 1.0
       VisualStudio.NET 2003 – Framework 1.1
       VisualStudio 2005 - Framework 2.0
       VisualStudio 2008 - Framework 2.0/3.0/3.5
       VisualStudio 2010 - Framework 2.0/3.0/3.5/4
       無償ダウンロード版 Visual Web Developer
   開発サーバとIISでは動作が異なる点に注意
   IISとの連携
    › IIS6-ISAPI経由でASP.NETを呼び出し
    › IIS7/7.5-ASP.NETを統合(統合モード)
   aspxファイルが実行されるには
    › aspxファイル/コードビハインドファイル
       コードに自動展開された上でコンパイルされる
       dllを生成(テンポラリフォルダ)して実行
   ASP.NETの設定はweb.configファイルに
    › デフォルトの設定は記述されていない
Silver
               ASP.NET AJAX Library                  light
                                   クライアントスクリプト




Webフォーム
                                       WCF        WCF
                   ASP.NET MVC 2       Data        RIA
DynamicData                           Services   Services


     Webアプリケーション                            Webサービス


              ASP.NET コア(HttpApplication)
Silver
               ASP.NET AJAX Library                  light
                                   クライアントスクリプト




Webフォーム
                                       WCF        WCF
                   ASP.NET MVC 2       Data        RIA
DynamicData                           Services   Services


     Webアプリケーション                            Webサービス


              ASP.NET コア(HttpApplication)
Webフォーム
ブラウザ •リクエスト
                HttpContext        初期化



                               リクエスト読
                     認証         み込み


                               コントロール
                               ツリー生成
                     承認
                               コントロール
                                イベント
                 キャッシュ解決
         I                     ポストバック
         I                      イベント

         S      セッション情報取得
                               レンダリング


                  ページ毎処理
                                   MVC
                セッション情報格納
                                         M
                               C
                キャッシュ情報格納
ブラウザ   •レスポンス
                                         V
Silver
               ASP.NET AJAX Library                  light
                                   クライアントスクリプト




Webフォーム
                                       WCF        WCF
                   ASP.NET MVC 2       Data        RIA
DynamicData                           Services   Services


     Webアプリケーション                            Webサービス


              ASP.NET コア(HttpApplication)
   開発方法
    › コントロールのドラッグ アンド ドロップ
    › イベントドリブン
    › Windowsアプリケーションの開発に似た手順
   多種多様なコントロール
    › VS2010 ツールボックス 86(+HTML 15)個
    › Calendar、Chart、GridView等複雑なHTMLを
      生成するものも
    › うまく使えば高い生産性を得られる
   動作上の特徴
    › Postback
       自分自身へのPOSTが規定動作
    › ViewState
       コントロールの状態を保持
   仕様検討時の留意点
    › コントロールをうまく使えるよう仕様を調整
    › 1機能は1ページにまとめる
       ページ遷移はむしろ面倒
    › ViewStateの使われかたを確認
       GridView+SqlDataSourceならノンコーティングで
        ページングやソーティングが可能。ただし、全データ
        をViewStateに保持
Silver
               ASP.NET AJAX Library                  light
                                   クライアントスクリプト




Webフォーム
                                       WCF        WCF
                   ASP.NET MVC 2       Data        RIA
DynamicData                           Services   Services


     Webアプリケーション                            Webサービス


              ASP.NET コア(HttpApplication)
   ノンコーティングでデータベース管理ツールを提
    供
    › テンプレート化されたページ/コントロールの組み合わせ
     により実現
   利用までの手順
    › テンプレートの選択
    › データモデルの追加
    › Global.asaxの設定
   ページ/コントロールの単位でカスタマイズが可能
   DataAnnotationによる入力検証

   ASP.NET 4では各種データコントロールで
    EnableDynamicData拡張メソッドが利用可
Silver
               ASP.NET AJAX Library                  light
                                   クライアントスクリプト




Webフォーム
                                       WCF        WCF
                   ASP.NET MVC 2       Data        RIA
DynamicData                           Services   Services


     Webアプリケーション                            Webサービス


              ASP.NET コア(HttpApplication)
   ASP.NET MVCの開発の特徴
    › コントロールのドラッグ アンド ドロップ
    › データの表示箇所以外はHTMLを個別に記述
       コントロールの高生産性は活用できない
    › イベントドリブン
    › リクエストに応じた処理の記述
       GET/POST等の基礎知識は必要
    › MVCパターンの採用
    › ルーティングによるURLの簡潔化

   ASP.NET以外のWebアプリケーション開発者に
    はWebフォームより理解しやすい
   Model
    › データへのアクセス部分を記述する
    › Model作成に固有のサポートはない
       Entity FrameworkやLINQ to SQLを利用可能
       リポジトリパターンやサービスレイヤの利用が推奨
    › AccountModelが参考になる(MVC 2)
    › DataAnnotationによる入力検証が可能に(MVC 2)
   Control
    › リクエスト毎の処理を記述する
    › VisualStudioが足場(スキャッフォールド)の作成をサポー
      ト
   View
    › 表示するHTMLのテンプレートを記述する
    › VisualStudioが足場の作成をサポート
Silver
               ASP.NET AJAX Library                  light
                                   クライアントスクリプト




Webフォーム
                                       WCF        WCF
                   ASP.NET MVC 2       Data        RIA
DynamicData                           Services   Services


     Webアプリケーション                            Webサービス


              ASP.NET コア(HttpApplication)
   CodePlexから提供
    › Microsoftが正式にサポート
   主な内容
    › テンプレートを用いた簡潔なHTML記述
       データ連携UIを宣言的に記述
    › DataViewによるデータの操作
       追加/更新/削除の状態をクライアント内で保持
    › DataContextによるWebサービスとの連携
   JQueryと高い親和性
Silver
               ASP.NET AJAX Library                  light
                                   クライアントスクリプト




Webフォーム
                                       WCF        WCF
                   ASP.NET MVC 2       Data        RIA
DynamicData                           Services   Services


     Webアプリケーション                            Webサービス


              ASP.NET コア(HttpApplication)
   ノンコーティングでデータ操作の可能なWeb
    サービスを提供
    › RESTfull-HTTPメソッドがCRUD操作に対応
      (PUT/GET/POST/DELETE)
    › データ形式はAtomPub/JSON
   利用までの手順
    › Entity Frameworkを追加
    › WCF Data Servicesページを追加し、Entity
     Frameworkのクラス名と操作範囲を設定

   データを直接公開するようなWebサービスの構
    築に有効
Silver
               ASP.NET AJAX Library                  light
                                   クライアントスクリプト




Webフォーム
                                       WCF        WCF
                   ASP.NET MVC 2       Data        RIA
DynamicData                           Services   Services


     Webアプリケーション                            Webサービス


              ASP.NET コア(HttpApplication)
   Silverlight 4のデータ連携の標準になると思われる

   利用までの手順
    › WizardでDomainServiceクラス、メタデータクラスを追加
    › ビルド時にSilverlightクライアントで利用するクラスを自動生成
    › データソースのドラッグ アンド ドロップでデータ連携UI部分を
     自動生成

   SilverlightだけでなくWebフォーム、ASP.NET MVC、
    AJAXでの利用が可能
   Wizardで作成したサービスレイヤの独自拡張にも対応
   DataAnnotationによる入力検証に対応

   APIを公開するようなWebサービスの構築に有効
エンティティ クラス


               メタデータ クラス          Wizardにより生成
サ
ー             DomainService クラス   Wizardにより生成
バ
                WCFモジュール



               WebDomainClient
Silverlight




                Generate クラス
                   エンティティ         ビルド時に自動生成
                    メタデータ
                  DomainContext
エンティティ クラス                  ASP.NET MVC


 メタデータ クラス

DomainService クラス   DomainDataSource Webフォーム

  WCFモジュール



 WebDomainClient

  Generate クラス
     エンティティ              AJAXクライアント等
      メタデータ
    DomainContext
 共通のベース上で
 共通の開発環境を利用する
 協働を意識した
 強力な機能群が
 提供される

20100313

  • 2.
    HTTP通信 › ブラウザからのリクエスト(GET/POST=テキスト) › サーバからのレスポンス(HTML=テキスト) › サーバは複数のリクエストを同時に処理  HTML › ブラウザによる実装の違い(CSS、JavaScript)  動作環境 › Webサーバ(IIS)、DBサーバの設定/管理 › ネットワーク  セキュリティ › URLに対するアクセス制御 › SQLインジェクション、クロスサイトスクリプティング
  • 3.
    実行環境 › IIS + .NET Framework › IIS6とIIS7/7.5では設定方法に違いがある  開発環境 › VisualStudio  VisualStudio.NET - Framework 1.0  VisualStudio.NET 2003 – Framework 1.1  VisualStudio 2005 - Framework 2.0  VisualStudio 2008 - Framework 2.0/3.0/3.5  VisualStudio 2010 - Framework 2.0/3.0/3.5/4  無償ダウンロード版 Visual Web Developer  開発サーバとIISでは動作が異なる点に注意
  • 4.
    IISとの連携 › IIS6-ISAPI経由でASP.NETを呼び出し › IIS7/7.5-ASP.NETを統合(統合モード)  aspxファイルが実行されるには › aspxファイル/コードビハインドファイル  コードに自動展開された上でコンパイルされる  dllを生成(テンポラリフォルダ)して実行  ASP.NETの設定はweb.configファイルに › デフォルトの設定は記述されていない
  • 5.
    Silver ASP.NET AJAX Library light クライアントスクリプト Webフォーム WCF WCF ASP.NET MVC 2 Data RIA DynamicData Services Services Webアプリケーション Webサービス ASP.NET コア(HttpApplication)
  • 6.
    Silver ASP.NET AJAX Library light クライアントスクリプト Webフォーム WCF WCF ASP.NET MVC 2 Data RIA DynamicData Services Services Webアプリケーション Webサービス ASP.NET コア(HttpApplication)
  • 7.
    Webフォーム ブラウザ •リクエスト HttpContext 初期化 リクエスト読 認証 み込み コントロール ツリー生成 承認 コントロール イベント キャッシュ解決 I ポストバック I イベント S セッション情報取得 レンダリング ページ毎処理 MVC セッション情報格納 M C キャッシュ情報格納 ブラウザ •レスポンス V
  • 8.
    Silver ASP.NET AJAX Library light クライアントスクリプト Webフォーム WCF WCF ASP.NET MVC 2 Data RIA DynamicData Services Services Webアプリケーション Webサービス ASP.NET コア(HttpApplication)
  • 9.
    開発方法 › コントロールのドラッグ アンド ドロップ › イベントドリブン › Windowsアプリケーションの開発に似た手順  多種多様なコントロール › VS2010 ツールボックス 86(+HTML 15)個 › Calendar、Chart、GridView等複雑なHTMLを 生成するものも › うまく使えば高い生産性を得られる
  • 10.
    動作上の特徴 › Postback  自分自身へのPOSTが規定動作 › ViewState  コントロールの状態を保持  仕様検討時の留意点 › コントロールをうまく使えるよう仕様を調整 › 1機能は1ページにまとめる  ページ遷移はむしろ面倒 › ViewStateの使われかたを確認  GridView+SqlDataSourceならノンコーティングで ページングやソーティングが可能。ただし、全データ をViewStateに保持
  • 11.
    Silver ASP.NET AJAX Library light クライアントスクリプト Webフォーム WCF WCF ASP.NET MVC 2 Data RIA DynamicData Services Services Webアプリケーション Webサービス ASP.NET コア(HttpApplication)
  • 12.
    ノンコーティングでデータベース管理ツールを提 供 › テンプレート化されたページ/コントロールの組み合わせ により実現  利用までの手順 › テンプレートの選択 › データモデルの追加 › Global.asaxの設定  ページ/コントロールの単位でカスタマイズが可能  DataAnnotationによる入力検証  ASP.NET 4では各種データコントロールで EnableDynamicData拡張メソッドが利用可
  • 13.
    Silver ASP.NET AJAX Library light クライアントスクリプト Webフォーム WCF WCF ASP.NET MVC 2 Data RIA DynamicData Services Services Webアプリケーション Webサービス ASP.NET コア(HttpApplication)
  • 14.
    ASP.NET MVCの開発の特徴 › コントロールのドラッグ アンド ドロップ › データの表示箇所以外はHTMLを個別に記述  コントロールの高生産性は活用できない › イベントドリブン › リクエストに応じた処理の記述  GET/POST等の基礎知識は必要 › MVCパターンの採用 › ルーティングによるURLの簡潔化  ASP.NET以外のWebアプリケーション開発者に はWebフォームより理解しやすい
  • 15.
    Model › データへのアクセス部分を記述する › Model作成に固有のサポートはない  Entity FrameworkやLINQ to SQLを利用可能  リポジトリパターンやサービスレイヤの利用が推奨 › AccountModelが参考になる(MVC 2) › DataAnnotationによる入力検証が可能に(MVC 2)  Control › リクエスト毎の処理を記述する › VisualStudioが足場(スキャッフォールド)の作成をサポー ト  View › 表示するHTMLのテンプレートを記述する › VisualStudioが足場の作成をサポート
  • 16.
    Silver ASP.NET AJAX Library light クライアントスクリプト Webフォーム WCF WCF ASP.NET MVC 2 Data RIA DynamicData Services Services Webアプリケーション Webサービス ASP.NET コア(HttpApplication)
  • 17.
    CodePlexから提供 › Microsoftが正式にサポート  主な内容 › テンプレートを用いた簡潔なHTML記述  データ連携UIを宣言的に記述 › DataViewによるデータの操作  追加/更新/削除の状態をクライアント内で保持 › DataContextによるWebサービスとの連携  JQueryと高い親和性
  • 18.
    Silver ASP.NET AJAX Library light クライアントスクリプト Webフォーム WCF WCF ASP.NET MVC 2 Data RIA DynamicData Services Services Webアプリケーション Webサービス ASP.NET コア(HttpApplication)
  • 19.
    ノンコーティングでデータ操作の可能なWeb サービスを提供 › RESTfull-HTTPメソッドがCRUD操作に対応 (PUT/GET/POST/DELETE) › データ形式はAtomPub/JSON  利用までの手順 › Entity Frameworkを追加 › WCF Data Servicesページを追加し、Entity Frameworkのクラス名と操作範囲を設定  データを直接公開するようなWebサービスの構 築に有効
  • 20.
    Silver ASP.NET AJAX Library light クライアントスクリプト Webフォーム WCF WCF ASP.NET MVC 2 Data RIA DynamicData Services Services Webアプリケーション Webサービス ASP.NET コア(HttpApplication)
  • 21.
    Silverlight 4のデータ連携の標準になると思われる  利用までの手順 › WizardでDomainServiceクラス、メタデータクラスを追加 › ビルド時にSilverlightクライアントで利用するクラスを自動生成 › データソースのドラッグ アンド ドロップでデータ連携UI部分を 自動生成  SilverlightだけでなくWebフォーム、ASP.NET MVC、 AJAXでの利用が可能  Wizardで作成したサービスレイヤの独自拡張にも対応  DataAnnotationによる入力検証に対応  APIを公開するようなWebサービスの構築に有効
  • 22.
    エンティティ クラス メタデータ クラス Wizardにより生成 サ ー DomainService クラス Wizardにより生成 バ WCFモジュール WebDomainClient Silverlight Generate クラス エンティティ ビルド時に自動生成 メタデータ DomainContext
  • 23.
    エンティティ クラス ASP.NET MVC メタデータ クラス DomainService クラス DomainDataSource Webフォーム WCFモジュール WebDomainClient Generate クラス エンティティ AJAXクライアント等 メタデータ DomainContext
  • 24.
     共通のベース上で  共通の開発環境を利用する 協働を意識した  強力な機能群が  提供される