Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

Visual Studio 2008とASP.NET 3.5で広がったクライアントサイド開発

Visual Studio 2008徹底入門(4)

  • LINEで送る
  • このエントリーをはてなブックマークに追加

Visual Studio 2008ではASP.NETの開発効率が大幅に向上しています。本稿では前回の連載よりも、もう少し踏み込んだ機能強化点についてご紹介していきます。

目次

はじめに

 Visual Studio 2008(以下、VS2008)ではASP.NETの開発生産性が大幅に向上しています。ASP.NET自身の進化もありますが、IDEの進化はWebデベロッパーにとって大きなインパクトを与えました。どれほど便利になったかは、以下の連載を参考にしていただければ理解が深まるかと思います。

 本稿では、これらの連載では触れられなかった、クライアントサイドのテクノロジーを中心に紹介したいと思います。

これまでの記事

対象読者

  • Visual Studio 2008に興味がある方
  • .NET Framework 3.5に興味がある方
  • ASP.NET 2.0の開発経験がある方

必要な環境と準備

 Visual Studio 2008入門第1回の必要な環境と準備を参考にしてください。

ASP.NET 3.5の新機能(本稿で触れる部分)

  • VS2008のWeb開発用のホットフィックスについて
  • UpdatePanelの機能拡張
  • JavaScriptを使用してWebサービスを呼び出す
  • ASP.NET AJAXのWCFサポート
  • JavaScriptを使用したフォーム認証の利用
  • JavaScriptを使用したロール情報の利用

VS2008のWeb開発用のホットフィックスについて

 ASP.NET開発チーム(現マイクロソフトコーポレーション副社長)のScott Guthrie氏によると、今後VS2008では、報告が多いバグフィックスをまとめてパッチとしてリリースしていくことになるとされています。2月8日には、その第一弾となるVWD 2008(Visual Web Developer 2008)とVS2008のWebシナリオで報告されていたホットフィックスがリリースされました。このホットフィックスでは以下のパフォーマンスが改善されています。

  • HTMLソースビュー
  • デザインビュー
  • Webサイトのビルド時

 また、HTML、JavaScriptエディタ時の機能改善とバグフィックスがされています。RTM段階では正しく動作しなかったjQueryのインテリセンスも有効になりました。jQueryユーザーには非常に嬉しい変更点です。

 肝心のホットフィックスのダウンロードはこちらからできます。なお、このホットフィックスをダウンロードするにはWindows Live IDが必要です。

ホットフィックスのインストール

 Vista環境とXP環境で若干の違いがあるので、ここでは、Vista環境におけるインストール手順を記します。

  1. ダウンロードしたKB946581フォルダ内にある338649_ENU_i386_zip.exeを実行してC:\以外の場所に解凍
  2. 解凍されたVS90-KB946581.exeを実行
  3. ウィザードが起動するので、ウィザードに沿って進めるとインストール完了

UpdatePanelの機能拡張

 ASP.NET 2.0 AJAX Extensionsには目玉とも言えるUpdatePanelコントロールがあります。このUpdatePanelコントロール内では、JavaScriptを利用しているコントロールが正しく動作しませんでした(もちろん、組み方によっては正しく動作するものもありました)。VS2008で利用可能なASP.NET 3.5 AJAX ExtensionsではUpdatePanelコントロール内で正しく動作するコントロールの幅が広がっています。

正しく動作しないコントロール

 早速、違いを見てみたいと思います。まずはASP.NET 2.0 AJAX ExtensionsのUpdatePanelコントロール内で正しく動作しないコントロールです。

  • TreeView/Menuコントロール
  • WebPartsコントロール
  • FileUploadコントロール
  • GridView/DetailsViewコントロール(EnableSortingAndPagingCallbacksプロパティがTrueの時)
  • Login/PasswordRecovery/ChangePassword/CreateUserWizardコントロール(編集可能なテンプレートではない時)
  • Substitutionコントロール
  • 検証コントロール

正しく動作するコントロール

 続いてASP.NET 3.5 AJAX ExtenisonsのUpdatePanelコントロールで制限付きですが、正しく動作するコントロールと、その特徴をピックアップします。

  • WebPartsコントロール
    • WebPartZoneコントロールが複数ある場合は同じUpdatePanelコントロール内に配置する
    • UpdatePanelを入れ子にする場合、WebPartManagerコントロールは親UpdatePanelコントロールに配置する
    • 非同期ポストバックを使用してWebPartsコントロール(.webpartsファイル)のインポート・エクスポートは不可(実行すると通常のポストバックが実行)
    • 非同期ポストバック中にWebPartsコントロールのスタイルの追加・変更は不可(エディタパーツによる設定変更)
  • 検証コントロール
    • 検証対象のコントロールと同一パネル内に配置することを推奨

 以上の点からUpdatePanelコントロールを利用する際には、AJAX Extensionsのバージョンには注意してください。VS2008で開発を行う際はASP.NET 3.5を選択することが多いと思いますが、もしASP.NET 2.0 AJAX Extensionsの開発を行いたい場合は次のコラムを参照してください。

VS2008でASP.NET 2.0 AJAX Extensionsを利用するには
 VS2008インストール後、マルチターゲッティングを利用しASP.NET 2.0 AJAX Extensionsの開発を行おうとすると、web.configの記述が不足しているため実行時エラーが発生します。しかし、ASP.NET 2.0 AJAX Templatesをインストールすることで、ASP.NET 2.0 AJAX Extensionsの開発を行うためのweb.configの記述+WebフォームにScriptManagerコントロールが配置されているテンプレートが利用できるようになります。

JavaScriptとScriptManagerコントロールを使用してWebサービスを呼び出す

 これは、VS2005+ASP.NET 2.0 AJAX Extensionsから利用できた機能ですが、以下の説明にもつながってくる重要な技術なので紹介します。

 ScriptManagerコントロールにはServicesプロパティがあります。このServicesプロパティにアクセスしたいWebサービスを設定すると、SriptManagerコントロールは、JavaScriptを使用したプロキシクラスを自動生成し、Webサービスへのアクセスを可能にします。このWebサービスへのアクセスは自作したWebサービス以外に、メンバシップサービスや、ロール管理サービスなどのアプリケーションサービスにアクセスすることもできます。

ScriptManagerコントロールのServicesプロパティの設定
<asp:ScriptManager ID="ScriptManager1" runat="server">
    <Services>
        <asp:ServiceReference Path="Webサービス.asmx" />
    </Services>
</asp:ScriptManager>

 本稿を理解するために重要なポイントはプロキシクラスの構文です。クライアントサイドからWebサービスを呼び出す場合、基本は以下のようになります。

プロキシクラスの基本構文
クラス名.メソッド名(
  [パラメータ, ……],
  処理成功時のコールバック関数,
  サービス側で例外が発生時のコールバック関数,
  任意のコンテキスト値
)

 動作の流れや仕組みなどは、「[ASP.NET AJAX]XML Webサービスを非同期呼び出しするには?」(@IT)にて詳しく解説されているので、そちらを参考にしてください。

 

  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • 山田 祥寛(ヤマダ ヨシヒロ)

    静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for ASP/ASP.NET。執筆コミュニティ「WINGSプロジェクト」代表。 主な著書に「入門シリーズ(サーバサイドAjax/XMLD...

  • WINGSプロジェクト りばてぃ/FUJIKO/ナオキ(リバティ, フジコ, ナオキ)

    <WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂...

バックナンバー

連載:Visual Studio 2008徹底入門

もっと読む

All contents copyright © 2005-2018 Shoeisha Co., Ltd. All rights reserved. ver.1.5