NET开发及架构分析_第1页
NET开发及架构分析_第2页
NET开发及架构分析_第3页
NET开发及架构分析_第4页
NET开发及架构分析_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、NET开发及架构分析开发及架构分析1 NET组件开发的原理及方式 2 设计模式介绍及抽象工厂 3 消息传递的简单介绍4 WebService的简单介绍及示例 5 Remoting的简单介绍及示例NET组件开发的原理及方式组件开发的原理及方式 面向对象系统开发 组件化系统开发 组件开发之后是服务从对象到服务历程从对象到服务历程 面向对象(Object Oriented,简称OO)是当前计算机界关心的重点,它是90年代软件开发方法的主流。面向对象的概念和应用已超越了程序设计和软件开发,扩展到很宽的范围。如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领

2、域。 面向对象的程序设计(Object Oriented Programming,简称OOP,亦有译为对象导向),指一种程序设计范型,同时也是是一种程序开发的方法论。它的最大特点是能够大幅度的提高软件项目的成功率,减少日后的维护费用,提高软件的可移植性和可靠性。“对象(Object)”一词,早在十九世纪就有现象学大师胡塞尔提出并定义。对象是世界中的物体在人脑中的映象,是人的意识之所以为意识的反映,是做为一种概念而存在的先念的东西,它还包括了人的意愿。对象(Object)是问题域或实现域中某些事物的一个抽象,它反映此事物在系统中需要保存的信息和发挥的作用;它是一组属性和有权对这些属性进行操作的一

3、组服务的封装体。 关于对象可以从两个方面描述:1)对象对象是人们要进行研究的任何事物,从最简单的整数到复杂的飞机等均可看作对象,它不仅能表示具体的事物,还能表示抽象的规则、计划或事件。2)对象的状态和行为对象具有状态,一个对象用数据值来描述它的状态。对象还有操作,用于改变对象的状态,对象及其操作就是对象的行为。对象实现了数据和操作的结合,使数据和操作封装于对象的统一体中面向对象系统开发面向对象系统开发 对象 具体的 实例 类 抽象的 定义封装就是把类的内部隐藏起来 好处:减少耦合 ,类内部的实现可以自由地修改,类具有清晰的对外接口数据隐藏实现方法就是 访问限制修饰符public protect

4、ed internalinternalprotectedprivate继承性 inheritance一个类可以有能力直接从另一个类获得其代码和数据派生类从基类那里获得其所有的成员C#只支持单继承防止继承 public sealed class classname何时使用继承代码重用,减少编写的代码量设计重用 公用的字段和方法可以放到父类中,然后由其派生新的子类子类有自己的字段和方法多态性是面向对象程序设计中的重要概念。在运行时,可以通过指向基类的应用,来调用实现派生类中的方法。同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。多态性通过派生类覆写基类中的虚函数型方法来实现。重载O

5、verload 存在于同一类中方法名必须相同参数列表必须不相同返回类型可以不相同覆写Override 存在与继承关系的类中只有虚方法和抽象方法才能覆写相同的方法名称相同的参数列表相同的返回值类型抽象方法 abstract是必须被派生类覆写的方法可以看成没有实现体的虚方法虚函数使用virtual关键字public virtual bool withdraw()接口 interface接口为类提供了蓝图接口只提供定义实现接口的数据类型必须提供接口成员的实现接口本身可以从多个基接口派生UML(Unified Modeling Language)UML(Unified Modeling Languag

6、e)语言语言UML是一种定义良好、易于表达、功能强大且普遍适用的建模语言。它融入了软件工程领域的新思想、新方法和新技术。它的作用域不限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发全过程。面向对象的建模工具:Rational Rose 2003/Rational XDE for .NETPower Designer 12组件化系统开发组件化系统开发 创建可重用的组件 重用现有的组件来缩短开发时间 建立一贯的组件理念 制定一个组件策略 Patterns和Practices 制定一个设计-评审计划 建立知识库 给团队中的成员进行培训知识库的内容 激励团队的成员维护知识库的内容PetSh

7、op4.0范例演示多层应用程序体系结构多层应用程序体系结构为了重用、模块化和可维护,尽量按照程序逻辑将应用程序代码划分为松耦合的层次结构典型的3层逻辑构架表示层商业逻辑层数据访问层(数据存储层)将不同的逻辑层次部署到多个物理层当中,实现部署的可扩展性典型的3层物理构架表示层UI,例如WinForms或ASP.NET页面中间层商业逻辑组件,一般运行在宿主环境下数据访问层高性能的、并发RDBMS,例如Microsoft SQL ServerTM原因分工明确 结构灵活部署方便 易于管理扩展性强注意:“层”并不是指“进程”或“主机”面向服务的构架面向服务的构架当为企业设计应用程序时,高可伸缩性是极为重

8、要的设计目标Service-Oriented Architecture(SOA)要求设计人员将代码按照层次分隔开来代码之间建立松耦合的关系可伸缩性SOA能够带来更多的吞吐量,支持同时处理更多的并发请求SOA(面向服务架构)是我们软件开发设计的理想境界!公司:http:/ 设计模式的概念 设计模式的基本原则 设计模式的应用 抽象工厂介绍 设计模式是规则吗?设计模式是规则吗?地上本没有路,走得人多了也就成了路。设计模式如同此理,它是经验的传承,并非体系;是被前人发现,经过总结形成了一套某一类问题的一般性解决方案,而不是被设计出来的定性规则;它不像算法那样可以照搬照用。 设计模式是架构吗?设计模式是

9、架构吗?架构和模式应该是一个属于相互涵盖的过程,但是总体来说架构更加关注的是所谓的High-Level Design,而模式关注的重点在于通过经验提取的“准则或指导方案”在设计中的应用,因此在不同层面考虑问题的时候就形成了不同问题域上的模式。模式的目标是,把共通问题中的不变部分和变化部分分离出来。不变的部分,就构成了模式,因此,模式是一个经验提取的“准则”,并且在一次一次的实践中得到验证,在不同的层次有不同的模式,小到语言实现,大到架构。在不同的层面上,模式提供不同层面的指导。个人理解参考一种套路一种方法论一种编程秘笈 武功套路是习武的门径。新手要一招一式地练习套路,烂熟于心之后,熟能生巧,在

10、实战之中即可见招拆招、运用自如此时习武之人已从“新手”成长为“好手”。“高手”则没有套路,实战之中只有自然反应,然而一招一式浑然天成、恰到好处,似有似无、无中生有。“高手”之上还有“高高手”,他们达到的境界非我等凭借金氏武侠小说可以揣测。 设计模式之于设计,好比套路之于武术。“新手”要一个接一个地学习模式,“好手”能够活用模式,“高手”则没有模式。 设计模式的“内功”是面向对象的基本原则。这些原则是“神”,模式是“形”。高手拼的是“内功”,对面向对象基本原则有了深刻的领悟,才能用好设计模式,避免“走火入魔”。为什么使用设计模式为什么使用设计模式对任何设计都可以凭主观(对设计很难做出客观评价)判

11、断得出它是一个好的设计,还是一个坏的设计。使用设计模式是为了避免坏的设计。Martin叔叔在他的著作敏捷软件开发 原则、模式与实践中描述了拙劣设计的症状:僵化性(Rigidity):设计难以改变。 脆弱性(Fragility):设计易于遭到破坏。 牢固性(Immobility):设计难以重用。 粘滞性(Viscosity):难以做正确的事情。 不必要的复杂性(Needless Complexity):过分设计。 不必要的重复(Needless Repetition):过多的重复。 晦涩性(Opacity):混乱的表达。 几条更具体的设计原则 单一职责原则(SRP): 一个类应该仅有一个引起它变

12、化的原因。 开放封闭原则(OCP): 类模块应该是可扩展的,但是不可修改(对扩展开放,对更改封闭) Liskov 替换原则(LSP): 子类必须能够替换它们的基类 依赖倒置原则(DIP): 高层模块不应该依赖于低层模块,二者都应该依赖于抽象。 抽象不应该依赖于实现细节,实现细节应该依赖于抽象。 接口隔离原则(ISP): 不应该强迫客户程序依赖于它们不用的方法。 设计模式建立在对系统变化点的基础上进行,哪里有变化点,哪里应用设计模式。 设计模式应该以演化的方式来获得,系统的变化点往往是经过不断演化才能准确定位。 不能为了模式而模式,设计模式是一种软件设计的软力量,而非规范标准。不应夸大设计模式的

13、作用。 目前可能用到的设计模式:单例模式抽象工厂模式建造者模式设计模式的应用设计模式的应用参考附件:抽象工厂模式.doc抽象工厂设计模式介绍抽象工厂设计模式介绍定义 在软件系统中,经常面临着“一系列相互依赖的对象”的创建工作;同时由于需求的变化,往往存在着更多系列对象的创建工作。如何应对这种变化?如何绕过常规的对象的创建方法(new),提供一种“封装机制”来避免客户程序和这种“多系列具体对象创建工作”的紧耦合? 意图意图提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。使用条件使用条件1 一个系统不应依赖于产品如何被创建,组合和表达的细节。 2 有多个产品族,而系统只消费其中

14、一个族中的产品 3 同属于一个产品族的产品是在一起使用的。 4 系统提供一个产品的库,所有产品都是以同样的接口实现 消息传递的简单介绍消息传递的简单介绍 面向消息的中间件 消息传递的原理 MSMQ性能及功能要求RPC调用实现系统通讯RPC RPC 编程模型编程模型public long add(long l1,long l2);编译器methodstubmethodskeleton响应消息响应消息long I = add(5,10);public long add(long l1, long l2) return l1+l2; 请求消息请求消息实现接口接口客户端客户端面向消息的中间件面向消息的

15、中间件 消息 = 消息头 (路由信息) + 消息正文 支持异步发送 不指定格式(松散约束) 目的地 = 命名的消息存储仓库 解耦合消息的产生者与消费者 便于重定向或者改变调用流程 运行环境 = 多样化的发送方式 服务质量: Reliable, transacted, prioritized, deadline-based 通信方式: publish-and-subscribe等. 消息交换模式 Request-response, fire-and-forget, request-async response消息传递的原理消息传递的原理 消息传递(message passing) send原语,

16、向一个给定的目标发送一个消息 receive原语,则从一个给定的源接受一条消息 直接通信(消息缓冲区)方式 间接通信(信箱)方式直接通讯直接通讯 企图发送或接收消息的每个进程必须指出信件发给谁或从谁那里接收消息 原语send(P,消息):把一个消息发送给进程P 原语receive(Q,消息):从进程Q接收一个消息间接通讯间接通讯 进程间发送或接收消息通过一个信箱来进行,消息可以被理解成信件 原语send(A,信件):把一封信件(消息)传送到信箱A 原语receive(A,信件):从信箱A接收一封信件(消息)MSMQMSMQ性能及功能需求性能及功能需求 MSMQ(MicroSoft Messag

17、e Queue,微软消息队列)是在多个不同的应用之间实现相互通信的一种异步传输模式,相互通信的应用可以分布于同一台机器上,也可以分布于相连的网络空间中的任一位置 MSMQ服务器包含许多队列和一个队列管理器,以及用来在队列之间传递消息的软件,也支持MSMQ API MSMQ定义了两种类型的客户:独立客户和从属客户。独立客户有自己的队列管理器和队列,而从属客户没有。所以从属客户必须能够在线访问这些功能相对比较简单的系统。MSMQMSMQ快递方式性能快递方式性能MSMQMSMQ三种方式性能对比三种方式性能对比WebServiceWebService的简单介绍及示例的简单介绍及示例 Web Servi

18、ce实现分布式系统 Web Service定义 Web Service原理 Web Service开发示例IISASP.NETASP.NET远程教育远程教育SAP R3客户关客户关系管理系管理RDBMS.NET Framework and 中间件中间件Webservicesetc.应用系统的环境应用系统的环境Webservices分布式计算体系结构的不足分布式计算体系结构的不足 代表性技术:Corba,Dcom,RMI 技术、协议和数据格式各不相同 协议十分复杂 通过防火墙时多数情况会出问题 难建立跨越整个互联网上的应用 分布式应用的需求迅速增长进程之间通讯局域网中计算机通讯互联网中的通讯各个

19、领域:商业,娱乐,Peer-to-Peer,网格(Grid) 原有的C/S,B/S模式和技术已经不能胜任串口RS232,Socket,RPC,DCOM分布式应用程序的开发要求分布式应用程序的开发要求 性能性能 安全安全 互操作性互操作性 InternetInternet与防火墙与防火墙 配置配置 位置无关性位置无关性 对象生存周期的管理对象生存周期的管理WebWeb ServiceService定义定义? ? 一个能够使用XML消息通过网络来访问的Interface, 这个Interface描述了一组可访问的操作。由SOAP+WSDL包装的Object适应松散耦合的网络环境,可通过Web访问,

20、手段是SOAP Message服务的行为、输入/输出都可使用WSDL描述Web ServiceWeb Service的基石是的基石是WebWeb技术、技术、ITIT技术和对象技术的技术和对象技术的融合融合高度可集成的、基于Web的对象通过SOAP Message实施的面向对象编程A New Web ModelA New Web Model Web ServiceWeb Service是使用是使用WebWeb的崭新模式的崭新模式通过程序自动启动和处理商务事务,而并非通过程序自动启动和处理商务事务,而并非使用浏览器使用浏览器能够在一个分布式的计算环境中动态地描述、能够在一个分布式的计算环境中动态地

21、描述、发布、发现和调用发布、发现和调用许多基于许多基于Web ServiceWeb Service的新型应用将出现的新型应用将出现完全基于完全基于XML以及以及其他相关的其他相关的Internet标准标准Web Service原理原理 什么是Web服务:用标准方法调用的功能 程序调用,不是用户从浏览器请求 SOAP(简单对象存取协议) - 消息/文档交换协议 - Web服务对象的面向对象的访问界面 WSDL(Web服务描述语言) - 基于XML的组件描述 UDDI(统一描述发现和集成标准) - 可通过Web访问的注册中心WebServiceInterfaceInvocationSOAPWSDL

22、DescriptionServiceRequestor1 SOAP消息 信封(头,主体) XML文档头,可扩充添加任意元素 如认证信息体 调用的信息 调用体 响应体 出错体2 SOAP编码规则 定义交换用数据类型 默认/简单数据类型 复杂数据类型3 SOAP绑定 定义使用的底层传输协议1 WSDL是XML文档 描述Web服务类型(type) 消息(message) 端口类型(portType) 绑定(binding 服务(service) 2 Web服务定义为网络端点的集合1 UDDI: Web服务的信息注册中心的实现标准 2Microsoft和IBM建立了遵循 UDDI 规范版本 1 的公共

23、节点 3UDDI 提供的 Web服务可网络搜索WebServiceWebService开发示例开发示例RemotingRemoting的简单介绍及示例的简单介绍及示例 Remoting 实现分布式系统 Remoting介绍 Remoting性能及特点 Remoting 开发示例 什么是什么是RemotingRemoting的词根RemoteRemote Object分布式对象 Remoting的优势性能扩展性可配置性安全生存周期管理远程对象的两个含义远程对象的两个含义 操作远程对象对象运行在远程,客户端向他发送消息。MarshalByRefObject 传递远程对象将远程的对象拿到本地,或者将本地对象发送过去。对副本进行操作Serializable 或ISerializable谁来激活对象?谁来激活对象? 服务器激活(WellKnown)SingletonSingleCall 客户端激活通道(通道(ChannelsChannels) 一个远程对象使用通道发送和接收消息服务器选择一个通道来监听请求(request)客户端选择通道来和服务器通讯 Remoting提供了内置的通道TCP通道和HTTP通道你也可以编写自己的通道优点: 1、能让我们进行分布式开发 2、Tcp通道的Remoting速度非常快 3、虽然是远程的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论