SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Visual Studio 2008徹底入門(AD)

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

Visual Studio 2008徹底入門(4)

  • X ポスト
  • このエントリーをはてなブックマークに追加

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

  • X ポスト
  • このエントリーをはてなブックマークに追加

はじめに

 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)にて詳しく解説されているので、そちらを参考にしてください。

 

次のページ
ASP.NET AJAXのWCFサポート

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Visual Studio 2008徹底入門連載記事一覧

もっと読む

この記事の著者

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

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

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

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

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/2270 2008/08/20 10:42

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング