ASP.NET AJAXについてのセミナーを受けてきました

なので、ここで共有したいと思います。JavascriptとかAJAXとかあんまり分かってないので間違ってたら教えてください!

その前に、「AJAXって何?」という人は……

ググレカス!

ASP.NET AJAX

  • ASP.NET上のサービスでAJAXを実現するテクノロジのこと!
  • どうやったら使えるようになるのか
    • .NET Framework3.5(のなかのASP.NET3.5)に含まれているよ
    • .NET Framework2.0の拡張として使用可能(ASP.NET2.0 AJAX Extentionsにて)

ASP.NET AJAXの実装

  • 1、非同期ポストバック
    • コントロールScriptManagerとUpdatePanelによるAJAXの実装
    • AJAXによる部分的なページの更新であっても、Pageオブジェクト全体の生成・ビューステートの取得が行われる
      • パフォーマンスはあんまり
      • 保守性は高い(コーディング量が少ない)
    • これだけでAJAXを実装できてしまう!
      • Javascriptの内部的挙動はまったく意識することなくAJAXを構築することが可能
  • 2、非同期Webサービス呼び出し
    • JSON形式でのAJAX実装、ASP.NET3.5からはWCFサービスの利用が可能
    • Pageオブジェクト全体の生成やビューステートの取得が行われない
      • パフォーマンスは良い
      • 保守性は低い(コーディング量が多い)
    • こちらはASP.NETJavascriptのコーディングを加えることで更なるAJAXの恩恵を得られるという感じ

Microsoft AJAX Library

  • ファイル
    • MicrosoftAjax.js
    • MicrosoftAjax.Debug.js
    • 実際はこれらを意識することなくAJAXを実装できる
  • グローバルショートカット
    • よく使われるAPI呼び出しの記述を簡素化するメソッドが既に搭載されてる
    • たとえば
    • 関数を参照する変数
// Hoge名前空間の宣言(登録)
Type.registerNamespace("Hoge");

// Hugaクラスの作成
Hoge.Huga = function(foo) {
    this._foo = foo;
}

//クラス(プロトタイプ)定義
Hoge.Huga.prototype = {
    getFoo: function() {
        return this._foo;
    },
    dispose: function() {
        alert(this.foo() + 'good-bye world! ');
    }
}

// Hugaクラスの宣言(登録)
Hoge.Huga.registerClass('Hoge.Huga, null, Sys.IDisposable);

// おまじない(笑)
if (typeof(Sys) !== 'undefined') Sys.Application.notifyScriptLoaded();
    • おしまい(かんたんかんたん!)

参考

  • 開発環境「VisualStudio2008」のメリット
    • Javascriptのインテリセンス(入力補完機能)が搭載されてる
    • これが

    • こうなる!

    • これまでVSを使ってきた人は扱いやすくなってるので一度触ってみては!


とまあ、ざっくりとお送りしてきましたが、内容としてはなかなか使えるものだったと思います。上のテクノロジを享受する上で、負担をかけずにAJAXの恩恵を受けられるのは素晴らしいことかもしれませんが、その反面、AJAXの内容を知らなくても実装できてしまうのでそこは怖い!ちゃんと中身も勉強しましょうね、といった感じでひさしぶりのブログ更新でしたー