.Net Compact Framework で何かを作ろうとした際に、今まで当たり前に .NET Framework でできていたことが、できない設計になっているので、戸惑います。ここでは、その情報をまとめておきます。
GDI+
GDI+がサポートされていない。Region が使えないのは痛い。Direct3Dはサポートされているがどこまでできるかは不明。
Method
オーバーライド 多くのメソッドオーバーライドができなくなっている。
コントロール
印刷系はばっさり。CrystalReportViewer, PageSetupDialog, PrintDialog, PrintDocument, PrintPreviewControl, PrintPreviewDialog
Binary シリアライズ
BinaryFormatter, SoapFormatterはサポートされない。
レジストリーアクセス
Microsoft.Win32.Registry 名前空間は使えない。Windows CE のレジストリは、Windows API経由でアクセスする。
COM
C++ でアンマネージドCOMを作成する。次に、PInvokeにより DLL のラッパーを作る。
セキュリティ
アンマネージドコードへのセキュリティは提供されない。どのアプリケーションでもシステムAPIにアクセス可能。.NET Compact Framework はロールベースのセキュリティは提供しない。
リモーティング
リモーティングはサポートされていない。
コントロール
印刷系はばっさり。CrystalReportViewer, PageSetupDialog, PrintDialog, PrintDocument, PrintPreviewControl, PrintPreviewDialogコントロール自体同じ名前でも、中身がサポートされていない機能が結構ある。たとえば、PictureBoxの OnPaint、Region もない。
XML
System.Xml.XPath namespace, XSLTなどがサポートされない。
Web Services
System.Web では、クライアントは作れるけどサービスは作れない。普通はそんなことしないので問題ない。
Database Support
ローカルデータベースとして SQL Server CE がサポートされる。SQL Server のクライアントとしてもOK。