.NET Compact Framework2.0についてのだいたいのメモ
諸事情により、.NET Compact Frameworkを使うことになったので、
ちょっと適当にまとめてみる。
.NET Compact Frameworkとは
.NET Compact Frameworkとは、Microsoftから提供されている携帯電話やPDAなどの携帯情報端末向けのクラスライブラリで、
Windows向けに提供している.NET Frameworkのサブセットである。
.NET Frameworkおよび、.NET Compact Frameworkを使って開発したソフトウェアは、
Microsoft社独自のMSILという中間言語によるプログラムに変換され、
Microsoft .NETの共通動作環境であるCLRがこれを解釈し実行する。
.NETとJavaの比較
アプリ | .NETアプリケーション | Javaアプリケーション |
---|---|---|
仮想マシン | 共通言語ランタイム(Common Language Runtime:CLR) | Java仮想マシン(Java Virtual Machine:JVM) |
プログラミング言語 | C#/VB/C++/J# その他.Net対応言語 | Java言語 |
中間言語 | Microsoft中間言語(Microsoft Intermedia Language:MSIL) | Javaバイトコード |
クラスライブラリ | .Net Frameworkクラスライブラリ | Javaクラスライブラリ |
携帯端末向けのクラスライブラリのサブセット | .NET Compact Framework ←これ | JavaME CDC |
.NET Compact Framework2.0でできないこと
GDI+
GDI+がサポートされていない。Region が使えないのは痛い。
Direct3Dはサポートされている。
Method
.NET Frameworkに比べ、virtual(Overridable)なメソッドの減少している。
多くのメソッドについてオーバーライドができなくなっている。
コントロール
印刷系のクラスがだいぶ省かれている。
CrystalReportViewer, PageSetupDialog, PrintDialog, PrintDocument,
PrintPreviewControl, PrintPreviewDialogなどが利用できない。
他にも、コントロール自体同じ名前でも、プロパティなどがばっさりと省かれていたり、
中身がサポートされていない機能が結構ある。
Binaryシリアライズ
BinaryFormatter、SoapFormatterについてサポートされていない。
セキュリティ
アンマネージドコードへのセキュリティは提供されていない。
どのアプリケーションでもシステムAPIにアクセスが可能。
.NET Compact Framework ではロールベースのセキュリティは提供していない。
.NETリモーティング
.NETリモーティングはサポートされていない。
せっかくPDAと連携したかったりするのに・・・、これが使えないのはかなり痛い。
Web Service
System.Web では、クライアントは作れるがサービスは作れない。
普通はそんなことしないので問題ない。
Database
ローカルデータベースとして SQL Server CE がサポートされる。
また、SQL Server のクライアントとしても使える。
.NET CompactFramework2.0で主に強化された点
デバイス
吹き出し情報通知
ハードウェアボタン操作
ハードウェアリセットなしのスクリーンのアングル変更
描画
ビットマップ制御
ペン制御
Direct Draw
Direct 3D
イベント
クリップボード
キーボード
暗号化
X.509証明書
ハッシュ:MD5,SHA1
対称暗号方式:RC2,RC4,3DES,DES
非対称暗号方式:RSA,DSA
ネットワーク
NTLM認証
IPv6
SOAP
MSMQ
System.Messaging名前空間
レジストリ
RegistryKeyクラスが使える。
2.0の前バージョンでは、Microsoft.Win32.Registry 名前空間が使えない。
前バージョンでは、Windows CE のレジストリを扱うには、
Windows APIを経由してアクセスする必要があった。
シリアルポート
System.IO.Ports.SerialPortクラス
XML
XmlSerializerクラス。これは、オブジェクトから XML ドキュメントへのシリアル化および
XML ドキュメントからオブジェクトへの逆シリアル化、
また、オブジェクトを XML にエンコードする方法を制御きる。
Visual Studio 2005 Standard Edition以降による開発環境の構築
Visual Studio 2005 Standard Edition以降(Express Edition以外)であれば、
「Windows Mobile 5.0 SDK」を組み込むことができ、効率よく.Net Compactアプリを開発することができる。
単に「.Net Compactアプリ」を開発するだけであるならば、
「Standard Edition」で十分である(ただし、リモートデバッグはProfessionalから)。
Windows Mobile 5.0 PocketPC SDK
Net Compact Framework 2.0アプリの作成機能を付加するツール。無償。
Localized Windows Mobile 5.0 PocketPC Localized Emulator Image
エミュレータを各国の言語に対応させるためのツール。無償。
ActiveSync 4.5 - 日本語
PDAとPCを同期させるために必要。無償。
.NET CompactFrameworkを用いたアプリケーションの作成
まずはプロジェクトの作成、Visual Studio 2005のメニュー「ファイル⇒新規作成⇒プロジェクト」を選択。
ツリー「Visual C#⇒スマートデバイス⇒Windows Mobile 5.0 Pocket PC」を選択。
右のウィンドウの「デバイスアプリケーション」を選択。
「デバイスアプリケーション(1.0)」と「1.0」が付いてるものは.NET Compact Framework1.0用なので注意。
ソリューションに「新しいソリューションを作成する」を指定しOKボタンを押す。 あとはコードを追加していく・・・。
.NET Compact Framework 3.5 について
質疑応答.NET Compact Framework 3.5 の前のバージョンは 3.0ですか?
いいえ、ケフィアです。.NET Compact Framework 3.5 の前のバージョンは 2.0 です。
.NET Compact Framework 3.0 というバージョンはリリースされていません。大人の事情です。
.NET Compact Framework 3.5でどんな機能が増えましたか?
LINQ対応、WCF対応とのことですが、一般開発者にはあまり受けないかもしれません。
.NET Compact Framework 3.5 はすぐに入れたほうがいいですか?
いいえ、ケフィアです。すぐに入れる必要はありません。3.5 対応アプリケーションが出てきたら
必要に応じでインストールすればOKです。