特集
モバイル開発を支援する.NET Compact Framework、.NETの世界を小型デバイスに(2)

Greg DeMichillie
2003/03/06
Copyright(C) 2003, Redmond Communications Inc. and Mediaselect Inc.

Page1 Page2 Page3

デバイス固有の機能をサポート

 CFのサイズを縮小する必要がある一方で、Microsoftにとっては、開発者がCFを用いて個々のデバイス固有の機能を利用できるようにすることも重要だ。CFで提供される新しいAPIの例には次のようなものがある。

●赤外線送受信
 多くのノートPCはデータの送受信用の赤外線(IR)ポートを備えているが、IRポートは携帯デバイスでより頻繁に使われる傾向があり、よく使われる用途は個人の連絡先情報のやりとりだ。CFには、アプリケーションがIRポート経由で情報を送受信できるようにする新しいAPIが含まれる。この機能は.NET Frameworkのデスクトップ・バージョンには搭載されていない。

●SQL CEプロバイダ
 デスクトップ用の.NET Frameworkは多数のデータプロバイダ(.NET Frameworkがデータベース管理システム上の情報の取り出し、更新を行うためのコンポーネント)を備えている。だが、CFではデータプロバイダが2つに絞られている。MicrosoftのSQL Serverに接続するためのプロバイダ(.NET Frameworkにも搭載されている)と、SQL Server CE Editionに接続するための新しいプロバイダだ。SQL Server CE Editionは、小型デバイス上でローカルに動作するバージョンのSQL Serverだ(SQL Server CEと、CFベースのデータ対応アプリケーションの構築についての詳細は、下図「SQL Server CEとデータアクセス」を参照)。

SQL Server CEとデータアクセス
 .NET Compact Frameworkでは、この図のように、小型デバイスからデータベースにアクセスする方法が4つ提供されている。

 
左上のボックスは最も単純な方法を示している。XMLデータを含むファイル(ADO.NETを用いて読み書きできる)をActiveSyncでデバイスからデスクトップPCに転送するというものだ。だが、この単純なモデルには大きな制約がある。デバイスとデスクトップの各アプリケーションが同じデータを変更した場合に変更を調整する手段がないことと、データを1台のPCにしか転送できないことだ。

 
右上のボックスで示されている直接データベースアクセスでは、デバイスは2階層のクライアント/サーバ・アーキテクチャにより、SQL Serverの実行中のインスタンスに直接接続できる。デバイス・アプリケーションはADO.NETとSQL CEプロバイダを用いてSQL Serverに接続し、データの取り出しと更新を行う。この方法は開発者にとって実装しやすく、開発者が熟知している設計に従っている。だが、個々のデバイスがSQL Serverに直接接続するため、クライアントデバイスが多数に上るアプリケーションには適切でなく、工場や各種の現場業務での利用に向いている。

 
中段のボックスで示されているように、デバイス・アプリケーションはWebサービス経由でデータを取り出すこともできる。.NET Compact FrameworkはWebサービスをサポートしているため、デバイス・アプリケーションはSOAP(Simple Object Access Protocol)などの業界標準プロトコルを用いてWebサーバ(この例ではASP.NETを実行している)にデータを要求できる。これを受け、WebサーバはADO.NETを用いてデータベースソースに接続し、要求されたデータを返す。だが、Webサービスはまだ進化の途上にあり、Webサービスをデータベース・システムのフロントエンドとして導入している組織はほとんどない。

 
下のボックスで示されている方法では、.NET Compact Frameworkに加えてSQL Server CEを実行しているスマート・デバイスがSQLレプリケーション機能を利用することにより、デバイスと、ネットワーク上で動作しているSQL Serverのインスタンスとの間でデータがやりとりされる。デバイス上でSQL Server CEを実行するにはデバイスのストレージ容量がより多く必要になるが、この方法には幾つかの利点がある。その中にはローカル・データのクエリーのサポートや、ローカル・ストレージの暗号化、複数のクライアントが同じレコードを更新する場合に発生する競合を解決する洗練されたアーキテクチャなどがある。

 開発者がCFで直接サポートされていないデバイスの機能(PPCリファレンス・プラットフォームのPhone Editionに搭載されている自動ダイヤル機能など)を使用するには、CFで提供されるOSへのアクセス機能を使用しなければならない。.NET Frameworkでは、マネージドコードがOSのネイティブ・コードにアクセスする方法が2つサポートされている。COMオブジェクトとしてパッケージされているネイティブ・コードにアクセスするためのCOM相互運用性と、Win32 DLLとしてパッケージされているネイティブ・コードにアクセスするためのプラットフォーム呼び出し(P/Invoke)だ。これに対し、CFではP/Invokeしかサポートされていない。

 またMicrosoftは、企業の関心を引くようなアドオン・ハードウェアを製造するOEM(PPC対応のバーコード・スキャナを製造するSymbolなど)に、その機能性をCF開発者が直接利用することを可能にするアドオン・クラス・ライブラリの提供を呼びかけている。


 INDEX
  [特集]
    モバイル開発を支援する.NET Compact Framework、.NETの世界を小型デバイスに(1)
  モバイル開発を支援する.NET Compact Framework、.NETの世界を小型デバイスに(2)
    モバイル開発を支援する.NET Compact Framework、.NETの世界を小型デバイスに(3)
 


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間