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をドラッグ&ドロップして、デザイナで次のような画面デザインを定義します。
今までと同様、Windows Azureの実環境にはMultiRow for ASP.NETがインストールされていないので、コンポーネントのDLLを一緒に配布します。「GrapeCity.Web.MultiRow.dll」と「GrapeCity.Web.MultiRow.resources.dll」を参照設定して、プロパティウィンドウの「ローカルコピー」欄をTrue
にします(VBの場合、参照設定を指定してプロパティウィンドウに表示するためにはソリューションエクスプローラで、「すべてのファイルを表示」をOn
にする必要があります)。
MultiRowは前述のSPREADと同じように一覧表示系のコンポーネントなので、データセットと連結して複数データを表示してこそ真価を発揮します。実行している環境の環境変数を取得して、データセットに格納するコードを用意し、そのデータセットを表示するためのコードを記述します。
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開発環境で実行してみます。すると、デバッグが開始できない旨の表示がでて、実行が停止します。
そこで、「デバッグせずに実行(Ctrl + F5)」で実行したときに表示される詳細なエラーをもとに、次のように「Web.Config」に追記して、エラーを回避します。
<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実行環境にデプロイして動作を確認してみます。下の図のように、無事に動作が確認できました。