.NET Framework 支持和新功能

更新:2007 年 11 月

.NET Compact Framework 2.0 版引入了新功能,并为 .NET Framework 类提供了更多支持。此版本还在许多功能方面提高了性能,这些方面包括实时 (JIT) 编译、垃圾回收、XML Web services 和数据访问。

对 .NET Framework 全功能版功能的支持

下表总结了 .NET Compact Framework 2.0 版本中改进的 .NET Framework 功能支持。

扩展支持

说明

应用程序域

为卸载应用程序域提供了支持。

匿名方法

.NET Compact Framework 支持新的 C# 功能,该功能可使您将事件处理代码包含在委托中,如下面的示例所示:

// In constructor.

button.Click += new EventHandler(sender,args)

{

// Increment a counter or other action.

};

加密支持

支持的功能如下:

  • X.509 证书

  • 散列:

    MD5 和 SHA1

  • 对称密钥加密:

    RC2、RC4、3DES、DES

  • 不对称密钥加密:

    RSA、DSA

DataSet 改进

支持 GetChanges 方法以及 System.Data 命名空间中的其他类。

事件

在引发事件方面已进行了内部改进。

异常

支持通过下列事件进行的改进异常处理:

泛型

有关泛型支持的信息,请参见 .NET Compact Framework 中的泛型

全球化

支持其他编码。

程序集

支持友元程序集(C# 编程指南)

网络

支持 NTLM 身份验证和 IPv6,IPv6 是下一代 Internet 协议。

支持 CredentialCache

XML 序列化的性能已提高。

支持 SOAP 1.2。

下列身份验证协议受支持:

  • 协商

  • NTLM

  • Kerberos

消息队列 (MSMQ)

提供了使用 MSMQ 组件和 System.Messaging 类的核心功能。有关更多信息,请参见 .NET Compact Framework 中的消息队列

有关示例,请参见 MSMQ 丛书订购应用程序示例

分部类

.NET Compact Framework 支持分部类,在创建新项目时在 Microsoft Visual Studio 2005 中需要使用分部类。

注册表项

您可以通过使用 RegistryKey 类来设置注册表项。

在删除打开的 RegistryKey 项之前,必须显式关闭该项以及它的打开的子 RegistryKey 对象。

注册表项的最大深度是 15。这是 Windows CE 的限制。

串行端口

与在 .NET Framework 全功能版中一样,您可以访问串行端口。有关示例,请参见 串行通信应用程序示例。Visual Studio 2005 仿真程序也提供了对串行端口的支持。

SQL Server

若要下载 SQL Server Compact 3.5 Books Online(《SQL Server Compact 3.5 联机丛书》),请访问 Microsoft Download Center(Microsoft 下载中心)网站。

字符串

如果 startIndex 参数大于 length 参数,则 Substring 方法会引发一个异常。

String.Empty.Substring(0, 1) 引发 ArgumentException

线程处理

支持 BeginInvokeEndInvoke 方法,并支持将参数与 Invoke 方法一起使用。

说明:

对于异步委托,不支持 BeginInvokeEndInvoke

Visual Basic My 对象

.NET Compact Framework 2.0 支持以下 My 对象:

XML 支持

XML 支持包括:

新增功能

下表总结了 .NET Compact Framework 2.0 中设备特定的新增功能。

功能

说明

独立开发

虽然 .NET Compact Framework 1.0 版中已能够支持命令行编译,但 .NET Compact Framework 2.0 提供了更强大的独立编译和调试支持。有关更多信息,请参见如何:在命令提示符处进行编译

能够在 2.0 版本上运行 .NET Compact Framework 早期版本应用程序

请参见如何:配置运行库版本

Microsoft.WindowsCE.Forms 中的新控件

请参见 Windows 窗体和图形

互操作性增强

.NET Compact Framework 2.0 版提供了以下互操作性增强:

  • 本机代码互操作性:

    • 增强的平台调用类型封送处理。

    • 将委托作为函数指针进行封送处理。

    • 其他类型 – 数组、字符串、结构。

    • 嵌入式数组 – 包含 char[]、array[] 的结构。

    • MarshalAs – 类型提示。

  • 在托管代码中使用 COM 对象:

    • RCW(运行时可调用包装)支持功能使得我们能够从托管应用程序向 COM 对象发出调用。不过,您无法通过 COM 激活托管对象。

    • CCW(COM 可调用包装)支持功能使得我们能够从本机代码回调托管代码。

    • 支持后期绑定和早期绑定调用(IDispatch 和 vtable)。

    • 集成到 Visual Studio 2005 中。

虽然 .NET Compact Framework 只支持 System.Runtime.InteropServices 命名空间的一个子集,但 MarshalAsAttribute 属性的支持提供了高级封送处理功能。另外,.NET Compact Framework 2.0 还支持 Marshal 类中的多个新成员。您可以通过 COM 将多种不同的类型封送到 .NET Compact Framework 中,包括所有 OLE 自动化类型。不支持自定义封送处理、COM 单线程单元 (STA) 线程模型和自动生成类接口。

您可以相应地设置注册表项,以便日志文件能够记录函数调用的封送处理。有关更多信息,请参见如何:创建日志文件

也可以将类型库导入程序 (Tlbimp.exe) 与 .NET Compact Framework 一起使用。在 Visual Studio 中,您可以在设备项目中添加对 COM 类型库的引用。

封装结构方面,.NET Compact Framework 2.0 版不支持 Pack,但支持 Explicit 字段和 FieldOffsetAttribute 属性。注意,目前的限制禁止封送与本机结构布局相冲突的结构。换句话说,Int32 值必须是 4 字节对齐的,Int64Double 值必须是 8 字节对齐的,依此类推。如果您需要其元素不是自然对齐的封装结构,则必须自己进行封送。

有关互操作性和相关的帮助主题的更多信息,请参见 .NET Compact Framework 中的互操作性

资源文件更改

在 .NET Compact Framework 2.0 版本中,.resx 文件格式与 .NET Framework 全功能版中的格式相同。可以为两个 Framework 版本使用同一资源文件生成器 (Resgen.exe)。不再需要 CFResgen.exe 实用工具。

请参见

概念

Windows 窗体和图形

其他资源

.NET Compact Framework 2.0 版中的新增功能