この環境を無償で揃えるには問題があります。.NET Framework の場合は SDK が無償で提供されているのだが、 Compact Framework の SDK は無償で提供されていないからですね。
※マイクロソフトのサイトのどこを探しても「Compact Framework の開発を行うには Visual Studio.NET が必要」と書かれている
しかしながら世の中はうまく出来ていて抜け道が存在しているので、今回はその抜け道 ( 制限あり ) を抜けていくことにします。また 2004/3/26 時点では Compact Framework でサポートされている言語は C# と VB.NET のみで、JScript.NET はサポートされていません。
Compact Framework のソフトを作るわけですが、基本的には普通の Framework のソフトを作る方法と違いはありません。( Visual Studio.NET を使わない場合はね。)
.NET Framework サンプルアプリケーションの
コンソールアプリケーションの中で、
using system;
という行があった。これはどういう事かと簡単に言うと
.NET Framework の system.dll を使うよ と言う事に過ぎません。
ですから Compact Framework のソフトを作るときは Compact Framework の *.dll を用意して、そちらをリンクするようにコンパイルすればよいです。
ですので無償 Compact Framework 開発の手順は、
- Compact Framework の DLL を集める
- 上記 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
なども含まれている。
インストールが終了すると、
インストールパッケージの時
| 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 を展開したフォルダで実行すると、名前変更を自動で行います。)
Compact Framework においては
コンソールアプリケーションというものは無いので、必然的にサンプルアプリケーションは
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 + .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 の開発環境でも Compact Framework のコンパイルを行うことはできます。
- Visual C#、C# Builder、SharpDevelop などで普通の Windows アプリケーションプロジェクトを開く
- プロジェクトの参照がデフォルトでは .NET Framework の DLL を参照しているので、すべて .NET Compact Framework の DLL に差し替える
- コンパイルする
これで IDE 環境でコンパイルを行うことはできます。
しかしながら Compact Framework と .NET Framework ではサポートしているクラスやクラス内のメソッド・プロパティの数に大きな開きがありますので、そのままではコンパイル出来ない場合が多いです。
なぜならフォームデザイナが .NET Framework を前提としているので、普通にテキストボックスを配置したつもりでも Compact Framework の DLL では対応していないという事が起きるからです。
そうした場合、対応していないメソッド・クラスなどをコードの中から削除するしか方法はありませんので、フォームデザイナについては手打ちが良いと思います。
通常は .NET Framework で MSDN を参照しながら ( Compact Framwork が対応しているクラスなどを使用して ) 開発を行い、最後の時点で .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万円です。差は大きいですね。
|
↑まずこれを試してから
↑こっちへ
ステップアップグレード
期間限定
2004年3月末まで!
|
Last Updated : 2006-4-15
Copyright © 2006 Mikio Fukushima. All rights reserved.
http://smart-pda.net
Converted by Outliner