CodeZine(コードジン)

特集ページ一覧

インストールマニアックス ~ グレープシティコンポーネント meets Windows Azure

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2011/03/04 14:00
目次

MultiRow for ASP.NET 1.0JのAzure動作検証

 次に、MultiRow for ASP.NETを試してみます。MultiRow for ASP.NETは、1レコードのデータを複数行表示するコンポーネントです。ASP.NET Webフォームの開発において、通常、RepeaterコントロールとHTMLを駆使して実現していたことを、デザイナーを使って欲しい見た目を素早く実現できるため、デザイン性と生産性を両立できる優れたコンポーネントです。

MultiRow for ASP.NETをWindows Azure開発環境で動作させてみる

 まずは、WebRole側のプロジェクトにaspxファイルを新規追加し、ツールボックスからMultiRow for ASP.NETをドラッグ&ドロップして、デザイナで次のような画面デザインを定義します。

図13 MultiRow for ASP.NET
図13 MultiRow for ASP.NET

 今までと同様、Windows Azureの実環境にはMultiRow for ASP.NETがインストールされていないので、コンポーネントのDLLを一緒に配布します。「GrapeCity.Web.MultiRow.dll」と「GrapeCity.Web.MultiRow.resources.dll」を参照設定して、プロパティウィンドウの「ローカルコピー」欄をTrueにします(VBの場合、参照設定を指定してプロパティウィンドウに表示するためにはソリューションエクスプローラで、「すべてのファイルを表示」をOnにする必要があります)。

図14 必要なコンポーネントをローカルコピー
図14 必要なコンポーネントをローカルコピー

 MultiRowは前述のSPREADと同じように一覧表示系のコンポーネントなので、データセットと連結して複数データを表示してこそ真価を発揮します。実行している環境の環境変数を取得して、データセットに格納するコードを用意し、そのデータセットを表示するためのコードを記述します。

リスト3 MultiRowにデータセットの内容を表示する例
Public Class CZ1102MultiRow
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(ByVal sender As Object,
                            ByVal e As System.EventArgs) _
                        Handles Me.Load
        If Not Me.IsPostBack Then
            Call GetRecords()
        End If
    End Sub

    Private Function GetRecords() As Boolean
        Dim ds As DataSet

        Using _proc As New CZ1102DataClass
            ds = _proc.GetRecords
        End Using
        Me.CZ1102_MultiRow.DataSource = ds
        Me.CZ1102_MultiRow.DataBind()
        Return True
    End Function
End Class

 準備ができたので、Windows Azure開発環境で実行してみます。すると、デバッグが開始できない旨の表示がでて、実行が停止します。

図15 Windows Azure開発環境での実行時のエラー表示
図15 Windows Azure開発環境での実行時のエラー表示

 そこで、「デバッグせずに実行(Ctrl + F5)」で実行したときに表示される詳細なエラーをもとに、次のように「Web.Config」に追記して、エラーを回避します。

図16 「デバッグせずに実行」時のエラー表示
図16 「デバッグせずに実行」時のエラー表示
<system.web>
  <httpHandlers>
    <add path="MRWebResource.axd" verb="GET" type="GrapeCity.Web.MultiRow.MRWebResource" validate="true" />
  </httpHandlers>
  <compilation debug="true" strict="false" explicit="true" targetFramework="4.0" />
  <machineKey decryption="AES" …(略)… />
</system.web>
<system.webServer>
  <handlers>
    <add name="MRWebResource" preCondition="integratedMode" path="MRWebResource.axd" type="GrapeCity.Web.MultiRow.MRWebResource" verb="GET" />
  </handlers>
  <validation validateIntegratedModeConfiguration="false" />
</system.webServer>

 この追記によって、無事にWindows Azure開発環境で、MultiRowを使ったASP.NET Webフォームを動作させることができました。

MultiRow for ASP.NETをWindows Azureにデプロイして動作させてみる

 Windows Azure開発環境でうまくいったので、さっそくWindows Azure実行環境にデプロイして動作を確認してみます。下の図のように、無事に動作が確認できました。

図17 MultiRow for ASP.NETのWindows Azure実環境での実行結果
図17 MultiRow for ASP.NETのWindows Azure実環境での実行結果

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

バックナンバー

連載:現役エンジニア直伝! 「現場」で使えるコンポーネント活用術(ComponentOne Studio)

もっと読む

著者プロフィール

  • 初音玲(ハツネアキラ)

     国内SIerのSEでパッケージ製品開発を主に行っており、最近は、空間認識や音声認識などを応用した製品を手掛けています。  個人的には、仕事の内容をさらに拡張したHoloLensなどのMRを中心に活動しています。  Microsoft MVP for Windows Development...

あなたにオススメ

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