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

下载本文档

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

文档简介

NET开发及架构分析☆1>NET组件开发的原理及方式2>设计模式介绍及抽象工厂3>消息传递的简单介绍☆4>WebService的简单介绍及示例5>Remoting的简单介绍及示例目前一页\总数四十九页\编于十五点NET组件开发的原理及方式面向对象系统开发组件化系统开发组件开发之后是服务目前二页\总数四十九页\编于十五点多态封装继承基于消息架构+合约通过策略绑定19962003以接口为基础的动态加载运行态元数据2000面向对象面向服务面向组件从对象到服务历程目前三页\总数四十九页\编于十五点面向对象(ObjectOriented,简称OO)是当前计算机界关心的重点,它是90年代软件开发方法的主流。面向对象的概念和应用已超越了程序设计和软件开发,扩展到很宽的范围。如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。面向对象的程序设计(ObjectOrientedProgramming,简称OOP,亦有译为对象导向),指一种程序设计范型,同时也是是一种程序开发的方法论。它的最大特点是能够大幅度的提高软件项目的成功率,减少日后的维护费用,提高软件的可移植性和可靠性。目前四页\总数四十九页\编于十五点“对象(Object)”一词,早在十九世纪就有现象学大师胡塞尔提出并定义。对象是世界中的物体在人脑中的映象,是人的意识之所以为意识的反映,是做为一种概念而存在的先念的东西,它还包括了人的意愿。对象(Object)是问题域或实现域中某些事物的一个抽象,它反映此事物在系统中需要保存的信息和发挥的作用;它是一组属性和有权对这些属性进行操作的一组服务的封装体。关于对象可以从两个方面描述: 1)对象 对象是人们要进行研究的任何事物,从最简单的整数到复杂的飞机等均可看作对象,它不仅能表示具体的事物,还能表示抽象的规则、计划或事件。 2)对象的状态和行为 对象具有状态,一个对象用数据值来描述它的状态。 对象还有操作,用于改变对象的状态,对象及其操作就是对象的行为。 对象实现了数据和操作的结合,使数据和操作封装于对象的统一体中目前五页\总数四十九页\编于十五点面向对象系统开发对象---具体的实例类---抽象的定义目前六页\总数四十九页\编于十五点封装

就是把类的内部隐藏起来

好处:减少耦合,类内部的实现可以自由地修改,类具有清晰的对外接口数据隐藏

实现方法就是访问限制修饰符

public

protectedinternal

internal

protected

private继承性

inheritance

一个类可以有能力直接从另一个类获得其代码和数据

派生类从基类那里获得其所有的成员

C#只支持单继承

防止继承

publicsealedclass

classname何时使用继承代码重用,减少编写的代码量

设计重用公用的字段和方法可以放到父类中,然后由其派生新的子类

子类有自己的字段和方法目前七页\总数四十九页\编于十五点多态性

是面向对象程序设计中的重要概念。

在运行时,可以通过指向基类的应用,来调用实现派生类中的方法。

同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。

多态性通过派生类覆写基类中的虚函数型方法来实现。重载Overload存在于同一类中

方法名必须相同

参数列表必须不相同

返回类型可以不相同覆写Override存在与继承关系的类中

只有虚方法和抽象方法才能覆写

相同的方法名称

相同的参数列表

相同的返回值类型抽象方法

abstract

是必须被派生类覆写的方法

可以看成没有实现体的虚方法目前八页\总数四十九页\编于十五点虚函数

使用virtual关键字publicvirtualboolwithdraw()接口interface

接口为类提供了蓝图

接口只提供定义

实现接口的数据类型必须提供接口成员的实现

接口本身可以从多个基接口派生UML(UnifiedModelingLanguage)语言

UML是一种定义良好、易于表达、功能强大且普遍适用的建模语言。它融入了软件工程领域的新思想、新方法和新技术。它的作用域不限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发全过程。 面向对象的建模工具:

RationalRose2003/RationalXDE

for.NET PowerDesigner12目前九页\总数四十九页\编于十五点组件化系统开发创建可重用的组件重用现有的组件来缩短开发时间建立一贯的组件理念制定一个组件策略Patterns和Practices制定一个设计-评审计划建立知识库给团队中的成员进行培训知识库的内容激励团队的成员维护知识库的内容PetShop4.0范例演示目前十页\总数四十九页\编于十五点多层应用程序体系结构为了重用、模块化和可维护,尽量按照程序逻辑将应用程序代码划分为松耦合的层次结构典型的3层逻辑构架表示层商业逻辑层数据访问层(数据存储层)将不同的逻辑层次部署到多个物理层当中,实现部署的可扩展性典型的3层物理构架表示层——UI,例如WinForms或ASP.NET页面中间层——商业逻辑组件,一般运行在宿主环境下数据访问层——高性能的、并发RDBMS,例如MicrosoftSQL®ServerTM原因分工明确结构灵活部署方便易于管理扩展性强注意:“层”并不是指“进程”或“主机”目前十一页\总数四十九页\编于十五点面向服务的构架当为企业设计应用程序时,高可伸缩性是极为重要的设计目标Service-OrientedArchitecture(SOA)要求设计人员将代码按照层次分隔开来代码之间建立松耦合的关系可伸缩性——SOA能够带来更多的吞吐量,支持同时处理更多的并发请求SOA(面向服务架构)是我们软件开发设计的理想境界!公司:/webservice/webservice.htm /webservice/song.asmx /webservice/ExchangeRate.asmx参考附件:企业程序库(EnterpriseLibrary).ppt目前十二页\总数四十九页\编于十五点目前十三页\总数四十九页\编于十五点目前十四页\总数四十九页\编于十五点NET组件开发示例

目前十五页\总数四十九页\编于十五点设计模式介绍及抽象工厂设计模式的概念设计模式的基本原则设计模式的应用抽象工厂介绍目前十六页\总数四十九页\编于十五点设计模式是规则吗?

地上本没有路,走得人多了也就成了路。设计模式如同此理,它是经验的传承,并非体系;是被前人发现,经过总结形成了一套某一类问题的一般性解决方案,而不是被设计出来的定性规则;它不像算法那样可以照搬照用。设计模式是架构吗?

架构和模式应该是一个属于相互涵盖的过程,但是总体来说架构更加关注的是所谓的High-LevelDesign,而模式关注的重点在于通过经验提取的“准则或指导方案”在设计中的应用,因此在不同层面考虑问题的时候就形成了不同问题域上的模式。模式的目标是,把共通问题中的不变部分和变化部分分离出来。不变的部分,就构成了模式,因此,模式是一个经验提取的“准则”,并且在一次一次的实践中得到验证,在不同的层次有不同的模式,小到语言实现,大到架构。在不同的层面上,模式提供不同层面的指导。 个人理解参考 一种套路 一种方法论 一种编程秘笈目前十七页\总数四十九页\编于十五点武功套路是习武的门径。新手要一招一式地练习套路,烂熟于心之后,熟能生巧,在实战之中即可见招拆招、运用自如——此时习武之人已从“新手”成长为“好手”。“高手”则没有套路,实战之中只有自然反应,然而一招一式浑然天成、恰到好处,似有似无、无中生有。“高手”之上还有“高高手”,他们达到的境界非我等凭借金氏武侠小说可以揣测。设计模式之于设计,好比套路之于武术。“新手”要一个接一个地学习模式,“好手”能够活用模式,“高手”则没有模式。设计模式的“内功”是面向对象的基本原则。这些原则是“神”,模式是“形”。高手拼的是“内功”,对面向对象基本原则有了深刻的领悟,才能用好设计模式,避免“走火入魔”。目前十八页\总数四十九页\编于十五点为什么使用设计模式

对任何设计都可以凭主观(对设计很难做出客观评价)判断得出它是一个好的设计,还是一个坏的设计。使用设计模式是为了避免坏的设计。Martin叔叔在他的著作《敏捷软件开发原则、模式与实践》中描述了拙劣设计的症状: 僵化性(Rigidity):设计难以改变。 脆弱性(Fragility):设计易于遭到破坏。 牢固性(Immobility):设计难以重用。 粘滞性(Viscosity):难以做正确的事情。 不必要的复杂性(NeedlessComplexity):过分设计。 不必要的重复(NeedlessRepetition):过多的重复。 晦涩性(Opacity):混乱的表达。

目前十九页\总数四十九页\编于十五点几条更具体的设计原则•单一职责原则(SRP):–一个类应该仅有一个引起它变化的原因。•开放封闭原则(OCP):–类模块应该是可扩展的,但是不可修改(对扩展开放,对更改封闭)•Liskov替换原则(LSP):–子类必须能够替换它们的基类•依赖倒置原则(DIP):–高层模块不应该依赖于低层模块,二者都应该依赖于抽象。–抽象不应该依赖于实现细节,实现细节应该依赖于抽象。•接口隔离原则(ISP):–不应该强迫客户程序依赖于它们不用的方法。口诀目前二十页\总数四十九页\编于十五点设计模式建立在对系统变化点的基础上进行,哪里有变化点,哪里应用设计模式。设计模式应该以演化的方式来获得,系统的变化点往往是经过不断演化才能准确定位。不能为了模式而模式,设计模式是一种软件设计的软力量,而非规范标准。不应夸大设计模式的作用。目前可能用到的设计模式: 单例模式 抽象工厂模式 建造者模式设计模式的应用目前二十一页\总数四十九页\编于十五点参考附件:抽象工厂模式.doc抽象工厂设计模式介绍定义在软件系统中,经常面临着“一系列相互依赖的对象”的创建工作;同时由于需求的变化,往往存在着更多系列对象的创建工作。如何应对这种变化?如何绕过常规的对象的创建方法(new),提供一种“封装机制”来避免客户程序和这种“多系列具体对象创建工作”的紧耦合?

意图 提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。使用条件 1一个系统不应依赖于产品如何被创建,组合和表达的细节。

2有多个产品族,而系统只消费其中一个族中的产品

3同属于一个产品族的产品是在一起使用的。

4系统提供一个产品的库,所有产品都是以同样的接口实现

目前二十二页\总数四十九页\编于十五点消息传递的简单介绍面向消息的中间件消息传递的原理MSMQ性能及功能要求目前二十三页\总数四十九页\编于十五点RPC调用实现系统通讯RPC特点:

“让远程通信和本地调用一样容易" 定义一个接口 编写服务器端实现 工具生成两者之间需要的通信管道RPC缺点:

延迟(网络、应用程序) 部分失败和并发 开发的IP地址及端口目前二十四页\总数四十九页\编于十五点RPC编程模型publiclongadd(longl1,longl2);编译器methodstubmethodskeleton响应消息longI=add(5,10);publiclongadd

(longl1,longl2){returnl1+l2;}请求消息Method:addParams:5(long),10(long)Return:15(long)实现接口客户端目前二十五页\总数四十九页\编于十五点面向消息的中间件消息=消息头(路由信息)+消息正文支持异步发送不指定格式(松散约束)目的地=命名的消息存储仓库解耦合消息的产生者与消费者便于重定向或者改变调用流程运行环境=多样化的发送方式服务质量:Reliable,transacted,prioritized,deadline-based通信方式:publish-and-subscribe等.消息交换模式Request-response,fire-and-forget,

request-asyncresponse目前二十六页\总数四十九页\编于十五点消息传递的原理消息传递(messagepassing)send原语,向一个给定的目标发送一个消息receive原语,则从一个给定的源接受一条消息直接通信(消息缓冲区)方式间接通信(信箱)方式目前二十七页\总数四十九页\编于十五点直接通讯企图发送或接收消息的每个进程必须指出信件发给谁或从谁那里接收消息原语send(P,消息):把一个消息发送给进程P原语receive(Q,消息):从进程Q接收一个消息间接通讯进程间发送或接收消息通过一个信箱来进行,消息可以被理解成信件原语send(A,信件):把一封信件(消息)传送到信箱A原语receive(A,信件):从信箱A接收一封信件(消息)目前二十八页\总数四十九页\编于十五点MSMQ性能及功能需求MSMQ(MicroSoft

Message

Queue,微软消息队列)是在多个不同的应用之间实现相互通信的一种异步传输模式,相互通信的应用可以分布于同一台机器上,也可以分布于相连的网络空间中的任一位置

MSMQ服务器包含许多队列和一个队列管理器,以及用来在队列之间传递消息的软件,也支持MSMQAPIMSMQ定义了两种类型的客户:独立客户和从属客户。独立客户有自己的队列管理器和队列,而从属客户没有。所以从属客户必须能够在线访问这些功能相对比较简单的系统。目前二十九页\总数四十九页\编于十五点MSMQ快递方式性能目前三十页\总数四十九页\编于十五点MSMQ三种方式性能对比目前三十一页\总数四十九页\编于十五点WebService的简单介绍及示例WebService实现分布式系统WebService定义WebService原理WebService开发示例目前三十二页\总数四十九页\编于十五点IISASP.NET远程教育SAPR3客户关系管理RDBMS.NETFrameworkand中间件Webservicesetc.应用系统的环境Webservices目前三十三页\总数四十九页\编于十五点分布式计算体系结构的不足代表性技术:Corba,Dcom,RMI技术、协议和数据格式各不相同协议十分复杂通过防火墙时多数情况会出问题难建立跨越整个互联网上的应用分布式应用的需求迅速增长 进程之间通讯 局域网中计算机通讯 互联网中的通讯 各个领域:商业,娱乐,Peer-to-Peer,网格(Grid)……原有的C/S,B/S模式和技术已经不能胜任 串口RS232,Socket,RPC,DCOM目前三十四页\总数四十九页\编于十五点分布式应用程序的开发要求性能安全互操作性Internet与防火墙配置位置无关性对象生存周期的管理目前三十五页\总数四十九页\编于十五点WebService定义?一个能够使用XML消息通过网络来访问的Interface,这个Interface描述了一组可访问的操作。由SOAP+WSDL包装的Object适应松散耦合的网络环境,可通过Web访问,手段是SOAPMessage服务的行为、输入/输出都可使用WSDL描述WebService的基石是Web技术、IT技术和对象技术的融合高度可集成的、基于Web的对象通过SOAPMessage实施的面向对象编程目前三十六页\总数四十九页\编于十五点ANewWebModelWebService是使用Web的崭新模式通过程序自动启动和处理商务事务,而并非使用浏览器能够在一个分布式的计算环境中动态地描述、发布、发现和调用许多基于WebService的新型应用将出现完全基于XML以及其他相关的Internet标准目前三十七页\总数四十九页\编于十五点WebService原理什么是Web服务: 用标准方法调用的功能

程序调用,不是用户从浏览器请求SOAP(简单对象存取协议)

-消息/文档交换协议-Web服务对象的面向对象的访问界面WSDL(Web服务描述语言)

-基于XML的组件描述UDDI(统一描述发现和集成标准)

-可通过Web访问的注册中心WebServiceInterfaceInvocationSOAPWSDLDescriptionServiceRequestor目前三十八页\总数四十九页\编于十五点 1>SOAP消息信封(头,主体)XML文档头,可扩充添加任意元素如认证信息体调用的信息调用体响应体出错体 2>SOAP编码规则定义交换用数据类型默认/简单数据类型复杂数据类型 3>SOAP绑定定义使用的底层传输协议 1>WSDL是XML文档描述Web服务 类型(type) 消息(message) 端口类型(portType) 绑定(binding 服务(service) 2>Web服务定义为网络端点的集合 1>UDDI:Web服务的信息注册中心的实现标准 2>Microsoft和IBM建立了遵循UDDI规范版本1的公共节点 3>UDDI提供的Web服务可网络搜索SOAPWDSLUDDI目前三十九页\总数四十九页\编于十五点WebService开发示例目前四十页\总数四十九页\编于十五点Remoting的简单介绍及示例Remoting实现分布式系统Remoting介绍Remoting性能及特点Remoting开发示例目前四十一页\总数四十九页\编于十五点什么是Remoting

Remoting的词根——Remote RemoteObject 分布式对象Remoting的优势

性能 扩展性 可配置性 安全 生存周期管理目前四十二页\总数四十九页\编于十五点 远程对象的两个含义操作远程对象 对象运行在远程,客户端向他发送消息。MarshalByRefObject传递远程对象 将远程的对象拿到本地,或者将本地对象发送过去。 对副本进行操作 [Serializable]或ISerializable目前四十三页\总数四十九页\编于十五点谁来激活对象?服

温馨提示

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

评论

0/150

提交评论