作者:肖承勇 向伟铭 [摘要] 目前,.Net Framework3.5已随着Visual Studio 2008而发布,延续微软的一贯风格,.Net Framework3.5为开发者提供了大量优秀特性,包含了大量新技术,这些新特性、新技术能够融合在一起来进行全新的企业应用架构设计,利用这些新技术、新特性,可以进行快速开发,让企业应用的架构更加灵活,拥有更好的性能和可扩展性。 [关键词] .Net Framework 企业应用 架构 一、引言 随着Web2.0时代的到来,一些有远见的企业也开始思考如何将Web2.0的理念与技术导入企业架构体系,引领企业信息化进入2.0时代。企业2.0是技术与业务相互靠拢的必然结果,是一个社会、商务、技术三者相融合的发展趋势。在这种趋势下,企业快速将产品和服务推向市场便成了第一要务,重量级的软件工程方法逐渐收紧了脚步,以敏捷开发为代表的轻量级软件工程方法被越来越多的使用,.Net Framework是微软为开发企业级应用程序而创建的一个富有革命性的软件开发新平台,它有助于建立轻量级的软件架构,实现功能完善且易于扩展的框架,可以有效地加速企业应用系统开发,使得企业开发复杂的过程变得简洁容易。 二、企业应用架构分析 1.什么是架构 从架构设计师的角度来看,架构就是一套构建系统的准则。通过这套准则,可以把一个复杂的系统划分为一套更简单的子系统的集合,这些子系统之间保持相互独立,并与整个系统保持一致。对于软件架构来说,就是要用一种简洁的结构来支撑整个可以发展的软件系统。 2.企业应用架构 企业应用架构是研究如何将企业的业务功能、需求,以及向外界提供的服务映射到IT(Information Technology)系统的一套准则。在使用这套准则构建企业级的软件系统时,除了要考虑这个系统的架构,以及其应具有的功能行为以外,还要关注整个架构的可用性、性能问题、容错能力、可重用性、安全性、扩展性、可管理维护性、可靠性等各个相关方面。 当今企业级应用软件的规模和复杂性与日俱增,各种开发平台和开发工具繁多,寻求一种合理的架构设计方法和卓有成效的开发平台显得尤为重要。随着2007年1月30日Windows Vista的全球同步发布,.Net Framework 3.0首次内置在操作系统之中,而.Net Framework 3.5也随着Visual Studio 2008而发布,使用.Net Framework 3.5和Visual Studio 2008可以快速、高效地设计、开发和测试企业级应用程序,帮助开发人员和开发团队快速地构建和发布更为完整、互联、详尽的软件解决方案,实现快速的应用程序开发、高效的团队协作和突破性的用户体验。 三、·NET架构设计 在分解复杂的软件系统时,使用的最多的技术之一就是分层。当用分层的思想来考虑系统时,可以将各个子系统想象成按“多层蛋糕”的形式来组织,每一层都依托在其下层之上。在这种组织方式下,上层使用了下层定义的各种服务,而下层对上层却一无所知。 当前企业应用架构已经从早期的两层逐渐演化到现在的N层体系结构,N层体系结构将复杂的企业应用程序实现为多个独立的逻辑部分,也就是多个逻辑层次。在微软的《Application Architecture Guide 2.0》中将一个典型的企业应用分为四个层次:表现层、服务层、业务逻辑层和数据访问层。 表现层处理用户与软件间的交互,主要职责是向用户显示信息,并把从用户那里获取的信息解释成业务逻辑层和数据访问层上的各种动作。 业务逻辑层是系统架构中体现核心价值的部分,用来实现系统的业务需求和功能。它的关注点主要集中在业务规则的制定、业务流程的实现等与业务需求有关的系统设计。 数据访问层,其功能主要是负责数据源的访问,数据源可以是数据库系统、二进制文件、文本文档或是XML文档。 服务层,在表现层和业务逻辑层之间,可以添加一个服务层,用来封装业务逻辑层的业务需求和功能的实现,将它们封装成简单的服务。这样做的好处是:可以为其他的应用程序提供访问本系统的接口。 四、关键技术介绍 .Net Framework 3.5是在以前版本基础之上完善而成,包含了Windows Presentation Foundation (WPF)、Windows Communications Foundation (WCF)、Windows Workflow Foundation (WF)、Windows Card Spaces (WCS)、ASP.NET AJAX、Silverlight、LINQ (语言集成查询)等新技术。这些新技术为.Net环境下的企业应用架构设计提供了良好的技术基础。 1.表示层实现技术 (1)Windows Presentation Foundation(WPF) 一直以来,应用程序的用户界面可以使用不同的技术开发,从MFC到VB,从Windows Form到Web Form,随着Flash等多媒体2D和3D界面的出现,选择也就越来越多。如果想使用一种通用的技术就能够开发各种类型的应用程序界面,这将是一个巨大的挑战。WPF就是为解决这一难题而出现的新一代界面开发技术。WPF是微软.NET Framework 3.5的组成部分之一,它是一套基于XML、.NET Framework、向量绘图技术的表现层开发框架。WPF支持视频、动画、2D或3D图形,以及各种类型的文档,还为桌面客户端、手持设备客户端和浏览器客户端提供了通用基础,统一了开发人员和设计人员创建、显示、操作文档、媒体和用户界面的方法,大大简化了用户界面的开发工作,使应用程序具有一致的外观,为用户提供了具有视觉震撼力的用户体验。 (2)ASP.NET AJAX ASP.NET Ajax技术被整合在ASP.NET之中,是ASP.NET的一种扩展技术。与传统的Web界面技术相比,Ajax可以实现异步处理浏览器页面和服务器交互的功能,可以实现局部页面更新功能。浏览器不需要将整个页面提交到服务器,就能够实现页面的部分更新,并且在这一个与服务器交互过程中,用户不会感觉到页面被刷新,从而提高了应用程序的性能和用户的体验。 (3)Silverlight Silverlight是一个跨浏览器、跨平台的新一代互联网多媒体及交互式内容播放应用插件,作为新一代Web呈现技术,它提供灵活的编程模型,支持AJAX、VB、C#、Python、Ruby等语言,可与现有的 Web 应用程序集成,并内置多媒体技术的支持,可以以很低的成本播放多媒体文件,为用户带来流畅、高清的视频体验。 2.服务层实现技术 Windows Communications Foundation (WCF)。WCF是微软为构建面向服务的应用而提供的分布式通信编程框架,是.NET Framework 3.5的重要组成部分。使用WCF,开发人员可以构建跨平台、安全、可靠和支持事务处理的企业级互联应用解决方案。 WCF是分布式应用程序开发的集大成者,它整合了.Net平台下所有的与分布式系统有关的技术,例如.Net Remoting、Web Services、Enterprise Services、MSMQ等,WCF代表了架构技术的一种发展方向。在WCF框架下,开发基于SOA的分布式系统变得容易了,微软将所有与此相关的技术要素都包含在内,掌握了WCF,就相当于掌握了叩开SOA大门的钥匙。 3.业务逻辑层实现技术 Windows Workflow Foundation (WF)。WF是微软.NET Framework 3.5的组成部分之一,它是一个企业级工作流开发框架和引擎,它可用于创建需要对外部实体的信号作出响应的交互式程序。 工作流是按照特定顺序执行的一系列步骤。WF可用于简单的应用场景,例如,显示基于用户输入的 UI 控件,也可以应用于大型企业会遇到的复杂应用场景,例如,订单处理和库存控制。WF自带一个编程模型、一个可重新承载的可自定义工作流引擎以及用于在 Windows 上快速生成启用工作流的应用程序的工具。 WF可以处理的方案包括:在业务线应用程序中启用工作流、用户界面页流、以文档为中心的工作流、人工工作流、面向服务应用程序的复合工作流、业务规则驱动的工作流、用于系统管理的工作流等。 4.数据访问层实现技术 Language Integrated Query(LINQ)。LINQ (语言集成查询)是.NET Framework 3.5中一项突破性的创新,它在对象领域和数据领域之间架起了一座桥梁。传统上,针对数据的查询都是以简单的字符串表示,而没有编译时类型检查和智能感应支持。此外,程序员还必须针对不同的数据源学习不同的查询语言。而LINQ已经集成在.NET Framework中,已成为编程语言的一个组成部分, LINQ 使查询成为 C# 和 Visual Basic 中的一种语言构造,可以使用语言关键字和熟悉的运算符针对强类型化对象集合编写查询。 LINQ 系列技术提供了针对对象 (LINQ to Objects)、关系数据库 (LINQ to SQL) 和 XML (LINQ to XML) 的一致查询体验。 LINQ作为一个崭新的编程模型,在分布式软件架构中可以代替ORM(Object Relational Mapping,对象关系映射),解决面向对象与关系数据库的矛盾。 五、结束语 随着企业2.0时代的到来,企业开始大量构建面向服务、基于工作流的应用体系,在这样的趋势下,使用.Net Framework3.5提供的新技术来进行架构设计则成为一种必然趋势。本文对企业应用架构设计中需要使用到的关键技术进行了介绍,通过这些技术的使用,可以帮助架构师构建更加灵活,拥有更好的性能和可扩展性的企业应用架构。 参考文献: [1]Martin Fowler:企业应用架构模式[M].北京:机械工业出版社,2004 [2]王雪杨进:J2EE轻量级框架的研究与应用[J].计算机工程与设计,2008,29(14):3628~3630 [3]张海军史维峰刘伟:基于SOA企业应用集成框架研究与实现[J].计算机工程与设计,2008,29(8):2085~2088 [4]曾森范玉顺:面向服务的企业架构[J].计算机应用研究,2008,25(2):540~545 [5]吴鹏飞龙军:基于.NET的可复用应用框架的研究[J].网络安全技术与应用,2008,(11):46~48 [6]Microsoft公司.Application Architecture Guide 2.0[M/OL]. http://www.codeplex.com/AppArchGuide,2008 [7]Microsoft公司.MSDN技术资源库[DB/OL]. http://msdn.microsoft.com/zh-cn/library/w0x726c2.aspx,2007 |