微软应用程序架构设计指南2.0 第一部分 基本原则 第二章.NET平台纵览

来源:互联网 发布:七十二变软件 编辑:程序博客网 时间:2024/05/23 19:17

本章目标

l         理解Microsoft .NET Framework的高级特性。

l         学习Microsoft .NET Framework的各种相关技术。

l         了解可用于设计和开发.NET应用程序的各种开发工具。

概述

本章开始将介绍.NET框架及通用语言运行时(CLR),接下来的一些章节将讨论一些.NET框架的内置技术(如ASP.NET)、应用服务器(如Microsoft© SQL Server©)、开发工具Microsoft Visual Studio©和外部库。Microsoft Visual Studio©是开发.NET应用程序的主要环境,其针对特定的用户组有几种不同的版本,贯穿应用程序开发的生命周期的全过程。除了Visual Studio,微软也有其他的开发环境,例如Microsoft Expression© Studio,还有一些不包括在.NET Framework中的外部类库。


微软.NET平台包括服务器应用程序、基础组件、.NET应用程序使用的运行时和.NET Framework,具体内容如下。



类别

相关技术

应用程序基础设施

l         通用语言运行时(CLR

l         .NET 框架

移动

l         .NET 压缩框架

l         ASP.NET Mobile

l         Silverlight Mobile

Web

l         ASP.NET

富网络应用程序(RIA

l         Microsoft SilverlightTM

富客户端应用程序

l         Windows Forms

l         Windows Presentation FoundationWPF

服务

l         ASP.NET Web服务(ASMX

l         Windows Communication FoundationWCF

协作/整合/工作流

l         Windows Workflow FoundationWF

l         Microsoft Office SharePoint© ServerMOSS

l         Microsoft BizTalk© Server

Web服务器

l         网络信息服务(IIS

数据库服务器

l         Microsoft SQL Server ©

 

.NET框架

从一个较大的层次上来看,.NET框架包括一个虚拟的运行时引擎、一套基础类库和用于开发和运行.NET应用程序的运行时服务。.NET框架最初是作为一个运行时引擎和一套核心的类库发布的。随后的发布扩展和更新了这些核心类库,并且添加了诸如Windows Communication FoundationWCF)这样的新技术。


基础类库(BCL)提供了一套覆盖范围广、可满足大多数领域编程需要的核心类库。这些类库包括用户接口(UI)、数据访问、数据库连接、加密、数值算法和网络通信。


BCL
是开发.NET应用程序的核心技术。这些技术包括类库和运行时服务,其通过应用程序对象(如富客户端、数据访问等)加以组织。随着微软.NET平台的发展,一些新的技术会相继出现,如WCFWindows Presentation FoundationWPF)和Windows Workflow FoundationWF)。

通用语言运行时(CLR

.NET框架包括一个管理程序运行的虚拟环境。这个环境称为通用语言运行时(CLR),其作用相当于一个虚拟机。这样,程序开发人员就不需要考虑程序运行的具体硬件环境。运行在CLR内的应用程序被称为托管应用程序,并且大多的.NET应用程序是用托管代码开发的(托管代码在CLR内运行)。有些应用程序则是用非托管代码开发的,如设备驱动。这些应用程序需要使用内核应用程序接口。


CLR
也提供诸如安全性、内存管理和异常处理等服务。

ASP.NET

针对Web应用,.NET框架提供了ASP.NET的功能,其宿主在IIS中。.NET平台针对Web应用提供以下的技术选项:

l         ASP.NET Web窗体     这是.NET Web应用程序标准的UI设计技术。一个ASP.NET Web应用程序只需要安装在服务器上。客户端不需要安装任何组件。

l         ASP.NET Web Forms With AJAX     AJAX用来异步向服务器端发送请求和处理客户端相应。这改进了应用程序的相应,减少了从服务器段环回数据的次数。AJAX现在是.NET框架3.5的必要组件。

l         ASP.NET MVC     ASP.NET MVC允许开发人员使用MVC模式轻松构建应用程序。ASP.NET MVC支持测试驱动开发(TDD),并且使UI进程和UI渲染做到了明确的分离。

l         ASP.NET 动态数据    ASP.NET动态数据能够利用语言集成查询功能(LINQ)生成ASP.NET应用。这些功能使你可以在应用程序中轻松构建数据库模型和使用LINQ对数据库进行查询。

数据访问

.NET平台在数据访问方面提供了以下技术支持:

l         ADO.NET核心    ADO.NET提供了一般的数据检索、更新和管理功能。其支持各种类型的数据库系统,包括SQL ServerOLE-DBODBCSQL Server MobileOracle数据库。

l         ADO.NET 数据服务框架  ADO.NET数据服务框架使用户可以通过Web服务的方式访问模型化的数据实体(EDM)。这些数据可以通过URI直接寻址。Web服务可以通过配置以简单原子和JSON的格式返回数据。ADO.NET数据服务框架的v1版只支持以上两种格式,在随后的版本中将发布对其他各式的支持。

l         ADO.NET实体框架    该框架可以给用户一个对关系型数据库的强类型数据访问体验。它将关系表的物理结构模型转化为一个概念模型,从而准确地反映业务对象。该框架包括一个通用的实体数据模型,允许开发人员针对关系型数据定义复杂的映射关系。这个映射有利于应用程序和数据存储结构的分离。该框架也支持使用LINQ对数据实体进行结构化查询。该框架将会在通用数据模型的基础上提供一些高级功能,如数据查询和检索、报表、同步、缓存、备份、可视化和商业智能等。在将该框架作为ORM产品使用时,开发者对业务对象进行LINQ查询,实体框架会根据与实体数据模型的映射将其转化为相应的SQL实体。开发者也可以选择在他们的应用程序中直接使用实体数据模型或者SQL实体。

l         ADO.NET同步服务    ADO.NET同步服务是微软同步框架(Microsoft Sync Framework synchronization)的一部分,其主要针对数据库的同步。它可以通过数据同步建立偶尔连接的应用程序。它会定期从客户端收集信息,然后与服务器数据库进行同步。

l         语言集成查询(LINQ   LINQ针对查询扩展了C#Microsoft Visual Basic©的语法。可以对各种格式的数据进行查询,包括数据集(LINQ to DataSet)、XMLLINQ to XML)、内存对象(c)、ADO.NET数据服务(LINQ to Data Services)和关系数据(LINQ to Entities)。在.NET框架中LINQ是一种主要的查询技术,被各种不同的组件支持。例如,LINQ to Entities包括在ADO.NET实体框架组件中,LINQ to XML包括在System.XML组件中,LINQ to Entities包括在.NET Core系统组件中。

l        LINQ to SQL       LINQ to SQL针对SQL Server提供了一个轻量级的、强类型的查询解决方案。LINQ to SQL是为轻便、快速的对象存续场景设计的。在这类场景中,类的结构和数据库表结构关系密切。在.NET框架4.0初期,LINQ to SQL的功能会被集成在ADO.NET实体框架中。但是,LINQ to SQL会继续得到支持。更多信息,可以关注ADO.NET团队的博客http://blogs.msdn.com/adonet/archive/2008/10/31/clarifying-the-message-on-l2sfutures.aspx

移动应用

.NET平台针对移动应用有以下几项技术支持:

l         .NET压缩框架    .NET压缩框架是完整的.NET框架的一个子集,是专门针对移动设备设计的。它可以在无法保证网络连接的设备上使用以支持移动应用。

l         ASP.NET Mobile  ASP.NET Mobile包括ASP.NET.控件库的一个子集,外加一些针对移动设备设计的功能。ASP.NET Mobile应用程序能够部署在一个普通的ASP.NET网络服务器上。ASP.NET Mobile适合于依赖持续网络连接的网络应用程序。

l         Silverlight Mobile        Silverlight Mobile是一个移动版的Silverlight客户端。它需要在移动设备上使用Silverlight插件。使用该技术可以将现有的Silverlight应用发布到移动设备上,或者提供丰富的UI效果。

富客户端应用程序

基于Windows的应用程序通过.NET框架执行在Microsoft Windows©系统中。.NET框架针对富客户端应用程序提供了以下技术可供选择:

l         Windows Forms    这是.NET框架中标准的UI设计技术。尽管WPF效果更好,但对于不需要富媒体UI的应用程序来说,仍不失为一个不错的选择。开发人员对此项技术比较熟悉,而且相关的经验也比较丰富。

l         Windows Forms应用程序中使用WPF控件     开发人员可以在现有的Windows Forms应用程序中使用WPF控件,从而获得更好的UI效果,改善用户体验。然而,与Windows Forms相比WPF往往需要客户机器具有较高的性能。

l         Windows Presentation FoundationWPF   WPF支持较高级的图形处理能力,例如:2D/3D图形、独立的分辨率显示、先进的文档和排版支持、时间线动画、流媒体(音频/视频)、矢量图形。WPF使用可扩展应用程序标记语言(XAML),改进了UI的外观和性能,支持数据绑定和定义事件。WPF应用程序可以部署到桌面端,也可以作为XAML浏览器应用程序(XBAP)显示在网络浏览器中。

l         XAML浏览器应用程序(WPF    XBAP宿主在Windows系统中的IEFirefox浏览器上,在沙盒中运行。与Silverlight不同,你可以使用整个WPF框架的功能,只是在从局部可信的沙盒中访问系统资源时受到些限制。XBAP需要Microsoft Windows Vista©.NET框架3.0或以上版本和XBAP浏览器插件的支持。XBAP对于局域网内的WPF应用来说是一个好的选择。由于其对系统有较大的依赖,所以其仅支持Windows系统。

富网络应用程序(RIA

对于一个RIA的应用,你可以选择.NET框架中的Silverlight技术来满足需求。有下列技术可供选择:

l         Silverlight     Silverlight是一个针对浏览器进行优化的WPF的子集,它是跨平台和跨浏览器的。与XBAP相比,Silverlight更小、更快,但是客户端机器可能不支持所有的功能。由于它的小型和跨平台的特性,对于广域网的WPF应用,Silverlight是一个不错的选择。

l         Silverlight with AJAX  Silverlight原生支持AJAX,而且对于网页中的JavaScript,其文档对象模型(DOM)也是可访问的。开发人员可以应用这种特性实现页面组件和Silverlight应用的集成。

服务

.NET平台上,可使用以下技术创建基于服务的应用程序:

l         Windows Communication FoundationWCF    WCF是一个易于管理的分布式计算方法,并提供广泛的互操作性,直接支持服务导向的应用程序。它支持一系列的协议,包括超文本传输协议(HTTP)、传输控制协议(TCP)、微软消息队列(MSMQ)和命名管道。

l         ASP.NET Web服务(ASMX ASMX提供了一个简单的方法来处理分布式计算和互操作性,但其仅支持HTTP协议。

工作流

.NET平台提供以下的技术方案来实施工作流的管理:

l         Windows Workflow FoundationWF  WF是实施工作流的一项基本技术。WF也是一个工具,帮助开发者或独立软件供应商(ISVs)建立有序的、以状态机为基础的工作流。WF支持如下几种工作流类型:顺序、状态机、数据驱动和自定义类型。你可以使用开发环境中的WF设计器创建工作流。在.NET 3.5版本中,WF整合WCF,可提供基于服务的工作流。

l         Microsoft Office SharePoint ServerMOSS      MOSS是一个服务器软件,可用来构建一个内容管理和协作的平台。MOSS工作流是构建在WF的一个版本基础之上的。它是在SharePoint服务器环境下的一个人力工作流和协作的解决方案。你可以使用SharePoint管理工具创建基本的工作流。要扩展和自定义工作流,则需要在开发环境中使用WF来创建。你也可以使用Microsoft Office SharePoint设计器或VisualStudio中的WF设计器自定义工作流标记。

l         BizTalk Server      BizTalk使用一个工作流引擎来组织内容,比如系统级的工作流的企业整合。你可以对工作流程进行总体的考虑,定义松散耦合的流程结构,并可以设计在多个应用程序间长时间运行的业务流程,也可以使用BizTalk编排服务。


MOSSBizTalk服务器不是.NET框架和Visual Studio的组成部分。它们是独立的产品,但是是整个.NET平台的一部分。

Web服务器—IIS

微软平台中的网络信息服务组件(IIS)为网络发布提供了全面的支持,包括传输服务、客户端应用程序、管理工具、数据库和应用连接,还有通信加密等。IIS提供以下的一些服务:

l         广域网服务         该服务为超文本文档和使用HTTP协议的其他类型的内容的发布提供了所有必要的功能。并且,该服务具有高性能、可压缩和丰富的配置,而且提供一系列安全和验证选项。

l         文件传输(FTP)服务             该服务允许用户使用FTP协议发送和接收文件。但是,其限制仅能使用基本的方法进行验证。

l         Gopher网络服务        该服务支持一个分布式的文件查询和检索协议。其在现在已很少使用。

l         Internet数据库连接器              这是一个集成的门户和模板脚本机制。其为广域网服务访问ODBC数据库提供了方便。该技术通常会被新的数据访问和脚本技术取代,例如ASP.NETASP.NET数据服务。

l         安全套接字层(SSL)客户端/服务器端              该服务为在HTTP协议之上进行加密通信提供了一种机制。这使客户端和服务器端之间的通信更安全。

l         网络服务管理服务器        这是一个管理平台,还包括相关的工具。可用它在本地或远程管理IIS

l         整合ASP.NET      IIS7.0或更新的版本为了与ASP.NET紧密集成,做了特别的设计。这使在使用ASP.NET创建和发布内容的时候,性能更好,服务器的负载更小。

数据库服务器—SQL Server

在企业应用中,关系型数据库是存储和数据访问的通常方法。.NET平台提供了SQL Server作为数据库引擎。SQL Server针对不同级别的企业应用提供了不同的版本,如单实例版、本地版和企业版。


.NET
平台上的数据访问技术可以用在各个版本的SQL Server上,所以,如果你想缩小或升级版本,你不需要修改你的应用程序。

Visual Studio开发环境

.NET平台提供了一个综合的开发环境——Visual Studio Team System。你可以使用它用你喜欢的语言开发各种.NET平台应用程序。作为一个综合的开发环境,它提供了程序设计、开发、调试和部署一整套的解决方案。该开发环境有不同的版本,分别针对不同类型的开发人员,如架构师、测试人员和其他应用开发全生命周期中的其他人员。为了获取相应的功能,你可以同时安装多个版本。除了Visual Studio,微软还提供了其他的开发工具,如Expression Studio和扩展类库,这些不包括在.NET框架中。

其他的工具和类库

除了Visual Studio,其他的工具和框架也可以加快开发速度,为特定类型的应用开发提供便利。例如:

l        System Center,其提供了对企业级应用进行监控、部署、配置和管理的环境和工具。更多信息,请参考http://www.microsoft.com/systemcenter/en/us/default.aspx

l        Expression Studio,它可以帮助图形化的设计人员创建丰富的界面和动画。更多信息,请参考

l         http://www.microsoft.com/expression/products/Overview.aspx?key=studio

模式与实践的解决方案

l         企业库包含一系列模块,解决了横切关注点的问题。更多信息,请参考http://msdn.microsoft.com/enus/library/cc467894.aspx

l         软件工厂可以加快特定类型应用程序,如智能客户端、WPF应用和Web服务。更多信息,请参考http://msdn.microsoft.com/en-gb/practices/bb969054.aspx

其他相关资料

关于.NET框架的更多信息,可以查看.NET.框架3.5概览http://msdn.microsoft.com/en-us/library/a4t23ktk.aspx

关于.NET框架的更多信息,可以查看.NET.框架概览http://msdn.microsoft.com/en-us/library/zw4w595w(VS.71).aspx

关于Web Service的更多信息,可以查看WCF http://msdn.microsoft.com/en-us/library/ms735119.aspx

关于Web Service的更多信息,可以查看使用ASP.NET实现XML Web Service http://msdn.microsoft.com/en-us/library/ba0z6a33.aspx

关于工作流服务的更多信息,可以查看Office SharePoint Server 2007的工作流http://msdn.microsoft.com/en-us/library/ms549489.aspx

关于工作流服务的更多信息,可以查看WF http://msdn.microsoft.com/en-us/netframework/aa663328.aspx

关于数据访问的更多信息,可以查看数据平台开发http://msdn.microsoft.com/en-gb/data/default.aspx

关于IIS Web服务器的更多信息,可以查看http://msdn.microsoft.com/en-us/library/ms993571.aspx

关于SQL Server的更多信息,可以查看http://msdn.microsoft.com/engb/sqlserver/default.aspx

关于Visual Studio Team System的更多信息,可以查看Visual Studio 2008概览http://msdn.microsoft.com/en-us/vstudio/products/bb931331.aspx

原创粉丝点击