Architecting Enterprise Application on .NET

Slides:



Advertisements
Similar presentations
云计算辅助教学风云录 黎加厚 上海师范大学教育技术系 2010年8月9日.
Advertisements

Database Management System 資料庫管理系統
軟體工程 -物件導向程式設計與UML系統分析實作
系統分析與設計 第九章 資料設計.
Visual Studio .NET企业设计师版中的基于Visio的数据库建模
微软与高校信息化 李 志 霄 博士 首席技术官 微软(中国)有限公司.
第一章 認識 Visual Basic 本章投影片僅供本書上課教師使用,非經同意請勿拷貝或轉載
程式語言與設計 授課教師:蔣德威.
网站如何定制建设???.
第6章 資料庫管理系統 6-1 關聯式資料庫管理系統 6-2 SQL Server資料庫管理系統
建设数字化的卫生监督体系 深 圳 市 卫 生 监 督 所 2006年4月.
網頁技術簡介.
网 站 设 计 与 建 设 Website design and developments
大專院校校園e 化 PKI、智慧卡應用與整合.
商業智慧與資料倉儲 課程簡介 靜宜大學資管系 楊子青.
利用LoadRunner进行 性能测试.
Ch03 VB.NET語法建立ASP.NET 網頁程式設計.
第ㄧ章 認識 VB 2008 與主控台應用程式 注意:本投影片僅供上課使用,非經同意,請勿散播或轉載。
第一章 認識Visual C 環境架構 1-1 認識Visual C Visual Studio 概觀
.NET Framework 3.0 Windows WorkFlow Foundation 工作流设计
Microsoft .NET 第4組 十月15, 2002 B 陳東傑 B 蔣佳勳
Asp.net 基礎.
XML資料傳輸 黃笠宸 4/3.
BizTalk Server 2004.
Arena System Technology Architecture 系统技术架构 1、Database V2(Lotus Notes)V3(Oracle8i) 2、Application Server SilverStream2.53 (Java as server side programming.
軟體工程 -物件導向程式設計與UML系統分析實作
.NET 簡介.
建置、升級與轉換您的資料庫 - Data Tier Applications
Microsoft Project 2003 Gibson New Microsoft Enterprise Project
.NET 簡介.
圖形溝通大師 Microsoft Visio 2003
第1章 .NET与C# 为什么要设计一门新的编程语言? C#在微软的.Net平台中占据什么样的地位?
第十三章 資訊管理的系統開發觀點.
BizTalk Server 2004.
第一章: Java Web 开发技术概述.
第一章 Visual Studio、SQL Server介紹與開發環境
第2章 ADO.NET 2.0概述.
給地球一個美麗環境 P-Manage (mFP Charging ) 2011
第4章(2) 空间数据库 —关系数据库 北京建筑工程学院 王文宇.
基于 C# 的 .NET Framework 程序设计
CDR - Continuous Data Replication
鄭士康 國立台灣大學 電機工程學系/電信工程研究所/ 資訊網路與多媒體研究所
Ch01網際網路、HTML 、 Script 、 ASP.NET簡介
SAP 架構及基本操作 SAP前端軟體安裝與登入 Logical View of the SAP System SAP登入 IDES
第一讲 J2EE基础 博和利初级培训 —开发技能.
顧武雄 Jovi Ku Microsoft特約資深講師
課程名稱:_____________ 指導教授:_____________
第4章(1) 空间数据库 —数据库理论基础 北京建筑工程学院 王文宇.
XML Web Service 开发 第1章 XML Web Service 第2章 XML Web Service 体系结构
多 层 系 统 应 用 及 集 成 缩 略 图 客户端 用户 开发平台 系统分析员,程序员 应用服务器 应用服务器管理员 数据库
軟體工程:如何開發軟體? 把它看成是一件工程。 那麼就會有一些工具、技術、方法,也有管理的議題。
学习导航 学习导航.
微软云计算 --Windows Azure platform
SAP R/3架構及前端軟體安裝 Logical View of the R/3 System SAP Frontend 6.2安裝
Network Application Programming(3rd Edition)
第18章 個人入口網站的建立 18-1入口網站的基礎 18-2 建立網站的搜尋引擎 18-3 網頁組件的個人化功能
橫跨電腦、手機與軟體的全方位端點管控解決方案
21世纪高职高专规划教材 C#语言程序设计 李继武 彭德林 主 编 张 珑 赵 松 周建辉 副主编
模式与实践:Windows Mobile 5.0应用程序架构
DEV 343 VS2005超快速开发方案/EEP2006控件包.
XML Web Service 开发 第1章 XML Web Service 第2章 XML Web Service 体系结构
第1章 ASP.NET基础.
SAP 架構及基本操作 SAP前端軟體安裝與登入 Logical View of the SAP System SAP登入 IDES
IEEM 5352 Enterprise Integration
DEV 343 VS2005超快速开发方案/EEP2006控件包.
蔺华 ISV开发合作经理 平台及开发技术部 微软(中国)有限公司
SAP 架構及前端軟體安裝 Logical View of the SAP System SAP Frontend 7.1安裝 SAP登入
SQL Server 2005 Reporting Services報表設計
Microsoft SharePoint Portal Server 2003 的部署、建置 與系統整合(上)
编译原理 中南大学软件学院 陈志刚.
Presentation transcript:

Architecting Enterprise Application on .NET Peng Huang peng.huang@acm.org

课程设计 Session 1: Session 2: Session 3: Session 4: Session 5: 软件构架的基础知识 .NET软件构架的基础知识 Session 3: 企业级应用程序的构架 Session 4: 案例学习: PetShop .NET Session 5: Teamwork与Bug Tracking 概念工具与实践(可选) 询问是否需要讲述Session 5

Session 1 软件构架的基础知识 系统构架师 软件构架概述 构架框架 Bill Gates到上海发布了Architect 2000计划,希望大家关注并参与

系统构架师 “理想的建筑师应该既是文学家又是数字家,他还应通晓历史,热衷于哲学研究,精通音乐,懂得医药知识,具有法学造诣,深谙天文学及天文计算。” --Vitruvius(古罗马建筑师),约公元前 25 年 举例,一流的设计师会注意很多方面的问题,如巴黎的玻璃金字塔。三流的设计师就会在前门附近设计国家大戏院,而不管是否与环境、历史融合。方中突然出了一个圆。 所以开发良好的企业应用程序的第一步就是寻找优秀的 系统构架师

软件构架概述 构架与设计的关系: 构架的定义: 构架属于设计的一方面,它集中于某些具体的特征 IEEE Working Group on Architecture 把其定义为“系统在其环境中的最高层概念” David Garlan 和 Mary Shaw 认为软件构架是有关如下问题的设计层次: “在计算的算法和数据结构之外,设计并确定系统整体结构成为了新的问题。 结构问题包括总体组织结构和全局控制结构;通信、同步和数据访问的协议;设计元素的功能分配;物理分布;设计元素的组成;定标与性能;备选设计的选择。”

软件构架概述 构架重点 构架只同以下几个具体方面相关: 模型的结构,即组织模式,例如分层。 基本元素,即关键用例、主类、常用机制等,它们与模型中的各元素相对。 几个关键场景,它们表示了整个系统的主要控制流程。 可选特征、产品线状况的服务。 从Windows DNA到.NET,C/S两层,三层,N层 一个系统内的Actor,每一个Actor所需要访问的用例 主要业务的时序 永久类的持久化等。 产品线,例如:活动目录就是一个保持产品线的安全认证一致性。 后面的例子中我们会从一个例子学习到如何构架

Microsoft .NET Framework 什么是构架框架? 构架框架或构架基础设施(中间件) 可以在其上构建某种构架的构件集。许多主要的构架困难应在框架或基础设施中进行解决,而且通常针对于特定的领域:命令和控制、MIS、控制系统等等。 目前比较优秀,总拥有成本低的企业应用构架框架 1.Java J2EE,Windows有Win 32 2.软件向服务转化是目前的业界重点,基于Internet的Web服务是实现这一转变的最佳选择。 Microsoft .NET Framework

Session 2 .NET软件构架的基础知识 .NET Framework .NET Framework 类库 VS.NET中的企业应用程序模板 演示 Duwamish 7 C#中的层次结构 Compare vs6 and j2ee

.NET Framework与VS.NET Operating System Common Language Runtime ADO.NET: Data and XML ASP.NET: Web Services & Web Forms Windows Forms Common Language Specification Visual Studio.NET VB C++ C# JScript … VS.NET是在.NET Framework上工作的最佳选择。 让我们看一看它和.NET Framework的关系 最上一层,支持多种语言,只要支持通用语言规范的语言它都支持。 ASP .NET是基于Web开发技术的核心,Windows Forms类似一个弱化的MFC(企业及网络应用中,Rich Client UI不再是重要组成部分,基于Web的方式将成为主流) ADO.NET提供全面的数据及XML访问技术,微软的UDA(统一数据访问)思想在这里充分得到体现。Database、XML在这里得到充分集成,随着SQL Server下一版本的推出,XML与数据库将充分融合成为XML DB。 CLR是.NET Framework超越Java的主要体现之一,它为所有的语言支持垃圾收集,线程管理等功能 OS就不用说了,MS的强项。 VS .NET则在一个整合的IDE中为.NET Framework提供了一个简单易用、整合企业建模工具的综合开发工具,当Linux还在追求User Friendly的时候,微软早已经进入了Developer Friendly的时代。好处:降低总拥有成本。

VS 6与VS.NET Visual Studio 6.0 Visual Studio .NET ASP HTML generated using XML and XSL Small amount of VB Script Proprietary cache Cookie / session / db state COM+ components ADO disconnected recordsets SQL Server with stored procedures ASP .NET HTML generated using ASP .NET Web controls and ASP .NET Data Binding VB .NET code behind ASP .NET cache ASP .NET session state .Net Assemblies ADO.NET DataSets 一个VS6的程序员如何进化到VS.NET的程序员 概念的对应 Session的统一:关于ASP编程的25个技巧 ADO的演化,左边的XML到哪里去了,UDA,进入和ADO .NET

.NET Framework支持Java语言: Visual J# .NET J2EE and .NET Framework Java: 一种语言 发展为一种平台 Packages J2EE Windows: 一个平台 支持多种语言 Frameworks .NET Framework .NET平台 海容百川 有容乃大 一个建房子的例子。先建好房子,卖毛胚房,支持多种装修风格。 先装修好样板房,然后卖期房,房子卖出去了,可是某些大梁还没有搭。而且一套房子有很多人设计施工,不统一,千奇百怪什么都有。 J2EE的奇怪之处,向前不兼容。 .NET Framework支持Java语言: Visual J# .NET

.NET Framework基本概念 一个基于Internet高度分布式计算环境的以简化应用程序开发为目的的全新计算平台 Common Language Runtime (CLR) 一个在运行时管理代码的代理,提供核心服务,如:内存管理、线程管理、 remoting,强制保证代码的安全和正确。 .NET Framework 类库 一个全面的、面对对象的可重用类集合,可以用于开发包括传统的命令行、GUI应用程序,还可以开发基于ASP.NET和。 code management managed code unmanaged code Code developed with a language compiler that targets the runtime is called managed code; it benefits from features such as cross-language integration, cross-language exception handling, enhanced security, versioning and deployment support, a simplified model for component interaction, and debugging and profiling services.

Globalization and localization Runtime infrastructure services .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.Collections 集合对象,包括队列、数组、哈希表、链表等。 System.IO 简单数据流访问与管理,包括文件I/O、内存I/O等。 System.Text 字符编码、转换和字符串处理。 System.Text.RegularExpressions 全面支持正规表达式。 System.Threading 多线程支持,包括锁定和同步。 Rich, client-side GUI System.Drawing 丰富的2-D功能和GDI+支持。 System.Windows.Forms Windows传统应用程序的丰富界面特性支持 。

.NET Framework类库 分类 Namespace 功能 Web Services System.Web 支持Web服务器和 client管理、通信与设计。提供ASP.NET的核心支持,包括Web Forms。 System.Web.Services 基于SOAP的Web Service的客户与服务器端支持。 .NET Framework security System.Security 访问.NET Framework安全系统的基本机制。 System.Security.Cryptography 编码及解码服务,包括数据的编码、解码、随机数生成、消息认证、数字化签名的支持。 Data System.Data 访问、管理数据和数据源。 System.Xml 处理XML支持。 System.Xml.Serialization 对象到XML的双向映射。

.NET Framework类库 分类 Namespace 功能 Framework services System.Diagnostics 跟踪调试代码支持,Debug and Trace System.DirectoryServices 访问活动目录。 System.Management 服务与应用程序管理工具 System.Messaging 微软消息队列 (MSMQ) 的访问与管理,消息的接收与发送。 System.ServiceProcess 安装、执行基于Windows的服务程序,不能访问特定服务,诸如Active Directory、Web Services。 System.Timers 定时器、其他更复杂的应用程序时间调度

.NET Framework的优势 提高生产力 整合性 完全面向对象 部署 高性能 总拥有成本低 易于重用 提供构架企业应用程序的全面支持 操作系统独立性 平台独立性 高性能 总拥有成本低 与J2EE比较 Java难学,J2EE整合度不高,部分Spec没有实现 部署复杂,AP是内存老虎,拥有成本极高 大家总说Java免费,去看看那一个企业应用中用的Application Server不花钱,配上Oracle和价格不菲Java的开发员,系统的总拥有成本实在令人不敢恭维。 举例:Unisys在一个机场项目中准备使用HP的小型机,开始提出用一个CPU,马上有人反对,说有一个CPU在性能上有非常不愉快的经历,准备在预算中加入第二个CPU,一看报价,3万多USD。顿时印度鬼项目经理脸色大变。后来再看用户数,Oracle上个某个用户数一定要买企业版,几个子系统下来,这个鬼问了我一句,为什么我们不用SQL Server。便宜而且性能够用。

VS.NET中的企业应用程序模板 提供多层结构模板 Business Façade Business Rules Data Access System Framework Web Service Web UI Win UI 多层模型的典型体现,已经支持Mobile,Smart Device,Windows CE 2002等

演示 Visual Studio .NET中的企业应用程序模板 Duwamish 7 C#中的层次结构 简要介绍企业模板与N层结构(含Web Service)在VS中的表现形式与使用。

Session 3 企业级应用程序的构架 如何编写好的需求 Design Goals .NET Framework对设计目标的支持 企业级应用程序的部署

如何编写好的需求 功能需求必须是可测试的 功能需求必须避免实现细节 好的功能需求 不好的功能需求 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 customer Administrator must be able to change the name of a customer 不好的功能需求 该站点必须易于使用(功能需求不可测试) 该站点必须用VB.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 technology and Design Goals 可用性(Availability Goal) 可维护性(Maintainability Design Goal) 可管理性(Manageability Design Goals) 高性能(Performance Design Goal) 可靠性(Reliability Design Goal) 可缩放性(Scalability Design Goal) 安全性(Security Design Goal) 其实企业级应用程序在UI这个层面上远远不如Desktop应用程序的要求那样高, 例如:大家经常提的Enterprise Portal和很久以前在操作系统桌面上就通过用户个人配置文件实现了。 举Double Click Adserver的例子,其实就是一个基于Web的按个人配置的企业应用程序。My Yahoo,My MSN都是这样的例子。 那么企业应用程序与众不同的地方在哪里呢? 7个Design Goals

Maintainability Design Goal 可维护性 代码自然的映射到设计文档 代码合理划分,易于多个开发组维护 .NET Framework的支持 Use Cases implemented directly in Business Façade component Code segmented into many Visual Studio projects that can be modified together, or independently 设计文件自然映射代码,不要脱节 代码合理划分,多个小组维护,在VS .NET中一个Solution包含几个Project就是很好的例子

Availability Goal 可用性 .NET Framework的支持 100% 正常运行 Web Farm ASP.NET Availability Enhancements Session State Stored Externally in Session Server Automatic Problem Detection and Web Server Restart Without Interruption of Service Replace DLLs Used By Site, Without Interruption of Service 911出了事,好几个金融公司倒闭,系统挂了,把客户资料丢了。

Manageability Design Goals 可管理性 变更系统配不需要重启动系统 系统跟踪和系统日志功能,系统性能监视 .NET Framework的支持 Store configuration info in Web.config Trace and log to the event log using the CLR EventLog class Trace to a text file using the CLR FileInfo and StreamWriter classes ASP.NET provides performance counters for each web application Requests and response statistics Cache statistics Error statistics Transaction statistics

Performance Design Goal 高性能 超越J2EE上的PetShop .NET Framework的支持 ASP.NET compiles pages into executables Utilize ASP.NET page output caching Full Web Farm support through external session state, and stateless classes

Reliability Design Goal 可靠性 “温柔”的处理错误 系统内部 “友好”的处理错误 系统外部 .NET Framework的支持 Exception based error handling ASP.NET custom error page support

Scalability Design Goal 缩放性 Must scale up and out .NET Framework的支持 Scale up through ASP.NET Web Garden support Scale out through external session state. Access components locally or through .NET remoting. 垂直扩展(内部多部件),水平扩展(多机)

Security Design Goal 安全性 .NET Framework的支持 Require authentication to prevent URL spoofing .NET Framework的支持 Utilize ASP.NET built-in form authentication

企业级应用程序的简单部署 前端防火墙 中间放Web及Application服务器 最后放数据服务器 Build all on .NET Servers

Session 4 案例研究: PetShop .NET PetShop .NET与PetShop J2EE PetShop .NET系统模型 PetShop .NET中的Web Service 演示: Visio与PetShop .NET软件构架

Overview of PetShop .NET 主要业务:在线宠物销售 B2C的商业模式 基本功能: 会员管理、帐号管理、购物车、搜索、结帐 构架于Microsoft .NET平台之上

Overview of PetShop .NET J2EE体系结构的经典之作 看看它在.NET上是什么样

Overview of PetShop .NET 演示PetShop .NET Solution

PetShop .NET与PetShop J2EE 代码编写量比较 性能与可缩放性比较 占用CPU百分比比较 比较的本质: .NET Framework与J2EE两个软件基础框架在构架企业应用程序上的优劣

代码编写量比较

代码编写量比较 简单就是美 实现同样的功能需求:三分之一的代码编写量 配置减少: 中间层减少: 代码减少意味着什么: .NET 4410行,J2EE 14273行 配置减少: .NET 74行,J2EE 2566行 中间层减少: .NET 710行, J2EE 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 描述用户如何做某事

数据模型 在设计中使用Visio对数据库建模 利用Visio分析原有数据库 ER vs. ORM

Web Service Web Service Definition Web services are loosely coupled software components delivered over Internet standard technologies. Daryl Plummer, Gartner

Web Service Characteristics Programmatic interface Using standard web protocols Loosely-coupled connections

Web Service Hailstorm .NET My Services Where is the web service ? NG Web Application Web-accessible XML-based services Internet, Intranet, Extranet B2B, B2C, P2P Application Service Schedule, Email, stock quotes System Service Directory, messaging, database, security Hailstorm .NET My Services

Web Service B2B 和 EAI的最佳选择 PetShop .NET:OrderWebService Business Rules GetOrderDetails() SOAP method Business Rules Web Browser Data Access XML Database Application

Demo Visio与PetShop .NET建模 PetShop .NET中的Web Service PetShop Solution 软件建模 数据库建模 PetShop .NET中的Web Service GetOrderDetails() SOAP 方法 详细介绍PetShop的高层次UML模型(Architect需要关注的) 详细介绍PetShop增加的Web Service,实际增加。

Session 5 Teamwork与Bug Tracking 工具与实践 演示: VSS and VS.NET演示 Bug Tracking的基本知识 演示:Bug Tracking Tool

Teamwork的基本知识 目标: On time and on budget 企业软件开发的需求需要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.0C PetShop .NET项目

Bug Tracking的基本知识 目标:交付满足客户需求的高质量软件 管理的对象:不仅仅是Bug Bug Tracking的机制 Bugs and Features Bug 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用户