《微软程序员高级培训教程系列资料.ppt》由会员分享,可在线阅读,更多相关《微软程序员高级培训教程系列资料.ppt(61页珍藏版)》请在三一办公上搜索。
1、Architecting Enterprise Application on.NET,Peng Huang,在.NET上构架企业级应用程序,课程设计,Session 1:软件构架的基础知识Session 2:.NET软件构架的基础知识Session 3:企业级应用程序的构架Session 4:案例学习:PetShop.NETSession 5:Teamwork与Bug Tracking概念工具与实践(可选),Session 1软件构架的基础知识,系统构架师软件构架概述构架框架,系统构架师,“理想的建筑师应该既是文学家又是数字家,他还应通晓历史,热衷于哲学研究,精通音乐,懂得医药知识,具有法学造
2、诣,深谙天文学及天文计算。”-Vitruvius(古罗马建筑师),约公元前 25 年,所以开发良好的企业应用程序的第一步就是寻找优秀的,系统构架师,软件构架概述,构架与设计的关系:构架属于设计的一方面,它集中于某些具体的特征 构架的定义:IEEE Working Group on Architecture 把其定义为“系统在其环境中的最高层概念”David Garlan 和 Mary Shaw 认为软件构架是有关如下问题的设计层次:“在计算的算法和数据结构之外,设计并确定系统整体结构成为了新的问题。结构问题包括总体组织结构和全局控制结构;通信、同步和数据访问的协议;设计元素的功能分配;物理分布
3、;设计元素的组成;定标与性能;备选设计的选择。”,软件构架概述,构架重点 构架只同以下几个具体方面相关:模型的结构,即组织模式,例如分层。基本元素,即关键用例、主类、常用机制等,它们与模型中的各元素相对。几个关键场景,它们表示了整个系统的主要控制流程。可选特征、产品线状况的服务。,什么是构架框架?,构架框架或构架基础设施(中间件)可以在其上构建某种构架的构件集。许多主要的构架困难应在框架或基础设施中进行解决,而且通常针对于特定的领域:命令和控制、MIS、控制系统等等。目前比较优秀,总拥有成本低的企业应用构架框架,Microsoft.NET Framework,Session 2.NET软件构架
4、的基础知识,.NET Framework.NET Framework 类库VS.NET中的企业应用程序模板演示Duwamish 7 C#中的层次结构,.NET Framework与VS.NET,VS 6与VS.NET,J2EE and.NET Framework,Java:一种语言发展为一种平台PackagesJ2EEWindows:一个平台支持多种语言Frameworks.NET Framework,.NET平台海容百川有容乃大,.NET Framework支持Java语言:Visual J#.NET,.NET Framework基本概念,一个基于Internet高度分布式计算环境的以简化应
5、用程序开发为目的的全新计算平台Common Language Runtime(CLR)一个在运行时管理代码的代理,提供核心服务,如:内存管理、线程管理、remoting,强制保证代码的安全和正确。.NET Framework 类库 一个全面的、面对对象的可重用类集合,可以用于开发包括传统的命令行、GUI应用程序,还可以开发基于ASP.NET和。code managementmanaged code unmanaged code,.NET Framework类库,The.NET Framework Class Library,.NET Framework类库,.NET Framework类库,.
6、NET Framework的优势,提高生产力整合性完全面向对象易于重用提供构架企业应用程序的全面支持部署操作系统独立性平台独立性高性能总拥有成本低,VS.NET中的企业应用程序模板,提供多层结构模板Business FaadeBusiness RulesData AccessSystem FrameworkWeb ServiceWeb UIWin UI,演示,Visual Studio.NET中的企业应用程序模板Duwamish 7 C#中的层次结构,Session 3 企业级应用程序的构架,如何编写好的需求Design Goals.NET Framework对设计目标的支持企业级应用程序的部
7、署,如何编写好的需求,功能需求必须是可测试的 功能需求必须避免实现细节好的功能需求Administrator must be able to create,read,update,and delete(CRUD)customer accounts.Administrator must be able to configure the max outstanding balance for a customerAdministrator must be able to change the name of a customer不好的功能需求该站点必须易于使用(功能需求不可测试)该站点必须用VB.
8、NET语言编写(涉及实现细节),如何编写好的需求,An Internet customer will be able to browse the PetShop.NET pets catalog by category.An Internet customer will be able to search for specific pets by keyword:An Internet customer will be able to select one or more pets and place them in a shopping cart for purchase.,.NET tec
9、hnology and Design Goals,可用性(Availability Goal)可维护性(Maintainability Design Goal)可管理性(Manageability Design Goals)高性能(Performance Design Goal)可靠性(Reliability Design Goal)可缩放性(Scalability Design Goal)安全性(Security Design Goal),Maintainability Design Goal,可维护性代码自然的映射到设计文档代码合理划分,易于多个开发组维护.NET Framework的支持
10、Use Cases implemented directly in Business Faade componentCode segmented into many Visual Studio projects that can be modified together,or independently,Availability Goal,可用性100%正常运行.NET Framework的支持Web FarmASP.NET Availability EnhancementsSession State Stored Externally in Session ServerAutomatic P
11、roblem Detection and Web Server Restart Without Interruption of ServiceReplace DLLs Used By Site,Without Interruption of Service,Manageability Design Goals,可管理性变更系统配不需要重启动系统系统跟踪和系统日志功能,系统性能监视.NET Framework的支持Store configuration info in Web.configTrace and log to the event log using the CLR EventLog
12、classTrace to a text file using the CLR FileInfo and StreamWriter classesASP.NET provides performance counters for each web applicationRequests and response statisticsCache statisticsError statisticsTransaction statistics,Performance Design Goal,高性能超越J2EE上的PetShop.NET Framework的支持ASP.NET compiles pa
13、ges into executablesUtilize ASP.NET page output cachingFull Web Farm support through external session state,and stateless classes,Reliability Design Goal,可靠性“温柔”的处理错误系统内部“友好”的处理错误系统外部.NET Framework的支持Exception based error handlingASP.NET custom error page support,Scalability Design Goal,缩放性Must scal
14、e up and out.NET Framework的支持Scale up through ASP.NET Web Garden supportScale out through external session state.Access components locally or through.NET remoting.,Security Design Goal,安全性Require authentication to prevent URL spoofing.NET Framework的支持Utilize ASP.NET built-in form authentication,企业级应
15、用程序的简单部署,Session 4案例研究:PetShop.NET,PetShop.NET概述PetShop使用演示PetShop.NET与PetShop J2EEPetShop.NET系统模型PetShop.NET中的Web Service演示:Visio与PetShop.NET软件构架PetShop.NET中的Web Service,Overview of PetShop.NET,PetShop.NET是一个简单的宠物销售网站系统主要业务:在线宠物销售B2C的商业模式基本功能:会员管理、帐号管理、购物车、搜索、结帐构架于Microsoft.NET平台之上,Overview of PetS
16、hop.NET,J2EE体系结构的经典之作看看它在.NET上是什么样,Overview of PetShop.NET,演示PetShop.NET Solution,PetShop.NET与PetShop J2EE,同样的应用在.NET上重写后表现如何?代码编写量比较性能与可缩放性比较占用CPU百分比比较比较的本质:.NET Framework与J2EE两个软件基础框架在构架企业应用程序上的优劣,代码编写量比较,代码编写量比较,实现同样的功能需求:三分之一的代码编写量.NET 4410行,J2EE 14273行配置减少:.NET 74行,J2EE 2566行中间层减少:.NET 710行,J2E
17、E 5404行代码减少意味着什么:拥有成本低更易于维护,简单就是美,性能与可缩放性比较,占用CPU百分比比较,Logical Layer Architecture,关键的Use Case Diagram,Use Case Diagram从用户通过系统能做什么角度描述系统Software Model,关键的Use Case Diagram,Customer Account Management,关键的Use Case Diagram,Pet Search,关键的Use Case Diagram,Purchase Pet,Activity Diagram,Activity Diagram描述用户如
18、何做某事,数据模型,在设计中使用Visio对数据库建模利用Visio分析原有数据库ER vs.ORM,Web Service,Web Service DefinitionWeb services are loosely coupled software components delivered over Internet standard technologies.Daryl Plummer,Gartner,Web Service Characteristics,Programmatic interfaceUsing standard web protocolsLoosely-coupled
19、connections,Web Service,Where is the web service?NG Web ApplicationWeb-accessible XML-based servicesInternet,Intranet,ExtranetB2B,B2C,P2PApplication ServiceSchedule,Email,stock quotesSystem ServiceDirectory,messaging,database,security,Hailstorm,Web Service,B2B 和 EAI的最佳选择PetShop.NET:OrderWebServiceGe
20、tOrderDetails()SOAP method,DataAccess,Database,BusinessRules,WebBrowser,XML,Application,Demo,Visio与PetShop.NET建模PetShop Solution软件建模数据库建模PetShop.NET中的Web ServiceGetOrderDetails()SOAP 方法,Session 5Teamwork与Bug Tracking工具与实践,Teamwork的基本知识演示:VSS and VS.NET演示Bug Tracking的基本知识演示:Bug Tracking Tool,Teamwork
21、的基本知识,目标:On time and on budget企业软件开发的需求需要Teamwork什么样的Teamwork是合理的Teamwork的机制Check in,Check out,Get last version每日构建如何实现Teamwork工具:Visual Source Safe经理的任务:push and check,not coding,VSS and VS.NET演示,在Visual Studio.NET中使用Visual Source Safe 6.0CPetShop.NET项目,Bug Tracking的基本知识,目标:交付满足客户需求的高质量软件管理的对象:不仅仅是
22、BugBugs and FeaturesBug Tracking的机制保护程序员有计划的Debug衡量Bug的两个指标出现频率和严重程度,Bug Tracking Tool演示,小工具:Bug Tracking System一个基于Access的中小项目Bug Tracking工具,The Road to.NET Architect,充分了解.NET Framework功能结构充分了解OOA/D在Framework上为系统建模充分利用Framework的体系结构优势,实现强大的企业级解决方案构架满足客户需求的完美应用软件结构成为MSDN Universal用户,.NET Architect Resource,MSDN Online:Rational:Cetus LinksMSDN.NET Resource,感谢,MSDN Universal and MSDN Online此次讲座的所有素材及演示程序均来自:MSDN Universal和MSDN OnlineMSDN Online Chinahttp:/MSDN Online China大量的技术参考文献提供了对.NET Platform更深刻的理解,Q&A,