首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

delphi多层架构设想,说的都有分,该怎么解决

2012-03-23 
delphi多层架构设想,说的都有分1.在delphi多层方案里midas在数据处理上(将数据打包发送中间层)确实很方便,

delphi多层架构设想,说的都有分
1.在delphi多层方案里midas在数据处理上(将数据打包发送中间层)确实很方便,而且高效。可是我感觉midas的本身结构就将中间层的数据和逻辑耦合到了一起,在大项目的维护上很不好并且也不符合oo的思想。
    我也使用过c#来设计多层系统,基本上思想是这样:客户端(传递类实例)-〉webservice-> 逻辑层-〉数据持久层-〉数据库。在客户端只涉及表现层的东西,对于数据的逻辑都放在逻辑层,并且使用持久层进行数据的维护,我觉得这样的架构维护方便,在客户端很多的时候部署也很方便(逻辑层的修改只需修改服务器端)。
      在c#\java上持久层的资料以及代码生成器真是应有尽有,可我现在奇怪的是delphi在这方面却是空白(我所了解的很多公司都不是采用的上述方法),网上关于
delphi   o/r方面的资料也是了了可数,确实使用了o/r映射会使开发的工作量要大些,可对于一个大型的软件而言软件的可维护性和健壮性才是最主要的。为何有这种现象呢?我本想使用delphi来设计一套持久层,在此之前我想先听听大家的意见和见解
2.如果采用多层的设计方案,那末客户端和逻辑层的连接是否就只能通过webservice来实现,是否还有其他的方案?

[解决办法]
1
关注一下
[解决办法]
2
[解决办法]
采用持久层如果用户数量太大,会占用大量的资源,造成系统性能下降。我觉得还是要看怎样做开发效率高,不一定逻辑处理全部放在中间层的,况且现在网络那么发达,在线自动升级本地文件是很简单的事情。
[解决办法]
可能是我不了解C#,所以看楼主的问题有点不懂。
1.用MIDAS,客户端完全可以只使用数据而不捆绑逻辑,逻辑可以在服务端实现。
不知道楼主为啥认为MIDAS一定是数据跟逻辑不能分?
2.您可以试一下INTRAWEB,它实现B/S结构,相当吸引人的工具。
不过不知道能否支持楼主的大系统要求了。


另外想问一下:LZ想设计的持久层是为了达到什么目标?
因为DELPHI里都有持久层的工具:ADO那些。

[解决办法]
可能是我没做过大型的系统吧,所以只能讨论一下。感觉上DELPHI不适合开发大型系统,
所指的大型就好像一个城市的社会保障系统这样的规模,因为缺乏运行环境的支持,譬如:内存回收机制等。
1.如果你指的是SPRING里展现数据跟业务对象的自动映射机制,DELPHI里确实没有,需要你开发来支持。不过,有没有必要完全像SPRING那样分离就视乎情况而定了。
2.INTRAWEB可以用来建网站,而且很方便,不过它主要是为了WEB应用而设计的。
3.如果你想开发像HIBERNATE那样的持久层机制,可以。不过,有多少DELPHI开发的系统需要一个持久层来管理数据存取呢?


[解决办法]
数据持久层,没有特别的必要,会增加系统复杂性,这是我的经验。

我做过这方面的东西,对于经常变化的需求而言,实体对象不大可能是稳定的,是经常变化的,一般来说,需求发生变化都会影响实体对象。增加数据持久层减少数据库和业务逻辑的耦合并不现实,除非你的数据库是变化的。数据库本身依赖于持久层自动生成的,绝大多数的应用不会是这样的。

如果,持久层仅仅是数据库表的对应,那基本没意义。唯一有意义的地方可能在密集查询时有好处。

此外,过多的层次会增加无意义的框架代码。比如,你使用事件,但是又不想暴露底层对象,那么一层一层的事件调用很累人的。还有一些属性,你想要传送数据,又不想传送底层对象,那么对象仅仅可能是类型转换就要耗费很大一部分精力,而实际上没什么意义。

层次多并不好,除非有特别的用途,否则,三层结构是很不错的。
[解决办法]
多层系统开发最重要的是选择好中间层,好与不好千差万别哟。
如果要delphi来开发,可以用一个国人自己开发的中间件(www.quickburro.com):

QuickBurro系统较准确地抓住了分布式应用开发的核心问题,不仅分布式开发的“数据库-中间件-瘦客户端”这种三层模型设计思想得到了很好的贯彻,同时进一步向程序员提供了实现横跨Internet广泛区域内的软件开发共性部分:组网、命名、寻址、连接维持、远程数据交换、数据压缩传输、加密传输、通信并发性能改善、同步事件等等,并以“基础协议—通信软件—API接口”机制进行技术实现。系统主要功能特色如下:

在Internet上架构大型树状级联网

升级动态IP的Internet节点成为树状级联网节点

升级企业内网节点成为树状级联网用户

独特的节点代码和用户代码命名规则

支持对级联网中任意节点的快速寻址,并对应用程序透明

上下层节点间自动维持连接,断开后自动重建连接

智能分担根节点压力,有效利用固定IP节点的资源

UDP技术与Socket技术结合,并发性能及响应速度优异

采用小容量信息加密、大容量信息压缩机制,传输速度快

支持对任意节点内网数据库的读写,并对应用程序透明

支持内网用户间、外网节点间、用户与节点间的各种数据通信

支持信息群发,一句代码完成向成千上万的各地用户发布信息

支持业务逻辑插件的本地挂接和远程自动挂接及远程调用

支持自定义格式数据的传输,具备无限的业务扩展能力

监控功能丰富、系统稳定可靠、可无人值守运行

提供应用编程控件,应用程序接口(API)极佳

本系统与三层结构中的CORRBA、.NET、COM/DCOM等技术在实现的效果上有些类似,但编写应用程序的过程则区别较大。后者并不支持专用网的组建、分层的命名/动态IP寻址、UDP形式的连接维持等,因而在广域网上组件专用级联网并编写应用程序时,仍然需要程序员额外编写大量代码,技术难度仍然较大/较多;而使用本系统,这些问题都不再需要考虑,程序员的主要精力将更多地投放到应用逻辑的实现上,因此负担更轻。

热点排行