January 2009 - 投稿

もはやおなじみ?のインフラジスティックス主催全国行脚セミナーイベント、Academiaシリーズですが、明日の福岡に続きまして、来月は広島で開催します!

2009年2月16日(月) アカデミア広島

http://jp.infragistics.com/events/academia/hiroshima2009.aspx

去年の9月以来の広島出張に今から胸をときめかせていますが、このアカデミア・シリーズの中でもはじめての同都市・複数回開催となります。 ちなみに前回のレポートはこちら(→山田編鈴木編)。

前回とはコンテンツを一新し、昨年末のDevDaysでご好評をいただいたAikidoフレームワークやDynamic Dataについての内容を予定しています。もしかすると2/12のデブサミの直後でもあるので、Silverlight関連のお話をするチャンスがあればと思っています。

マイクロソフトの市橋様のスペシャルセッション(「Webからクラウドへ ~コンピューティングの新しい波」)や、Silverlight関連製品を含めたリリース直前の製品情報など、盛りだくさんの内容となりますので、広島周辺にお住まいの方はぜひ奮ってご登録下さい!!

 

お申し込みはコチラから → http://jp.infragistics.com/events/academia/hiroshima2009questionaire.aspx

 

昨年末のDevDays4でお話しした、Dynamic Data + NetAdvantageのセッション中に使用したプロジェクトファイルをアップロードしました(約1.5MBです。こちらから)。大変遅くなりごめんなさい。

セッション中にもDynamicDataは進化の途中、みたいなことを言ったかと思うのですが、ASP.NET Dynamic Data 4.0というプロジェクトとして成長を続けていて、現時点ではCodePlex上でPreview2が公開されています。興味がある方はぜひダウンロードしてみて下さい。

CodePlex ASP.NET DynamicData 4.0 Preview2

この中にはいくつかプロジェクトが含まれていますが、新しいDDの機能のサンプルとなっているのが Dynamic Data Futures sample site です。いちいちUIHint属性によってメタデータ拡張のクラスを作っていた部分を簡易化するInmemoryMetadataManagerや、フィルタ機能の拡張、DDでCLRオブジェクトやObjectDataSourceを対象とする方法などが紹介されています。4.0という名前になっていることからも、正式リリースは .NETFramework4.0以降?ということで結構先の話かもしれませんが、今後も興味深く見て行きたいと思います。

その他近況報告としまして、来月のデブサミでSilverlight関連のお話をすることになりました!

2/12、初日の16:35~の枠で、「SilverlightによるハイグレードなLOB/BI実現のためのコンポーネント活用法」というタイトルとなります。

Silverlight2のリリースで、.Net開発者に全く新しいキャンバスが用意されたわけですが、まだまだ方法論やリソースが不足していてデッサンすらなかなか思うままにならないのが現状かと思います。そんな中で、この大きな可能性を秘めた表現力を早く、効果的に業務に結びつけるためのヒントとして、コンポーネントを活用したいくつかのアイデアをお話ししたいと思っています。今年インフラジスティックスはSilverlight関連コンポーネントのラインナップを充実させていきますが、その第一弾となるData Visualizationのリリース直前情報もご紹介する予定です。もちろん参加無料のイベントですので、ぜひみなさんのご来場をお待ちしています!

2009年になりました。明けましておめでとうございます!!

今年はどんな年になるんでしょうかね~。私としてはSilverlightがドンドン表舞台に登場して不景気をぶっ飛ばしてくれることを願っていますがAngel

インフラジスティックスとしてもSilverlight向けのコンポーネントを鋭意開発中で、以前お知らせしているとおり、現在のところ2つのCTP(プレビュー版)とそのサンプルを公開しています。おさらいになりますが、現在公開しているCTPの内容を整理します。

 

まず一つ目は NetAdvantage for Silverlight DataVisualization で、Silverlightの表現力を活かしたデータの可視化の方法と表現力の向上をテーマとしたコントロール集となります。チャートやゲージなどの、もはやBIの実現に欠かせない部品はもちろんのこと、マップやタイムラインといった、「こんなUIやデータの表現が簡単にできたら良いな~」と思えるような切り口で作成したコントロールが多数含まれます。このような新しいコントロールの開発に際しては、お客様から頂いた貴重な現場の声を重視して、製品にフィードバックさせて頂いております。マップやタイムラインのご紹介については以前のBlogもごらんください。オンラインサンプルはこちら

そして二つ目、昨年末に発表したのが NetAdvantage for Silverlight LOB (Line of Business) です。LOBって言葉がまだまだ聞き慣れない方が多いかもしれませんが、いわゆる業務用アプリケーションってことです。グリッドやツリー、各種編集コントロールやナビゲーション機能など、Silverlightでアプリケーション開発をするときの根幹となるコントロールが含まれる形になります。詳しくは池原のBlogで紹介しています。オンラインサンプルはこちら

現時点で搭載されている機能はサンプルで一通りご確認頂けますが、実際にCTPを使ってみたいという方のために、これから連載的にいくつかのコンポーネントの使い方を紹介していこうと思います。 

まずはダウンロードが必要ですが、CTPは定期的にアップデートが行われますので、確実に最新版をGETするために上記製品のページから、download_200812 を選択してください。この際にユーザログインが求められますので、まだ未登録の方はお手数ですがユーザ登録をお願いします。

CTPはそれぞれzip形式で圧縮されていますので、任意のフォルダに解凍してください。この中にはライブラリのDLLのほかに、APIヘルプやクラスダイアグラム、オンラインサンプルのソースコード一式が含まれていますので、これらをもとに使い方の学習ができるようになっています。

では実際にVisual Studio 上でLOBコントロールを使ってみましょう。Visual Studio2008でSilverlight用のプロジェクトを作成し、ツールボックスにダウンロードしたDLLを追加してください。例としてXamWebGridを使う場合は、解凍してできたBinフォルダ以下のInfragistics.Silverlight.XamWebGrid.v9.1.dllを追加します。

addingcomponents 

※ 「Silverlightコンポーネント」のタブから、「参照」を押してDLLを選択してください。

↓のような感じで追加されればOKです。

toolbox

あとは、必要なページのXamlコード上に、XamWebGridをドロップしてください。そうすると必要なNameSpaceなども自動的に追加してくれます。

では、XamWebGridにデータを表示してみましょう。必要なデータをDBなどから取得する必要がありますが、一番簡単な方法は、ADO.NET DataService をWebアプリ側でホストし、Silverlightアプリ側からWebサービス経由でデータを取得する方法かと思います。

簡単とは言いましたが、実際にLOBにSilverlightを活用する上では、このあたりのデータ連係のノウハウ構築が最初の難関だと思います。。すべて説明すると長くなるのでそれはまた後日のトピックとすることとして、ここではざっと作業の流れを記載します。

  1. WebアプリケーションにADO.NET DataService を追加。
  2. WebアプリケーションにADO.NET Entity Data Model を追加し、使用するデータベース/テーブルを設定。さらに1のサービスでこのModelを使用するように設定。
  3. Silverlightアプリケーションに1のサービスへのWeb参照を追加。
  4. ユーザイベントにてデータを取得するコードを記載。

SilverlightでADO.NET DataService を使う方法については、MSDNのトピックが参考になるかと思います。

実装後実行すると、こんな感じです。この例では、サーバ側でSqlServerのpubs サンプルDBに対するDataServiceを用意し、publishersテーブル以下の数テーブルを一括取得して階層表示しています。

XamWebGrid

Silverlightアプリケーション側のコードをご参考までに。

Xaml

<UserControl 
    xmlns:igGrid="clr-namespace:Infragistics.Silverlight.XamWebGrid;assembly=Infragistics.Silverlight.XamWebGrid.v9.1"
    x:Class="SilverlightApplication3.Page" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Width="800" Height="500"> 
    <Grid x:Name="LayoutRoot" Background="White"> 
        <Grid.RowDefinitions> 
            <RowDefinition Height="50"/> 
            <RowDefinition Height="450"/> 
        </Grid.RowDefinitions> 
        <Button Content="Load" Click="Button_Click" Grid.Row="0"></Button> 
        <igGrid:XamWebGrid x:Name="grid" Grid.Row="1"> 
        </igGrid:XamWebGrid> 
    </Grid> 
</UserControl>

 

Xaml.cs

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Net; 
using System.Windows; 
using System.Windows.Controls; 
using System.Windows.Documents; 
using System.Windows.Input; 
using System.Windows.Media; 
using System.Windows.Media.Animation; 
using System.Windows.Shapes; 
using System.Data.Services.Client; 
using SilverlightApplication3.ServiceReference1; 
namespace SilverlightApplication3 
{ 
    public partial class Page : UserControl 
    { 
        public Page() 
        { 
            InitializeComponent(); 
        } 
 
        private void Button_Click(object sender, RoutedEventArgs e) 
        { 
            //ADO.NET DataService への接続 
            pubsEntities context = new pubsEntities( 
                new Uri("WebDataService1.svc", UriKind.Relative)); 
 
            //出版社>タイトル>著者のデータを一括取得するクエリ 
            var query = 
                from pub in context.publishers.Expand("titles").Expand("titles/titleauthor") 
                select pub; 
            DataServiceQuery<publishers> pubq = query as DataServiceQuery<publishers>; 
            pubq.BeginExecute(result => 
                { 
                    //取得結果をグリッドにセット 
                    this.grid.ItemsSource = pubq.EndExecute(result).ToList(); 
                }, null); 
        } 
    } 

 

今回は簡単な例でしたが、簡単に階層構造のオブジェクトをそのまま階層表示できることがわかります。また、XamWebGridには列の自由な変更や遅延ローディングなど、標準のDataGridにないさまざまな機能が含まれています。そのあたりはぜひサンプルにて動作と実装方法をご確認ください。

次回はDataVisualizationのコントロールの使い方を紹介してみたいと思います。