エンタープライズ:ニュース 2003/08/07 22:52:00 更新


.NET Compact Frameworkによるスマートデバイスプログラミング

Pocket PCをはじめとする「スマートデバイス」を、ビジネスでより有効に活用するには、どのようなアプリケーション開発をすればよいのだろうか。

 昨今では、社内のデスクワークはデスクトップPCでOfficeを利用し、営業などの外出先からは携帯でWebアクセスなど、それぞれ使う場所と機能に合った役割のデバイスで、ビジネスを実践するという場面が増えてきている。通信インフラの発達や、それにともなうWebベースのビジネスツールの登場により、この傾向は今後も続いていくだろう。

 けれども、すべてをWebにしてしまうことが正しいのだろうか。言い換えると、サーバサイドでのコンピューティングだけでビジネスを切り盛りしていくことができるのだろうか。生産性についてはどうだろう? 顧客の目の前で簡単に入力が行え、ダイナミックな更新が可能だろうか? そもそも接続自体が面倒ではないか?

 こういったところに、スマートデバイスの活躍の場がある。スマートデバイスとは、リッチクライアントと呼ばれるような、小型で処理の力の高いデバイスのことである。最たる例がWindows CEやPocket PCなどのデバイスである。

 マイクロソフトのTech・ED一日目のセッションでは、このようなスマートデバイスをより有効に活用するために、どのようなアプリケーション開発をすればよいのかというテーマが語られた。壇上に立ったのは、マイクロソフト .NETマーケティング部 デベロッパーエバンジェリストの佐藤直樹氏である。

 スマートデバイスのためにマイクロソフトが用意したのが、.NET Compact Frameworkというアプリケーション基盤だ。これはWindows Server 2003などに用意されている.NET Frameworkとの互換性を重視しつつ、RAMなどのハードウェアリソースが限られているデバイスのために、クラスライブラリやランタイムをサブセット化して提供したものだ。.NET Framework上においてMSILをCLRで実行するのと同じような仕組みを持ち、デバイスに依存しないマネージドコードでの開発が行える。

 実際の開発環境は、XP/2000/2003上のVisual Studio .NET 2003を使ったクロス環境となる。Visual Basic .NETやVisual C# .NETといった言語を利用でき、デスクトップ上のエミュレータで動作確認やデバッグが行える。通常のデスクトップ用アプリケーションと異なるのは、フットプリントやプロセッサ能力などとバランスをとっているため、サポートしていない機能があるということだ。また、赤外線やInput Panelなどを利用するための固有のネームスペースもある。

 ここで重要なのは、どういった点に留意しつつ、どのようなアプリケーション開発が行えるのかということだ。佐藤氏によれば、重要なのはデバイスの特性を理解して、指やスタイラスでの操作性、接続/非接続の環境などを考慮した開発を行うことが望ましいとしている。同氏は続けてデモンストレーションを行い、VS上の20数個のリッチなコントロールとC#を使い、Pocket PCのアプリケーションを作成した。エミュレータ上においてもデバッグもブレークポイント、ウォッチウィンドウなどがサポートされ、なんら遜色のない開発を行うことができる。

DBアクセスのためのSQL Server CE

 さらに、DBなどのデータポータビリティのために、SQL Server 2000 Windows CE Edition(SQL Server CE)が用意されている。これは、.NET Compact Framework上で、スマートデバイス向けのデータベースアプリケーション開発を簡単に行うためのミドルウェアだ。

 データアクセスにはいくつかの方法がある。テキストファイルやバイナリファイルを利用する。あるいはXMLファイル、そしてSQL CEを使う方法だ。このうちXMLをストレージとして持つ方法は最も近道だが、データが大きくなるとパフォーマンスに問題が出てくる。そこで利用するのがDataSetだ。こうすることでデータストレージはXMLでもSQL CEでもどちらでも使えるようになる。しかもデータアクセスのための基本ロジックは同一でよい。

 セッションではこの後応用編として、Win32 APIの利用法や国際化対応の方法が紹介された。前者は、P/Invoke(Platform Invoke)サービスによるDLL内関数の呼び出しで可能。また後者は、Visual StudioのIDEのプロパティ設定で簡単に行うことができる。

 また、スマートデバイスはさまざまなCPUがサポートされているため、アプリケーションの配布パッケージ作成時にこの点も配慮しなければならない。だがVisual Studioではアプリケーションの作成時に、デバイスのインストール形式であるCABファイルの作成までが自動的に行われる。CABファイル内の依存関係なども自動的に参照が行われ、最適なパッケージが生成されるようになっている。

 .NET Compact Framework開発環境はVisual Studioへ高度にインテグレートされているため、「デスクトップアプリケーション開発の知識を利用して、スマートデバイスアプリケーション開発が可能」であり、開発者を強力に支援するツールであると佐藤氏はセッションをしめくくった。

関連記事
▼Microsoft Tech・Ed & EDC 2003 YOKOHAMAレポート
▼Windows.NETチャンネル

[柿沼雄一郎,ITmedia]