WebFormっぽいコントロールベスト3

0.前置き

この記事はOne ASP.NET Advent Calendar 2012の10日目のエントリーです。
9日目は、@miso_soup3さんの『ASP.NET MVC コア拡張部』でした。

ASP.NETならなんでもOKということで、WebFormの内容で書いてみます。
年末ですし(?)、個人的にWebFormといったらこのコントロールでしょベスト3をお送りしたいと思います。
別に基準はないのですが、自分が感心したとか、いかにもWebFormっぽいなというものを集めて発表します。

1. ランキング発表

第3位! 「Chart」

まずは第3位からです。

第3位は…Chartコントロールです!
Chartコントロールは、比較的新参者で、3.5から入ってきたものだと思います。
このコントロールを利用すれば、30種類以上のグラフを描画することができます。
サンプルではObjectDataSourceを利用して、データを取得し、折れ線グラフを書いてみました。
この程度のものであれば、コードなしでプロパティの設定のみで完成します。

chart

aspx側のコードはこんな感じです。

<asp:Chart 
    ID="SampleChart" 
    runat="server" 
    BorderlineWidth="3" 
    DataSourceID="ChartObjectDataSource">
    <Series>
        <asp:Series 
            Name="Series1" 
            ChartType="Line" 
            IsValueShownAsLabel="True" 
            MarkerStyle="Diamond" 
            XValueMember="Year" 
            YValueMembers="Income">
        </asp:Series>
    </Series>
    <ChartAreas>
        <asp:ChartArea Name="ChartArea1">
        </asp:ChartArea>
    </ChartAreas>
    <Titles>
        <asp:Title Name="Income" Text="年収">
        </asp:Title>
    </Titles>
</asp:Chart>

第2位!! 「ReportViewer」

では、続いて、第2位の発表。

ちょっとずるいですが第2位は…ReportViewerコントロールです!!
このコントロールは、SQL Serverの簡易BIツールSQL Server Reporting Services(以降、SSRS)のビューワー機能として提供されています。
Webアプリ上に、帳票やグラフを作りたい、エンドユーザーにも作れる環境(ReportBuilderというツールがある)を提供したいなどの要件にマッチします。
なおSSRSにはWebサーバが付属していますが、ちょっと使いにくいです。(たぶんFull IISじゃないです。)
そこで自分が作ったWebアプリとシームレスに接続するために、このReportViewerコントロールが活躍します。
SSRSについては、ここで語ると趣旨がずれてしまうので、自習書などをご参考にして下さい。
いつかこのブログでもちゃんと解説を書こうと思います。

SSRSとReportViewerコントロールを利用すると以下のようにSSRSのレポートが表示されます。
サンプルとして地図上に人口を表現したバブルチャートを書いてみました。

reportviewersample

aspxは以下の通りです。
ScriptManagerが必要になるのでお忘れなく。

<asp:scriptmanager ID="Scriptmanager" runat="server"></asp:scriptmanager>
<rsweb:ReportViewer 
    ID="SampleReportViewer" 
    runat="server" 
    ProcessingMode="Remote" 
    Height="600px" Width="750px">
    <ServerReport ReportPath="/全社/関東地方の人口" ReportServerUrl="http://{SSRSサーバー名称}/reportserver" />
</rsweb:ReportViewer>

第1位!! 「GridView」

そして…第1位の発表です!

第1位は



GridViewコントロール!!!

やはりWebFormっぽいコントロールといったら、GridViewコントロールですね。
なんか便利そうだけど、癖のある感じとかWebFormっぽいです。
このコントロールは、データを表形式で表現するときに利用します。
GridViewコントロールを利用すれば、データに対する編集・削除、ページング、デザインの適用などをほとんど
プロパティベースでできます。作成した感じは下記の通りです。

gridview

aspxのコードは下のようになります。

<asp:GridView 
    ID="SampleGridView" 
    runat="server" 
    DataSourceID="GridviewObjectDataSource" 
    AllowPaging="True" 
    AutoGenerateColumns="False" 
    BackColor="#DEBA84" 
    BorderColor="#DEBA84" BorderStyle="None" BorderWidth="1px" 
    CellPadding="3"  CellSpacing="2" 
    PageSize="3">
    <Columns>
        <asp:BoundField DataField="Year" HeaderText="年" SortExpression="Year" />
        <asp:BoundField DataField="Money" HeaderText="年収" SortExpression="Money" />
        <asp:CommandField ShowDeleteButton="True" ShowEditButton="True" ShowSelectButton="True" ButtonType="Button" />
    </Columns>
    <FooterStyle BackColor="#F7DFB5" ForeColor="#8C4510" />
    <HeaderStyle BackColor="#A55129" Font-Bold="True" ForeColor="White" />
    <PagerStyle ForeColor="#8C4510" HorizontalAlign="Center" />
    <RowStyle BackColor="#FFF7E7" ForeColor="#8C4510" />
    <SelectedRowStyle BackColor="#738A9C" Font-Bold="True" ForeColor="White" />
    <SortedAscendingCellStyle BackColor="#FFF1D4" />
    <SortedAscendingHeaderStyle BackColor="#B95C30" />
    <SortedDescendingCellStyle BackColor="#F1E5CE" />
    <SortedDescendingHeaderStyle BackColor="#93451F" />
</asp:GridView>

2.最後に

というわけで、WebFormっぽいコントロールベスト3を発表してみました。
ざっと見てみましたが、豊富ですね。
もちろん使いどころには十分注意する必要がありますが、
特性などを把握すればとても効率的に開発が行えると思います。
このシーンでは、GridView。こういった使い方の時には、ListView。柔軟にしたいからSSRSと連携などなど。
もう少し視野を広げて、こういった特性のアプリケーションでは、WebForm。
こうゆう場合は、MVCみたいな使い分けができるとさらに良いですよね。

明日12月11日は、@neueccさんです~。