日期:2014-05-20  浏览次数:20826 次

WM应用开发中DotNet Compact framework版本的选择


WM应用开发中DotNet Compact framework版本的选择

目 录


1??? 概要??? 3
2??? .NET Compact Framework 概述??? 3
2.1??? .NET Compact Framework 结构??? 3
2.2??? Windows CE??? 4
2.3??? 公共语言运行库(CLR)??? 4
2.4??? 框架(Framework)??? 4
2.5??? 开发平台(Visual Studio)??? 4
3??? NetCF 1.0与2.0的对比??? 4
4??? 方案选择??? 5
5??? 参考资料??? 6

1??? 概要

本项目发布部署于Windows Mobile 5.0嵌入式移动设备,使用Microsoft Visual studio 2005为开发平台,C#.Net为主要开发语言,.Net Compact framework为运行时环境,目前.Net Compact framework有两个版本,分别为.Net Compact framework 1.0和.Net Compact framework 2.0。本文将论证哪个.Net Compact framework版本更适合本项目的开发与部署。

本文中使用的缩略语:

  • WM:Window Mobile 移动操作系统
  • VS2005:Visual studio 2005
  • NetCF:Microsoft.Net Compact framework

2??? .NET Compact Framework 概述

.NET Compact Framework 建立了用来在设备上运行托管应用程序的环境。它提供对设备的基础功能的访问。另外,应用程序和组件可以在设备上和通过 Internet 交互。

2.1??? .NET Compact Framework 结构

NET Compact Framework 继承 .NET Framework 全功能版的公共语言运行库体系结构用于运行托管代码。它提供与设备的 Windows CE 操作系统的互操作性,因此您能够访问本机函数并将最喜欢的本机组件集成到应用程序中。
可以同时运行托管应用程序和本机应用程序。应用程序域宿主(本身是本机应用程序)启动公共语言运行库的一个实例以运行托管代码。
下面的插图概括说明了 .NET Compact Framework 平台结构。

?2.2??? Windows CE

.NET Compact Framework 使用 Windows CE 操作系统提供核心功能和若干设备特定的功能。若干类型和程序集(例如用于 Windows 窗体、图形、绘制和 Web 服务的类型和程序集)已重新生成以便在设备上高效运行,而不是从 .NET Framework 全功能版复制。
.NET Compact Framework 提供下列与 Windows CE 的互操作性:

  • 与本机安全的兼容性。
  • 与本机安装程序的完全集成。
  • 与本机代码的互操作性(使用 COM interop 和平台调用)。

2.3??? 公共语言运行库(CLR)

.NET Compact Framework 公共语言运行库 (CLR) 也被重新生成,以允许受约束的资源在有限的内存上运行以及高效率地使用电池电源。
Windows CE 和公共语言运行库之间存在一个平台适配层(插图中未显示),用以将 CLR 和 Framework 需要的服务和设备接口映射到 Windows CE 服务和接口。

2.4??? 框架(Framework)

.NET Compact Framework 是 .NET Framework 的子集,也包含专门为 .NET Compact Framework 设计的功能。它提供功能和易用性,可以帮助将本机设备应用程序开发人员引向 .NET Framework 以及将桌面应用程序开发人员引向设备。

2.5??? 开发平台(Visual Studio)

使用 Microsoft Visual Studio 2005 开发智能设备应用程序就像开发桌面应用程序一样轻松。Visual Studio 中的智能设备开发包括一组针对 Pocket PC、Smartphone 和嵌入式 Windows CE 的开发的项目类型和模拟器。

3??? NetCF 1.0与2.0的对比

NetCF1.0与NetCF 2.0的公共语言运行时库(CLR)都是微软发行的,并且NetCF1.0的运行时库捆绑于WM2003以及后续所有版本中,使用范围非常广泛,并且其性能也非常优秀。NetCF2.0的出现,旨在兼容NetCF1.0各种特性的基础上,增加更强大的支持与功能,使用NetCF2.0将可以获得更高的执行效率,以及完善的用户界面支持。
NetCF2.0相对于NetCF1.0新增的支持包括:

  • 更多的系统控件支持
  • 用户控件支持(User Controls)
  • 泊位与屏幕自适应控件属性
  • XML以及数据库访问上的相关支持
  • 性能改进与国际化资源支持

更多内容参考CSDN联机帮助http://msdn2.microsoft.com/en-us/library/aa446574.aspx

NetCF2.0的优势是显而易见的,但是对于微软最新的WM5.0版本中并没有捆绑NetCF2.0的运行时环境,而包括WM2003版本以后的所有WM版本中都捆绑内置了NetCF1.0,这就意味着我们在发行基于NetCF2.0的应用程序时,必须将NetCF2.0的运行时库打包于安装程序中,一同部署与目标平台上才能够正确的运行。
值得庆幸的包括WM2003以后的WM版本都可以安装NetCF2.0的运行时环境,但由于NetCF2.0的更多新特性必须由WM5支持,所以安装入WM2003系统中的NetCF2.0的一些新功能将不能使用。
微软提供了NetCF2.0的可再发行软件包,我们可以在制作安装程序的同时将这个可再发行软件包打包入安装程序,这样就可以在没有安装NetCF2.0的操作系统下部署运行基于NetCF2.0的软件产品了。NetCF2.0可发行软件包的下载地址参考:http://www.microsoft.com/downloads/details.aspx?familyid=0C1B0A88-59E2-4EBA-A70E-4CD851C5FCC4&displaylang=zh-cn,其中包含了NetCF1.0的可再发行软件包。

部分特性对比表:

比较项目 NetCF1.0 NetCF2.0
性能 尚可 优秀
易于开发 尚可 优秀
二进制重用特性 尚可 优秀
丰富控件支持 尚可 优秀
跨平台移植 尚可 优秀
部署与发行 优秀(NetCF1.0被广泛支持) 尚可(需要携带NetCF2.0)

?

4??? 方案选择


由上一章的对比中,可以非常明显的看出NetCF2.0的特性更加优秀,只是在部署过程中需要携带一个相对比较大的NetCF2.0的部署包,否则无法运行于目标平台之上,但这并不是什么大问题,微软提供了完美解决方案,也就是说NetCF2.0在发布与系统兼容性上可以达到NetCF1.0的水平,只不过安装文件相对比较大一些在没有NetCF2.0的平台上安装过程比较长而已,但是面对NetCF2.0更多的优良特性,这一点还是可以忽略和容忍的。
推荐方案:.Net Compact framework 2.0

5??? 参考资料

?

  • ?? .NET Compact Framework 概述

???????????? http://msdn2.microsoft.com/zh-cn/library/w6ah6cw1(VS.80).aspx

  • ?? .NET Compact Framework 2.0 Service Pack 1 可再发行组件包

???????????? http://www.microsoft.com/downloads/details.aspx?familyid=0C1B0A88-59E2-4EBA-A70E-4CD851C5FCC4&displaylang=zh-cn

  • ?? Microsoft .NET Compact Framework 开发常见问题解答

???????????? http://www.microsoft.com/china/msdn/library/NetFramework/netcompactframework/understandingnetcfFAQ.mspx

  • ?? What's New in the .NET Compact Framework 2.0

???????????? http://msdn2.microsoft.com/en-us/library/aa446574.aspx

  • ?? 创建用于检测和更新 .NET Compact Framework 的 MSI 软件包

???????????? http://www.microsoft.com/china/MSDN/library/archives/library/dnnetCOMp/html/netcfdepl.asp

?

?

?

?

?