ccBoy(.NET专栏):五一,五一之后

** 五一,五一之后 **


小气的神

2002.05.01

Article Type: Overview

难度等级: 2/9

版本: 1.48

五一是劳动节,可以休假,所以有时间做一些你平时想做而没有做的事情,比如下面我叙述的这一件。

Microsoft 大约在 3 周之前发布了 Microsoft Smart Device Extensions Beta 1 (SDE) , SDE 有一些不错的特性,不过更多的开发人员会关注两个方面:功能和 .NET Compact Framework 。

功能上它提供了如何使用 dotNET 技术开发嵌入式设备的一个解决方案,使得嵌入式开发人员在原来的 Microsoft eMbedded Visual Tools 3.0 之外有另外的开发工具和平台,同时使得更多的其他领域的开发人员对自己的应用向嵌入式开发转移方面更加平滑和经济。 SDE 是集成在 Visual Studio.NET (VS.NET) 中的,那么可以预见未来的 eMbedded Visual Tools 的发展是有些扑朔迷离的, SDE Beta 1 只支持使用 Visual Basic.NET (VB.NET) 和 Visual C# (C#) 来建立 Smart Device Project ,至于 C++ 的用户目前还无法在 VS.NET 中使用 SDE 特性。看来 Microsoft 要将 dotNET 作为一个和 Windows 、 MSN 一样的品牌,深深印在你的脑海中。在 Gates 的眼中 dotNET 是一个有很多 Value 的技术平台,在 Steve Ballmer 的头脑中 dotNET 一定要是一个赚钱的品牌。 dotNET 要让你看得见、听得到,摸得着、享受得了;它会无时无刻、无所不在、无所不能。 ( 后面两句纯属杜撰但版权所有 haha)

第二个是 .NET Compact Framework , dotNET 一出世,就有听闻 .NET Compact Framework 的概念,相信 SDE 使得它真正提出成为现实,我一直认为 .NET Compact Framework 比 SDE 本身更重要,它属于一种概念,这将允许在未来有更多其他厂商产生自己的平台,只要它符合 .NET Compact Framework 的规范和 Microsoft 某种的认证。值得一提的是 .NET Compact Framework 的大小,根据 SDE 文档上的说明: The common language runtime for the .NET Compact Framework is approximately 12 percent the size of the full .NET Framework runtime. 现在 dotNET 的运行库大约是 22M(dotnetfx.exe) , 22M 的 12% ,应该说很小了。在后面我的例子中,最后打包的安装文件是 15K 左右,但这里面不包括任何运行库文件,在 CompactFrameworkSDK\v1.0.3300\Windows CE\wce400 目录中发现的 netcf.all.wce4.x86.cab 是 2M 左右,如果加上 SQL Server CE 的开发库和 VS.NET 安装支持等文件我想最后的 .NET Compact Framework 大小是在 3~5M 左右。和以前我猜想的结果相似:比 Java 的运行库小,比 VB 的运行库大。 12% ,看得出是一个不断努力才能达到的指标:)

至于 .NET Compact Framework 和 Full .NET Framework 之间的异同我根据 SDE 的文档列了一个表,由于 Beta 版本未来可能会有所变化。 ( 详细内容见文档不保证个人理解有误 )

比较

|

特性

|

说明

---|---|---

相同点

|

Common language runtime

|

都是 ” managed code” 执行,同样的 JIT ,垃圾收集机制,全面支持 CLS

Assemblies and file formats

|

都使用的 assemblies ,有相同的 PE 格式和 MSIL ,但是两种平台下二进制不兼容,由于编译后遵循各自目标平台的存储介质要求 (strong binding rules.) ,所以一个 Framework 下的执行文件不能到另一个 Framework 下执行,需要重新编译

Multiple language support

|

Cross-language interoperability 是内建的,目前最先支持 Visual C# and Visual Basic .NET.

Common type system

|

两者是相同的,并且都支持从内建的原始类型进行继承,进行扩展。

Threading model

|

两者是相同的线程模型,支持多线程。

Standards Support

|

核心的技术实现都遵循 ECMA 标准

不同点

|

Application domains

|

不支持 Full Framework 中可以将 assemblies 装载到 ” domain-neutral” 代码区从而被其它 application domains 使用

ASP.NET

|

不提供 ASP.NET 的支持,对于 mobile devices 则使用 ASP.NET mobile Web controls

Classes

|

支持 Full Framework 的一个子集,并且有相同的命名。但具体的数目目前还没有提供文档说明。

COM interop and callback functions

|

只支持系统平台下原始 DLL 的交互调用 (P/Invoke) ,不支持使用 COM interop 。意味着不能直接和 COM 交互。但如果原始 DLL 调用 COM ,则它变相的和 COM 交互。

Data

|

不支持 ** System.Data.OleDb **

支持 ADO.NET 并包括 SQL Server CE 的一个子集

Data Types

|

对于临界 ( 极大或极小 ) 的除法运算会返回不正确结果。

支持 Math.Round(double a) 但不支持两个参数的 Round

Delegates

|

不支持 asynchronous delegates

Deploying applications

|

简单的 Copy 方式。使用对应目标平台的 cable 包和 Infrared port 传送部署。

Exception description strings

|

The .NET Compact Framework provides exception strings as a setup option for conserving space on the device.

Globalization

|

支持 Globalization ,但依赖目标的操作系统

Input/output (I/O)

|

Because of differences in device operating systems, there are constraints and restrictions on the I/O model.

不支持 file change notifications.

Memory

|

针对 battery-powered systems 进行了优化和设计。

Networking

|

独特的 Infrared Data Association (IrDA) classes

可以用它和 Web listening classes 处理 HTTP 请求。

Performance testing

|

不支持 code profiling 和 Perfmon.exe ,针对 .NET Compact Framework 特定用途的 performance tools 已经开始开发了

Reflection

|

You can shift up to 64 bits using the OpCodes.Shl field. Any larger specification is rest to 64.

Security

|

There are several important security differences and considerations.

Serialization

|

不支持 ** BinaryFormatter ** or SoapFormatter 进行序列化。但支持在 XML Web services 中使用 SOAP 序列化传送对象数据。

String manipulations, Regular Expressions

|

可以使用 System.Text.RegularExpressions.dll 但应用程序仍然是二进制不兼容的,不同 Framework 需要重新编译。

Windows Forms and graphics

|

这部分是专门设计的,和 Full Framework 有些不同。

SDE 安装文件中有具体的说明,并且列举了一些。

XML

|

<SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-fam

Published At
Categories with Web编程
Tagged with
comments powered by Disqus