.NET Compact Framework 概述(2)
文件名和路径
Windows CE 将未指定路径信息的文件名解析为位于设备的根目录下,而不是在应用程序目录下。
为了确保操作成功,请指定绝对路径信息。
.NET Compact Framework 处理以 file:// 方案为前缀的 URI 字符串的方式与 .NET Framework 全功能版不同。相对的 file://myfile 解析为 \\myfile。使用 file:///myfile(三个斜杠)将解析为根目录中的 \myfile。
可通过 Version 获取程序集的版本,但其支持依赖于设备制造商,并且无法保证。
若要获取包含应用程序的目录的名称,请参见如何:获取应用程序目录。
高分辨率
在 .NET Compact Framework 2.0 版中,将在 Visual Studio 2005 项目中自动处理 DPI 分辨率。有关高分辨率的更多信息,请参见如何:处理方向和分辨率更改。
输入/输出 (I/O)
由于设备操作系统的差异,I/O 模型存在约束和限制。.NET Compact Framework 不提供文件更改通知。
由于设备 I/O 在 RAM 中发生,因此无法设置或访问文件和目录属性。
安装和 CAB 文件
可以使用 CAB 文件并创建 MSI 应用程序来分发应用程序。
语言
.NET Compact Framework 支持使用 Visual Basic 和 Visual C# 进行开发,但是目前不支持 C++。
Math
并不是所有的 Math 方法在所有的设备平台上都可以得到支持,但为了兼容起见,将这些方法包括在 API 中。
内存
.NET Compact Framework 经过了优化,特别适合于用电池供电的系统,并且避免了高强度地使用 RAM 和 CPU 周期。有关节省内存的更多信息,请参见设备内存管理和如何:提高性能。
网络
.NET Compact Framework 提供了用于建立红外连接的“红外数据协会”(IrDA) 类,以及用于为设备的 HTTP 请求提供服务的 Web 侦听类。这些类仅在 .NET Compact Framework 中可用。有关更多信息,请参见网络和连接。
性能测试
.NET Compact Framework 不支持代码分析或系统监视器中的 Perfmon.exe 文件。但是,您可以使用性能计数器。请参见
性能和诊断了解更多信息。
代理代码
.NET Compact Framework 不支持所有由 Web 服务描述语言工具 (Wsdl.exe) 生成的代码。若要确定不支持哪些代码,请参见如何:使用 Wsdl.exe 生成的代理。
反射
.NET Compact Framework 不支持 System.Reflection.Emit 命名空间。
在比较 MethodInfo、FieldInfo、PropertyInfo、EventInfo、MemberInfo、MethodBase、ConstructorInfo 和 ParameterInfo 等反射对象时,.NET Compact Framework 目前不支持相等运算符 (==)。作为替代方法,请参见实现 Equals 方法。
远程处理
.NET Compact Framework 不支持远程处理。可以为其他解决方案使用 .NET Compact Framework 中的消息队列。
安全消息传递
.NET Compact Framework 不支持使用 HTTPS 的客户端证书和身份验证。使用基本身份验证。
安全性
.NET Compact Framework 中的安全中介绍了一些重要的安全性差异和注意事项。
序列化
出于大小和性能方面的考虑,.NET Compact Framework 不支持使用 BinaryFormatter 的二进制序列化和使用 SoapFormatter 的 SOAP 序列化。
但是,对于在 XML Web services 中使用 SOAP 传输对象数据提供序列化支持,并且支持将数据集序列化为 XML。
大小
.NET Compact Framework 的大小是 .Net Framework 全功能版可再发行包的 8%。由于 Windows CE 文件系统压缩,因此,在磁盘上的大小要小 50%。
套接字
不是所有的套接字选项都受支持。有关更多信息,请参见套接字编程。
字符串处理,正则表达式
使用 .NET Compact Framework 的正则表达式的应用程序与使用 .NET Framework 全功能版的正则表达式的应用程序的二进制代码不兼容,但它们的源代码兼容。
线程
一个 .NET Compact Framework 应用程序最多可以创建四个线程:
主应用程序线程。
用来控制可由系统或应用程序安排的各种时间段计时器和超时的线程。
用来跟踪活动 TCP/IP 接口更改的线程(模拟 Windows XP 中提供而 Windows CE 中未提供的介质检测行为)。
用来运行对象终结器的线程。在对第一个可终结对象进行垃圾回收时创建该线程。
有关线程处理支持的更多信息,请参见 .NET Compact Framework 中的线程处理。
时间间隔
Now 返回的值只精确到秒而不是毫秒。可以使用 TickCount 属性获得更精确的度量值。
计时器
不支持 System.Timers.Timer 的 Start 和 Stop 方法,但是,将 System.Windows.Forms.Timer 的 Enabled 属性设置为 true 或 false,可以启动和停止计时。
Visual Basic My
.NET Compact Framework 支持 Visual Basic 的 My 功能(请参见使用 My 开发),但下列 My 对象除外:
- My.Application
- My.Computer
- My.User
- My.Settings
Web 服务
Web 服务客户端直接运行 wsdl.exe 生成的程序集。
请不要使用 localhost 在设备上创建 Web 服务,因为 localhost 是指运行应用程序的设备,即该设备本身。应使用计算机名称或其 IP 地址。
XML
出于大小方面的考虑,.NET Compact Framework 不支持 XML 架构验证。它确实支持 XML 文档对象模型 (DOM)。有关更多信息,请参见数据访问和 XML 支持。