《微软.net程序员高级培训教程系列资料》由会员分享,可在线阅读,更多相关《微软.net程序员高级培训教程系列资料(61页珍藏版)》请在金锄头文库上搜索。
1、Architecting Enterprise Application on .NETPeng Huangpeng.huangacm.org在.NET上构架企业级应用程序课程设计uSession 1:软件构架的基础知识uSession 2:.NET软件构架的基础知识uSession 3:企业级应用程序的构架uSession 4:案例学习: PetShop .NETuSession 5:Teamwork与Bug Tracking 概念工具与实践(可选)Session 1 软件构架的基础知识u系统构架师u软件构架概述u构架框架系统构架师u“理想的建筑师应该既是文学家又是数字家 ,他还应通晓历史,热
2、衷于哲学研究,精 通音乐,懂得医药知识,具有法学造诣, 深谙天文学及天文计算。” -Vitruvius(古罗马建筑师),约公元前 25 年所以开发良好的企业应用程序的所以开发良好的企业应用程序的 第一步就是寻找优秀的第一步就是寻找优秀的系统构架师系统构架师软件构架概述u构架与设计的关系:构架属于设计的一方面,它集中于某些具体的特征 u构架的定义:IEEE Working Group on Architecture 把其定义为“ 系统在其环境中的最高层概念”David Garlan 和 Mary Shaw 认为软件构架是有关如 下问题的设计层次: “在计算的算法和数据结构之外,设计并确定系统整体
3、 结构成为了新的问题。结构问题包括总体组织结构和全局控制结构;通信、 同步和数据访问的协议;设计元素的功能分配;物理 分布;设计元素的组成;定标与性能;备选设计的选 择。”软件构架概述u构架重点 构架只同以下几个具体方面相关: 模型的结构,即组织模式,例如分层。 基本元素,即关键用例、主类、常用机制等,它们 与模型中的各元素相对。 几个关键场景,它们表示了整个系统的主要控制流 程。 可选特征、产品线状况的服务。 什么是构架框架?u构架框架或构架基础设施(中间件)可以在其上构建某种构架的构件集。许多主要 的构架困难应在框架或基础设施中进行解决, 而且通常针对于特定的领域:命令和控制、 MIS、控
4、制系统等等。 u目前比较优秀,总拥有成本低的企业应用 构架框架Microsoft .NET FrameworkSession 2 .NET软件构架的基础知识u.NET Frameworku.NET Framework 类库uVS.NET中的企业应用程序模板u演示Duwamish 7 C#中的层次结构.NET Framework与VS.NETOperating SystemCommon Language RuntimeADO.NET: Data and XMLASP.NET: Web Services & Web FormsWindows FormsCommon Language Specifi
5、cationVisual Studio.NETVBC+C#JScriptVS 6与VS.NETVisual Studio 6.0Visual Studio .NET ASP HTML generated using XML and XSLSmall amount of VB Script Proprietary cache Cookie / session / db state COM+ components ADO disconnected recordsets SQL Server with stored proceduresASP .NET HTML generated using AS
6、P .NET Web controls and ASP .NET Data Binding VB .NET code behind ASP .NET cache ASP .NET session state .Net Assemblies ADO.NET DataSets SQL Server with stored proceduresJ2EE and .NET FrameworkuJava:一种语言发展为一种平台PackagesJ2EEuWindows:一个平台支持多种语言Frameworks.NET Framework.NET.NET平台平台海容百川海容百川有容乃大有容乃大.NET Fr
7、amework.NET Framework支持支持JavaJava语言语言: : Visual J# .NETVisual J# .NET.NET Framework基本概念u一个基于Internet高度分布式计算环境的以简化应 用程序开发为目的的全新计算平台Common Language Runtime (CLR)一个在运行时管理代码的代理,提供核心服务,如:内存管理 、线程管理、 remoting,强制保证代码的安全和正确。 .NET Framework 类库 一个全面的、面对对象的可重用类集合,可以用于开发包括传 统的命令行、GUI应用程序,还可以开发基于ASP.NET和。ucode m
8、anagementmanaged code unmanaged code .NET Framework类库Component model Configuration Data Framework services Globalization and localization Net Common tasks Reflection Rich, client-side GUI Runtime infrastructure services Web Services The .NET Framework Class Library分类Namespace功能Common tasks System.Co
9、llections 集合对象,包括队列、数组、哈希表 、链表等。 System.IO 简单数据流访问与管理,包括文件I/O、内存I/O 等。System.Text 字符编码、转换和字符串处理。System.Text.RegularExpressi ons 全面支持正规表达式。System.Threading 多线程支持,包括锁定和同步。Rich, client-side GUI System.Drawing 丰富的2-D功能和GDI+支持。System.Windows.Forms Windows传统应用程序的丰富界面特性支持 。.NET Framework类库分类Namespace功能Web
10、Services System.Web 支持Web服务器和 client管理、通信与设计。提供 ASP.NET的核心支持,包括Web Forms。 System.Web.Services 基于SOAP的Web Service的客户与服务器端支持。.NET Framework security System.Security 访问.NET Framework安全系统的基本机制。System.Security.Crypto graphy 编码及解码服务,包括数据的编码、解码、随机数生成、 消息认证、数字化签名的支持。Data System.Data 访问、管理数据和数据源。System.Xml 处
11、理XML支持。System.Xml.Serializatio n 对象到XML的双向映射。.NET Framework类库分类Namespace功能Framework services System.Diagnostics跟踪调试代码支持,Debug and TraceSystem.DirectoryServices访问活动目录。System.Management 服务与应用程序管理工具System.Messaging 微软消息队列 (MSMQ) 的访问与管理,消息的 接收与发送。System.ServiceProcess 安装、执行基于Windows的服务程序,不能访问 特定服务,诸如Act
12、ive Directory、Web Services 。 System.Timers 定时器、其他更复杂的应用程序时间调度.NET Framework的优势u提高生产力u整合性u完全面向对象易于重用提供构架企业应用程序的全面支持u部署操作系统独立性平台独立性u高性能u总拥有成本低VS.NET中的企业应用程序模板提供多层结构模板提供多层结构模板 Business FaadeBusiness Faade Business RulesBusiness Rules Data AccessData Access System FrameworkSystem Framework Web ServiceWe
13、b Service Web UIWeb UI Win UIWin UI演示uVisual Studio .NET中的企业应用程序模板Duwamish 7 C#中的层次结构Session 3企业级应用程序的构架u如何编写好的需求uDesign Goalsu.NET Framework对设计目标的支持u企业级应用程序的部署如何编写好的需求u功能需求必须是可测试的 u功能需求必须避免实现细节u好的功能需求Administrator must be able to create, read, update, and delete (CRUD) customer accounts.Administrat
14、or must be able to configure the max outstanding balance for a customerAdministrator must be able to change the name of a customeru不好的功能需求该站点必须易于使用(功能需求不可测试)该站点必须用VB.NET语言编写(涉及实现细节)如何编写好的需求uAn Internet customer will be able to browse the PetShop .NET pets catalog by category.uAn Internet customer wi
15、ll be able to search for specific pets by keyword:uAn Internet customer will be able to select one or more pets and place them in a shopping cart for purchase.u.NET technology and Design Goalsu可用性(Availability Goal)u可维护性(Maintainability Design Goal)u可管理性(Manageability Design Goals)u高性能(Performance D
16、esign Goal)u可靠性(Reliability Design Goal)u可缩放性(Scalability Design Goal)u安全性(Security Design Goal)Maintainability Design Goalu可维护性代码自然的映射到设计文档代码合理划分,易于多个开发组维护u.NET Framework的支持Use Cases implemented directly in Business Faade componentCode segmented into many Visual Studio projects that can be modified together, or independentlyAvailability Goalu可用性100% 正常运行u.NET Framework的支持Web FarmASP.NET Availability