`
izuoyan
  • 浏览: 9220859 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

微软.NET手持设备开发工具包基础篇

阅读更多

出处:http://www.it86.cc/develop/2008/0410/29356.shtml

 [编者按:] 随着移动通讯的发展,移动应用软件的需求也随之升温,目前移动应用软件开发工具有C++、eMbedded Visual C++、eMbedded Visual Bsiac以及J2ME系列。SUN发布的MIDP开发工具包受到众多移动通讯厂商的支持,“基于JAVA技术的手机”已经成了一句广告词。在这个领域微软处于困难的境地,虽然微软在EVC之后又发布了EVB,但EVB具有VB相同的缺点,在Windows条件下VB尚能被接受的话,在嵌入式开发中EVB的缺点就是不容忽视的。 .NET Compact Framework 和Smart Device Extensions (SDE) for Visual Studio.Net是微软专门针对移动通讯设备开发的工具包,其目的就是夺取移动软件开发工具市场,或许不久我们就可以看到“基于.NET技术的手机”这样的广告词。由MIDP到.NET Compact Framework 和Smart Device Extensions (SDE) for Visual Studio.Net,我们从另一个角度来看可以发现未来的开发工具将更专业。

  Windows CE简述

  Microsoft Windows CE是一个紧凑、高效和可扩展的操作系统,适用于各种嵌入系统和产品。它拥有多线程、多任务、确定性的实时、完全抢先式优先级的操作系统环境,专门面向只有有限资源的硬件系统。同时,它的模块化设计方式使得系统开发人员和应用开发人员能够为多种多样的产品来定制它,例如客户电子设备、专用工业控制器以及嵌入式通信设备等。

  凭借Windows CE,开发者可以充分利用他们已拥有的基于Windows的编程技巧。Windows CE支持超过1,400条的普通Microsoft Win32 API和其他的编程接口,包括:

  组件对象模型(COM)

  Microsoft基本类库(MFC)

  Microsoft ActiveX控制

  Microsoft活动模板库(ATL)

  在Microsoft Windows CE下开发压缩和高性能的嵌入应用程序

  嵌入式系统设计员们长期被一些技术和功能性障碍所困扰,这些因素降低了产品性能和兼容性,提高了开发成本,而Windows CE这个32位、与Windows兼容的确定性实时操作系统消除了这些障碍。Windows CE为了满足小型可扩展系统的需求而实现,这些系统在各种产品上工作:包括移动式计算机、终端、工业控制器和其他许多产品。最突出的一点是,它允许开发者使用Win32 API,方便而功能强大的开发平台以及其他资源。

  Windows CE的模块化设计使得它能够在大量的平台上定制使用,从客户电子设备到专用的工业控制器。由于它是模块化的,故而你能使用满足平台系统需求的最小软件模块和组件集合来设计嵌入式系统平台,从而使内存用量最小并最大可能地提高了操作系统的性能。

  Windows CE直接支持多类硬件外围设备,象键盘、鼠标设备、触摸面板、串行口、以太网、调制解调器、USB设备、音频设备、并行口和存储设备(ATA或闪存),同时,由于Windows CE扩展了新的外围设备类型,对嵌入式系统开发者来说,在增加新的外围设备类型方面就有了巨大的潜力可挖,实现起来也很容易。这是通过Windows CE简洁而良好定义的设备驱动模型来实现的,它提供了良好文档化的设备驱动程序接口(DDI)和展示如何实现它们的例程代码。这一模型使得嵌入式系统开发员(OEM和IHV)很容易地为运行在Windows CE平台上的设备实现自己的驱动软件。

  Windows CE支持超过1,400条最频繁使用的Win32 API,借此Windows CE开发者就能利用大量其他的编程资源、工具、软件例子以及文档来进行Windows CE开发工作。全世界有多于五百万的Win32开发者,其中有些有经验的程序员可能已谙熟Microsoft Windows CE平台的开发工作,从而降低了培训成本,缩短了进入市场的时间。

  在Windows CE平台上可以使用的数据库包括:Pocket Access ,SQL Server CE, Oracle 9i Lite, db2 Lite等数据库。在编写数据库方面的访问时,主要使用ADOCE方式,即Windows CE平台上的ADO。

  目前Windows CE的开发中,最主要的工具就是Microsoft eMbedded Visual Tools 3.0(EVT),其中包括 eMbedded Visual Basic ( EVB )、eMbedded Visual C++ ( EVC )和分别用于不同设备的SDK。在EVT之前,要开发Windows CE应用的话,是通过将Windows CE Toolkits 嵌入VC++ 和 VB来实现的。从 EVT3.0 开始微软正式的将这部分功能独立出来,形成了独立的开发软件,其中两个主要的开发工具:EVC和EVB在界面和开发风格上分别继承了VC6.0和VB 6.0的开发界面和开发风格。两者的功能和特性各不相同,下表为EVC和EVB的主要特性和他们之间的区别:表:EVC和EVB的比较:


  我们从上表可以看出,EVC功能强大,但是开发难度大,开发速度慢;EVB开发简单,尤其适合作数据库方面的开发,但是在组件开发、网络通信等方面存在缺陷。正如VB6.0和VC6.0的区别。

  在这里需要说一下的是,在Windows CE .Net中内置了EVC 4.0(Windows CE .Net即Windows CE 4.0,在今年1月7日在美国CE Show首次露面)。EVC4.0和在此之前的EVT3.0没有冲突,可以共存。EVC4.0的自带SDK称为STANDARDSDK,如果使用模拟器调试,须选择WIN32(WCE Emulator)Release/Debug ,而不是X86....。并且EVC4.0是专门针对Windows CE .NET系统开发而设计的。而EVB已经终止于3.0版本了。淘汰EVB后,他的简单和快速进行数据库开发的特性将在我们这篇文章的重点―Smart Device Extensions for Visual Studio .NET上有更好的表现。

  下面是一些链接地址,大家可以去了解更多的关于eMbedded Visual Tools的知识。

  关于EVC4.0:

  http://msdn.microsoft.com/vstudio/device/datasheet.asp

  关于eMbedded Visual Tools 的更多详细情况和下载方式请访问微软站点:

  http://msdn.microsoft.com/vstudio/device/prodinfo.asp

  由于Windows CE所应用的硬件设备的特殊性,在Windows CE的开发中有一些注意事项,在这方面微软公司提供了一些建议。

  Microsoft Windows CE 编程的十点忠告:

  http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnce21/html/msdn_10ce_tips.asp

  .NET开发技术

  在介绍Compact Framework之前需要说明一下,由于微软公司的 .Net Framework 和Visual Studio .Net 已经正式发布了一段时间了,所以在这里我们就不再就整体的 .Net架构和 .Net Framework 加以介绍了,各为读者朋友如果不了解 .Net 的话,请浏览http://www.microsoft.com 。所有的关于.Net Compact Framework 的介绍均是基于 Beta1版本。

  .Net Compact Framework 简介

  .Net Compact Framework(Beta1),顾名思义,即紧缩版的.Net 开发框架。他和Smart Device Extensions (SDE) for Visual Studio .NET 一起,将更强的开发能力和强大的编程平台带到了手持设备的开发工作中。.NET Compact Framework 是一个硬件无关的运行环境,他主要用在手持设备上,包括:个人数据助理(PDAs) ,移动电话,机顶盒和各种运行Window CE .NET操作系统嵌入式设备。需要注意的是目前你使用.NET技术作出的程序只能在Windows系列平台上使用,但是现在Ximian公司(Linux上著名的XWindow系统GNOME的制造商)正在推行一个在Linux平台上支持.NET 的项目MONO(http://www.go-mono.com)相信不久的将来,.NET程序一样可以在非Windows的操作系统上运行。

  The .NET Compact Framework包括一部分 .NET Framework 类库和部分 .NET Compact Framework 所独有的类库。他继承了所有的.NET 框架结构中的中间语言运行时和受管代码执行。

  The .NET Compact Framework 提供了下列关键功能:

  · 程序的硬件与操作系统无关性

  · 支持公共的网络协议,无缝连接XML Web services.

  · 无论开发者的目标应用或组件是提供给大范围的设备还是几个特殊的设备,他都提供一个统一的模型

  · 提供了有助于设计和优化有限的系统资源的功能

  · 包含最优性能的产生本地代码的运行时编译器

  .NET Compact Framework 的平台结构

  


  .NET Compact Framework 的平台结构图

  .NET Compact Framework 提供了对设备上的本地操作系统进行直接存取的功能。你可以有选择的的调用本地API。你可以同时运行受管的和本地的应用。

  .NET Compact Framework的类库是.NET Framework中类库的一部分,一些基本类库如

  System,System.IO,System.Drawing,System.Net,System.Security,System.Web,System.Xml等都是.NET  Framework中的类库。由于篇幅有限,这里我们就不再就类库进行介绍了,有些类库我们会在开发实例中进行简单说明。

  与.NET Framework的比较

  我们主要从相同点和不同点两个方面来说明一下这个问题。

  相同点:

  中间语言运行时

  中间语言运行时包括受管代码执行、运行时编译器和垃圾收集。他们都遵循通用语言定义 (CLS)。.NET Compact Framework的 运行时的大小大约是整个 .NET Framework 运行时的12%。

  装配和文件格式

  所有的Framework的应用都使用装配(assemblies). 两种Frameworks 都为PE文件格式,都包括微软中间语言和定义 .NET Framework 应用的元数据。

  多语言支持

  跨语言支持集成在了 .NET Compact Framework中。

  通用数据类型系统

  线程模型

  两种Framework 都提供了使用主机系统的时序机制的多线程编程模型。

  标准

  两种Framework的核心技术都提交给了欧洲计算机产业协会(ECMA)。

  不同点:

  类库

  在这方面Compact Framework就小的多了,只有一些基本的类库。而.NET Compact Framework中所独有的类库主要集中在红外数据传输(System.Net.Sockets命名空间下)和SQL Server CE的数据库操作(System.Data.SqlServerCe命名空间下)两部分。这两部分的类库是.NET Compact Framework所特有的,在.NET Framework中是没有这两部分内容的。

  内存管理

  .NET Compact Framework通过电池管理、更快速度的动态内存文件存取、最小工作区只需128 KB 到 1 MB 的动态内存和优化的硬件驱动等几种特性优化了整体系统性能。 如果系统内存缺乏时,.NET Compact Framework将会强制的释放现在运行的代码不需要的部分数据,即使在低内存状态下,程序仍然可以运行。

  全球性

  由于.NET Compact Framework 可以使用的资源远比完整的 .NET Framework少,所以他的本地化和全球化应用可以使用的资源大大减少,这部分内容主要依赖于所使用的操作系统。第一版的.NET Compact Framework 提供了下列全球化支持:

  · 可以处理所有Windows CE .NET 和Pocket PC 2002 所支持的所有文化、语言、地区的日期和字符。

  · 本地化的违例信息(Pocket PC 2002支持的语言)

  安全特性

  在第一版本的.NET Compact Framework中,安全政策采取了一种开放式的政策,所有的代码都具有全部权限。.NET Compact Framework 提供了部分The .NET Framework的 System.Security.Permissions 和 System.Security.Policy 的类库。.NET Compact Framework 并没有全面的提供密码服务,基于角色的安全性和基于区域的安全性。代码权限界别和各种安全特性计划在将来版本加入。

  与现有开发技术比较

  与之前的EVB,EVC相比,.NET Compact Framework 和Smart Device Extensions (SDE) for Visual Studio.Net具有很大的优势,一方面,MS所有的开发技术和开发工具都在向.Net平台进行迁移。Visual Studio 6.0(包括VB和VC) 已经被Visual Studio.Net所取代。在手持设备的开发中采用.NET方式开发的话,你将获得.NET技术的所有优势:IL中间语言、类似VM(虚拟机)机制的运行时编译器(Run-Time)等,你将从这些特性中获得平台无关性和程序快速移植的能力。

  我们可以通过.NET的优势来看一下Compact Framework和SDE相对于EVC,EVB等编程工具的优势所在:

  . 提供了一个一致的面向对象的编程环境,而无论对象代码是在本地存储和执行,还是在本地执行但在 Internet 上分布,或者是在远程执行的。

  . 提供一个将软件部署和版本控制冲突最小化的代码执行环境,您不必再担心臭名昭著的Dll漏洞。

  . 提供一个保证代码(包括由未知的或不完全受信任的第三方创建的代码)安全执行的代码执行环境。由于.NET程序会先编译成IL(中间语言),并且有JIT(Just-In-Time)编译器实时编译为Native Code(本地代码,即机器码),所以在JIT编译器实时编译时完全可以控制代码本身和调用类库的安全性问题。

  . 提供一个可消除脚本环境或解释环境的性能问题的代码执行环境,我们可以不必再考虑应用平台的问题,这部分问题由.NET Framework负责解决。

  . 使开发人员的经验在面对类型大不相同的应用程序(如基于 Windows 的应用程序和基于 Web 的应用程序)时保持一致,因为在WinForm和WebForm中使用同样的基础类库,只是在涉及表现层的控件时,有点差别。

  . 按照工业标准生成所有通讯,以确保基于 .NET 框架的代码可与任何其他代码集成。 并且微软公司将使.NET应用可以使用多种语言编写,C++,Pascal,Cobol等等,其中也包括.NET最大的竞争对手Sun公司的Java语言。

  . 在.NET下进行编程,你将不必考虑垃圾收集问题,.NET有自动的垃圾回收器

  基于以上优点,我想您能体会到.NET的巨大力量了吧,在手持设备开发方面,尽管现在的Windows CE上大多数应用还是使用的EVB,EVC等工具,但是不久的将来,.NET的应用将快速占领这一市场。在整个手持设备开发方面.NET Compact Framework已经落后于唯一的劲敌J2ME了,不过微软公司强大的技术创新能力和市场开拓能力将弥补时间上的缺陷。

  而.NET的核心语言C#是一个真正面向对象的高级编程语言,他在很多方面借鉴了Java语言成功的经验并且又对Java语言加以扩充。我们的示例项目都将采用C#语言编写,在这里也极力推荐大家在今后的学习和编程中使用C#这一新兴的语言。当然,你也可以使用其他语言来编写.NET的应用,只要你符合.NET的编程规则。

本篇文章来源于 IT中国 转载请以链接形式注明出处 网址:http://www.it86.cc/develop/2008/0410/29356.shtml

分享到:
评论

相关推荐

    asp.net 4.0动态网站开发基础教程(c#2010篇)课后填空选择答案

    ### ASP.NET 4.0 动态网站开发基础教程(C#2010篇)课后填空选择答案解析 #### 第一部分:ASP.NET 4.0 概述 ##### 填空题解析 - **webXMLWebServices**:在ASP.NET中,Web Services是一个重要的组成部分,它允许开发...

    新一代.NET Office开发指南Excel篇

    《新一代.NET Office开发指南Excel篇》是一本专为.NET开发者设计的Excel二次开发教程,它强调实践操作,通过丰富的案例帮助读者深入理解并掌握利用VSTO(Visual Studio Tools for Office)和C#进行Excel应用开发的...

    ASP.NET 2.0入门经典:C#编程篇.pdf

    1. **.NET Framework**:.NET Framework是ASP.NET的基础,它提供了一组类库、运行时环境和开发工具,支持多种编程语言,包括C#。.NET Framework使得跨平台开发成为可能,并且简化了代码的编写和管理。 2. **ASP.NET...

    .net 面试题(高级开发人员篇)

    .NET 面试题(高级开发人员篇) 本文将对 .NET 面试题(高级开发人员篇)中的问题进行详细的解释和分析。 1. DateTime.Parse(myString) 这行代码有什么问题? 这行代码的问题在于,如果 myString 不能满足时间...

    ASP.NET 程序设计基础篇 - 林煌章

    《ASP.NET程序设计基础篇》是由林煌章编著的一本入门级教程,旨在帮助初学者理解和掌握ASP.NET这一强大的Web应用程序开发框架。ASP.NET是微软.NET Framework的一部分,它为开发者提供了构建动态、数据驱动的Web应用...

    精通C#与.NET 4.0数据库开发 2 OF 2

    精通C#与.NET 4.0数据库开发 2 OF 2 --------------------------------------------- ...全书共六篇,包括:C# 4.0语言基础、开发应用程序、SQL Server 2008基础、ADO.NET操作数据库、LINQ查询开发、项目实战。

    asp.net搭建mybatis开发环境

    本篇文章将详细讲解如何在ASP.NET项目中搭建MyBatis(即.NET版的IBatisNet)的开发环境,带你走出那些可能误导你的误区,构建出高效、可靠的数据库操作方案。 首先,我们来了解下MyBatis的核心概念。MyBatis是一个...

    《.NET游戏编程入门经典-c#篇》(仅书中源码)

    《.NET游戏编程入门经典-c#篇》是一本针对初学者的游戏开发指南,主要以C#编程语言为工具,深入浅出地介绍了如何利用.NET框架进行游戏开发。这本书不仅涵盖了基本的编程概念,还涉及到了游戏开发中的关键技术和实践...

    .NET 4.0面向对象编程漫谈 (基础篇)

    本书《基础篇》以面向对象理论为指导,从.NET平台的各项技术中精选出一些亮点进行深入的剖析和讲解,并展示出它们在实际开发中的具体应用实例,不仅让读者能“知其然”,而且能“知其所以然”。 本书适合于拥有一到...

    新一代.NET Office开发指南——Excel篇 光盘

    微软的最新.NET平台集成了Office应用开发工具,使得普通.NET程序员能够迅速、轻松、高效地完成Word、Excel、Outlook、Visio等程序的二次开发。 作为“.NET Office开发指南”系列图书之一,本书系统深入地讲解了在...

    Microsoft .Net Remoting系列专题之一基础篇

    介绍.net下的Remoting技术. Microsoft .Net Remoting系列专题之一

    Visual C#.Net 网络程序开发-Socket篇

    Microsoft.Net Framework为应用程序访问Internet提供了分层的、可扩展的以及受管辖的网络服务,其名字空间System.Net和System.Net.Sockets包含丰富的类可以开发多种网络应用程序

    [中文][ASP.NET入门经典-VB.NET 编程篇][35.86 MB]

    ASP.NET是微软开发的一种用于构建动态网页的应用框架,而VB.NET则是Visual Basic for .NET的简称,是一种面向对象的编程语言,广泛应用于Windows应用程序的开发。下面将详细介绍这两个知识点。 #### ASP.NET基础 1...

    ASP.Net 开发手册

    本站的又一力作《ASP.Net 手册》现已成功推出,供广大有志于ASP.Net开发创作的同志学习使用。 第一篇 概论 第一章 微软.NET战略和ASP.NET简介 第二章 .NET的安装与运行环境 第二篇 Web Form 第一章 Web...

    ASP.NET 3.5 开发大全-目录

    在《ASP.NET 3.5 开发大全》中,本书主要涵盖了从基础到高级的ASP.NET 3.5开发知识,包括.NET框架、C#编程语言、面向对象设计以及ASP.NET网页代码模型和生命周期等核心内容。以下是这些章节的主要知识点详解: **第...

    精通C#与.NET 4.0数据库开发源码

    精通C#与.NET 4.0数据库开发源码 --------------------------------------------- ...全书共六篇,包括:C# 4.0语言基础、开发应用程序、SQL Server 2008基础、ADO.NET操作数据库、LINQ查询开发、项目实战。

    asp.net控件开发基础

    本篇将深入探讨控件开发的基础知识,帮助开发者更好地理解和创建自定义控件。 首先,了解控件的继承关系至关重要。所有ASP.NET控件都继承自`System.Web.UI.Control`类。这个基类定义了许多控件共有的属性、方法和...

    C#.Net网络程序开发-Socket篇

    C#.Net网络程序开发-Socket篇 教程 加 源码 c#网络编程经典入门,示例,原理的精辟讲解,学习的好材料 <br> Microsoft.Net Framework为应用程序访问Internet提供了分层的、可扩展的以及受管辖的网络服务,其...

    WebService测试工具比postman更简单,.NET开发

    本篇文章将探讨一种比Postman更适合.NET开发者的WebService测试工具,并分析其优势。 首先,让我们了解WebService的基本概念。WebService是一种基于开放标准(如XML、WSDL和SOAP)的Web应用程序,允许不同系统间的...

    ASP.NET 2.0 入门经典:C#编程篇

    ASP.NET 2.0 是微软开发的一个用于构建Web应用程序的框架,它建立在.NET Framework之上,为开发者提供了丰富的工具和库,简化了Web应用的开发流程。本资源"ASP.NET 2.0 入门经典:C#编程篇"旨在帮助初学者掌握使用C#...

Global site tag (gtag.js) - Google Analytics