移动操作系统带来差异化设计
所有Windows平台上,为.NET编程人员提供一致的环境。
Windows Embedded CE是微软移动解决方案的核心。就像微软的其它Windows解决方案一样,Windows CE采用了.NET架构(图5)。编写出能够在不同Windows平台的任意一种上运行的程序应该没什么问题,但.NET框架允许应用程序运行在几乎任何Windows操作系统上,其中包括了像Windows Mobile这样的平台,这是运行在诸如HTC Touch 2等多种智能手机上的一种Windows CE版本(图6)。

图6:HTC Touch2只是基于Windows Mobile的众多成功手机中的一种。
.NET框架基于类似Dalvik和JVM这样的VM架构。微软的公共语言运行时(CLR)能够在类似JVM的虚拟栈机器中执行公共中间语言(CIL)字节代码。
公共语言基础架构(CLI)是一种开放的ECMA-335和ISO/IEC 23271规范,它描述了CIL、CLR运行时环境以及公共类系统(CTS)和运行时汇编。Mono和DotGNU Portable.NET是CLI的两种开源实现,运行在许多非Windows平台上,如Linux。
JVM目前还支持Java以外的其它编程语言,但Java是主要目标。然而,.NET总是有意作为多语言主机。.NET框架支持多种来源的许多编程语言。从Cobol到F#(一种功能性编程语言)的每种语言都将运行在.NET框架上。
CLI可以被实现为一种运行CIL代码的解释器。但像Java一样,通过将应用程序转换成固有代码,CIL JIT编译器可以带来更高的性能。这种方法具有将优化功能移动到JIT的优势。提前(AOT)编译到固有代码也是可以的。这种方法将可执行代码锁定到当前平台,但消除了JIT要求的启动延时。
编译器仍需要产生高效的CIL代码,但它们不必关注针对执行优化目标硬件。垃圾收集是问题的一部分。C#有指针类型,但这些变量只能指向数值类型和数组。参考变量是用C#等语言跟踪数据的正确方法。CIL代码也被认为是在CLR内运行的“管理型代码”,提供诸如线程和内存管理等服务。应用程序必须在CLR的安全范畴内运行。可以拥有受管理的固有代码。Visual C++.NET是一种可以产生CIL管理型和固有无管理代码的语言环境。
管理型代码的优势是可以给编程人员提供便利的更高层提取。这种方法极大地增强了安全性。用不同编程语言编写的应用程序间的交互也更加容易。CTS使这一切成为可能。
VM和低端运行时间是性能和效率的关键,但.NET框架的类库尤其重要。在每个.NET框架平台中可以找到大多数基础类库。
.NET Mirco框架是例外,它直接运行在物理芯片(裸金属)上,没有Windows操作系统。这种框架也是模块化的,允许最小的外形尺寸。.NET Micro框架的应用目标是Android和Moblin等平台之下的低端产品,常见于过程控制等设备中的微控制器上。
最新版的.NET Micro框架是使用Apache许可的一种开源产品。CLI只实现为解释器,但支持.NET框架固有代码接口。.NET Micro框架可能会应用到受更高端.NET框架设备(如蜂窝电话)控制的设备中。拥有一个公共编程平台迟早派得上用场。典型的.NET框架环境包括比.NET Micro框架多得多的类库。图形、窗体和先进的数据库库很常见。在Windows Mobile平台中还能见到用于电话和通信的类。
Mono提供包括基础类在内的许多.NET框架类库,这样就允许编写出在Mono或.NET框架上运行的应用程序。对于开发人员来说问题在于,充分利用.NET框架的真正优势意味着使用像Windows Communication Foundation (WCF) 和Windows Workflow Foundation (WF)这样的基集之上的类。应用程序类库和诸如智能手机需要的服务将被发现运行Windows Mobile。
.NET框架和Windows在这方面是如此形影不离以致于它们无法分开。使用Windows界面(如COM)的固有代码应用程序可以与基于.NET框架的应用程序共存,但后者有很大的开发工作量,也是为基于Windows的移动设备开发应用程序的地方。
微软的Visual Studio一直是充分利用.NET框架的应用程序的主要开发平台。大多数.NET编程语言使用Visual Studio集成开发环境。目前有多种调试器,如CLR调试器。Visual Studio支持其它调试工具,包括支持甚至是混合应用环境中的无管理应用程序。
总之,.NET框架是一种可扩展和令人印象深刻的平台,达到甚至超过大多数竞争产品的性能。它能处理先进的用户界面,支持多点触摸界面。Windows 7也采用.NET框架,因此诸如Intel的Atom这样的平台自然适合。
iPhone应用程序店、Android市场和针对移动应用的Windows市场将是相应移动设备取得成功的主要因素。这些设备上的基础框架需要成为一个好的开发目标才能取得成功。带.NET框架的Windows和包括Android和Moblin在内的各种Linux版本将在新的硬件平台上继续收获成功。在拥有
- 基于FPGA的DSP设计方法(08-26)
- 电力电子装置控制系统的DSP设计方案(04-08)
- 基于DSP Builder的VGA接口设计(04-10)
- 基于DSP和USB的高速数据采集与处理系统设计(05-01)
- 数字信号处理(DSP)应用系统中的低功耗设计(05-02)
- 基于DSP的嵌入式显微图像处理系统的设计(06-28)
