.NET Compact Framework の開発環境構築

.NET Compact Framework の開発環境 - .NET Compact Framework サンプルアプリケーション - .NET Compact Framework 開発上の注意
この環境を無償で揃えるには問題があります。.NET Framework の場合は SDK が無償で提供されているのだが、 Compact Framework の SDK は無償で提供されていないからですね。

※マイクロソフトのサイトのどこを探しても「Compact Framework の開発を行うには Visual Studio.NET が必要」と書かれている

しかしながら世の中はうまく出来ていて抜け道が存在しているので、今回はその抜け道 ( 制限あり ) を抜けていくことにします。また 2004/3/26 時点では Compact Framework でサポートされている言語は C# と VB.NET のみで、JScript.NET はサポートされていません。

.NET Compact Framework の開発環境

ダウンロード・インストール - SDK の環境設定
Compact Framework のソフトを作るわけですが、基本的には普通の Framework のソフトを作る方法と違いはありません。( Visual Studio.NET を使わない場合はね。)

.NET Framework サンプルアプリケーションコンソールアプリケーションの中で、

using system;

という行があった。これはどういう事かと簡単に言うと .NET Framework の system.dll を使うよ と言う事に過ぎません。
ですから Compact Framework のソフトを作るときは Compact Framework の *.dll を用意して、そちらをリンクするようにコンパイルすればよいです。

ですので無償 Compact Framework 開発の手順は、
  1. Compact Framework の DLL を集める
  2. 上記 DLL でコンパイルを行う
の 2点になります。

ダウンロード・インストール

Microsoft から、
.NET Compact Framework 1.0 SP2 インストール パッケージ PocketPC などへのインストーラつき
.NET Compact Framework 1.0 SP2 開発者用再頒布可能パッケージ Compact Framework DLL のみ

のどちらかをダウンロードしてインストールするだけである。

インストールパッケージの方は、PocketPC などへ Compact Framework をインストールするインストーラがついている。PocketPC へ Compact Framework をインストールする人はこちらがよいでしょう。

開発者用再頒布可能パッケージは、Compact Framework DLL だけです。PocketPC に Compact Framework をインストールする必要のない人はこちらがよろしいでしょう。

ダウンロードはこちら ( ダウンロードセンターのモバイルデバイスのカテゴリ )
http://www.microsoft.com/downloads/search.aspx?displaylang=ja&categoryid=8

※追記
Platform Builder 4.1 用 .NET Compact Framework アップデート の PBupdate1.cab の中にも DLL が入っている。この中の DLL は上記のパッケージに含まれていない、
System.Data.Common.DLL
System.Data.SqlServerCe.dll
System.Data.SqlClient.dll
なども含まれている。

SDK の環境設定

インストールが終了すると、
インストールパッケージの時 C:\Program Files\Microsoft .NET Compact Framework 1.0 SP2
開発者用再頒布可能パッケージの時 指定したフォルダ

に Compact Framework の DLL がインストールされる。

netcf.core.ppc3.ARM.cab というファイルを探し出して、このファイルを展開する。

00system.012 名前変更 system.dll
0mscoree.001 削除
CALEND~1.006 削除
cgacutil.003 削除
CHARIN~1.007 削除
CULTUR~1.008 削除
CULTUR~2.009 削除
MICROS~2.021 名前変更 microsoft.windowsce.forms.dll
MICROS~3.020 名前変更 microsoft.visualbasic.dll
MSCORE~1.002 削除
mscorlib.011 名前変更 mscorlib.dll
NE8A18~1.000 削除
NETCF1~1.004 削除
NETCFA~1.005 削除
NETCF_~1.999 削除
REGION~1.010 削除
SY40C7~1.017 名前変更 system.xml.dll
SY4317~1.019 名前変更 system.data.dll
SY9B57~1.016 名前変更 system.windows.forms.datagrid.dll
SYC6B2~1.014 名前変更 system.web.services.dll
SYSTEM~1.018 名前変更 system.net.irda.dll
SYSTEM~3.013 名前変更 system.drawing.dll
SYSTEM~4.015 名前変更 system.windows.forms.dll


上記のファイルが展開されるので、要らないファイルは削除し、必要なファイルは名前を変更する。
( この rename.bat を展開したフォルダで実行すると、名前変更を自動で行います。)

.NET Compact Framework サンプルアプリケーション

Windows アプリケーション - VB.NET の場合の注意 - IDE 開発環境でコンパイルする
Compact Framework においてはコンソールアプリケーションというものは無いので、必然的にサンプルアプリケーションは Windows アプリケーションのみになります。

Windows アプリケーション

.NET Framework サンプルアプリケーションで使用した hello-win.cs を DLL を展開したフォルダにコピーします。コピーが終わったらコマンドラインから

c:\> csc /t:winexe /noconfig /nostdlib /r:system.dll /r:mscorlib.dll /r:system.windows.forms.dll /out:hello-cf.exe hello-win.cs

VB.NET の場合は、VB.NET の場合の注意をご覧ください。
c:\> vbc /netcf /r:mscorlib.dll /r:system.dll /r:system.drawing.dll /r:system.windows.forms.dll hello-win.vb

と入力してみよう。すると C# コンパイラが動作して hello-cf.exe ファイルが出来上がっていると思う。
これを.NET Compact Framework がインストールされた PocketPC などで実行すると Hello world という文字列がポップアップされます。また Windows 上で実行しても実行することが出来ます。

コンパイル時の注意
/target:exe では PocketPC 上でソフトは動作しません。
/target:winexe でコンパイルを行えば PocketPC 上で動作しますし、また .NET Framework 上でも動作します。

VB.NET の場合の注意

VB.NET + .NET Compact Framework で開発を行うにあたっての注意があります。

1. SDK のパス問題
VB.NET で Compact Framework のコンパイルを行う場合は、
c:\> vbc /netcf /sdkpath:c:\( Compact Framework SDK のディレクトリパス )\
と Compact Framework SDK のパスをコンパイラに対して明示する必要があります。

これは、SDK のパスを与えないと、mscorlib.dll, Microsoft.VisualBasic.dll への参照が .NET Framework の DLL になってしまいます。この事で VB.NET での型変換は Microsoft.VisualBasic 名前空間に属するオブジェクトが行っているため、明示的/暗黙的に関わらず、型変換の実行時に例外が発生します。
この問題を解決するためには、mscorlib.dll, Microsoft.VisualBasic.dll への参照が .NET Compact Framework DLL にすることであり、vbcのコンパイラオプション、/sdkpathでこれらのdllを置いた、ディレクトリへのpathを指定します。

/sdkpathはメイクツール nant の vbc タスクでは指定することができないです。

2. Resource Manager 問題
第二に、ResourceManagerを介して、画像などのリソースを扱うことはできません。
.resource や .resx から .NET Compact Framework のリソースのサテライト・アセンブリを作成するためのツール、CFResGen.exe が Visual Studio.NET Professional に付属しているからです。
代替のツールは無いようです。

※2004/3/29 追記・この情報は、WindowsCE FAN 開発初心者の掲示板で kaze さまから頂きました。ありがとうございます。

IDE 開発環境でコンパイルする

IDE の開発環境でも Compact Framework のコンパイルを行うことはできます。

  1. Visual C#、C# Builder、SharpDevelop などで普通の Windows アプリケーションプロジェクトを開く
  2. プロジェクトの参照がデフォルトでは .NET Framework の DLL を参照しているので、すべて .NET Compact Framework の DLL に差し替える
  3. コンパイルする
これで IDE 環境でコンパイルを行うことはできます。
しかしながら Compact Framework と .NET Framework ではサポートしているクラスやクラス内のメソッド・プロパティの数に大きな開きがありますので、そのままではコンパイル出来ない場合が多いです。
なぜならフォームデザイナが .NET Framework を前提としているので、普通にテキストボックスを配置したつもりでも Compact Framework の DLL では対応していないという事が起きるからです。
そうした場合、対応していないメソッド・クラスなどをコードの中から削除するしか方法はありませんので、フォームデザイナについては手打ちが良いと思います。

通常は .NET Framework で MSDN を参照しながら ( Compact Framwork が対応しているクラスなどを使用して ) 開発を行い、最後の時点で .NET Compact Framework のライブラリに差し替えてコンパイルを行うのが良いと思います。

.NET Compact Framework 開発上の注意

Compact Framework は、リソースの少ない PDA や携帯電話のための Framework です。それなので .NET Framework のサブセットとして位置づけられており使用することの出来るクラスは非常に少なくなっております。
また用意されているクラスの中でも、使用できるメソッドやプロパティなども少なくなっています。
無償で開発環境を整えた場合に基本的に使用できるクラスは、SDK の環境設定 で集めた DLL のみとなってしまいます。( 使えないクラスなどあり )

また Visual Studio.NET 2003 では PocketPC エミュレータというものがあり、コンパイルした exe はエミュレータ上で実行・テストできます。( 無償の場合手動で PocketPC へコピーです )

つまり.NET Compact Framework 開発は出来るが PocketPC 開発ではないという事を理解してください。


Compact Framework でちゃんとした開発を行いたい場合は Visual Studio.NET 2003 を使用するのが良いでしょう。
Visual Studio.NET では、Compact Framework アプリケーションの開発を行っているときには自動的に Compact Framework のクラスとメソッド・プロパティなどを識別します。

それなのでIDE 開発環境でコンパイルするで書いたような問題は存在しません。

まだ PocketPC エミュレータというものが初めから付属していて、PC 上で仮想 PocketPC が動作し、その上でコンパイルしたソフトのテストができます。

Visual Studio.NET 2003 を購入すれば良いのですが、購入すると10万円ほどします・・・。会社で購入するのであればともかくとして個人で購入するとなるとなかなか手を出せる価格ではありません。( アカデミックライセンスであれば 2万円くらいですけどね・・・ )

しかし個人で安く購入する方法があります。ステップアップグレードという方法で購入すると通常よりも安く購入することが出来ます。。これは以前のバージョンの Visual Studio や Visual C# などを既に持っている人が Visual Studio.NET 2003 を購入するときに割安で購入できる方法です。

この方法を利用すると、
Visual Studio.NET 2003 約10万円
Visual C# + ステップアップグレード 約2万円 + 約3.5万円 = 約5.5万円


正規に購入したときの約 50% off で購入することが出来ます。5千円の 50% off なら 2500円ですが、10万円の 50% off は 5万円です。差は大きいですね。




cover

↑まずこれを試してから

cover

↑こっちへ
ステップアップグレード

期間限定
2004年3月末まで!




Home に戻る


Last Updated : 2006-4-15

Copyright © 2006 Mikio Fukushima. All rights reserved.
http://smart-pda.net

Converted by Outliner