B/S系统企业应用架构之我见
2008-06-26 10:08
176 查看
B/S系统企业应用架构之我见
[b]IDEA1 STUDIO.net[/b]现在的趋势是软件开发B/S化,B/S开发C/S化,这是我的看法。所以Web系统应用于企业的产品也越来越多,而开发这种B/S架构的系统,在框架设计方面也很多参考C/S的,这样就会有更多思路和方法。我认为主要是分为两个方面,一个是企业应用架构模式,另外一个是企业应用架构的表现模式。针对这两个方面,以net技术开发的B/S系统为例,说说我的一些想法:
一、企业应用架构模式网上的应用架构模式非常之多,其实区别主要是在数据持久层(数据访问层)的不同。为什么会不同,我想主要还是现今的数据库类型引起的。我们现在使用的基本上是关系型数据库,而我们编程语言越来越高级,越来越抽象,从事件驱动到面向对象的要求在不断提升,这就与二维表现形式的数据库产生了很大的冲突。一个要求是对象,一个实际是非对象。在流行的三层开发中,以实体层为代表,为了解决这个问题,我们把一个表映射成一个类(即一个对象)。但是数据持久层还是大大的不可行,所以针对要不要改装SQL语句,是否让它暴露在程序中,各家各有看法,就产生了不同。(有趣的是,要是下一代是对象数据库,恐怕这个问题就不存在了)
那么以不同的数据持久层为区分,主要有以下几种:
1.NHibernate
2.Spring.net
3.NBear
4.Castle ActiveRecord
5.iBATIS.NET
6.DAAB
7.LINQ-SQL
以上列举的几种数据持久层,按纯面向对象的标准来说其实是又可再分的,我将它们分为三种类:
1、ORM框架(以Nhibernate,LINQ-SQL为代表)
这种框架是以Java非常成熟的Hibernate框架转变而来的Nhibernate为代表。另外微软也不甘寂寞,针对真正面向对象的开发了LINQ技术。而LINQ-SQL正是可以用来开发ORM框架,虽然推行不久,凭借着它强悍的权威优势,以后应该也会风行起来的,网上也已经有人开始这样做了。
ORM框架中,我们以Nhibernate为例来看一下它的优势。
(1) ORM(对象关系映射)功能的框架实现,能用对象的概念来处理关系数据库。
(2) 功能强大,高效。提供了对象关系映射,对象查询语言HQL,和一套Criteria API等功能。
(3) 有丰富的成功案例和文档资料,Java版的Hibernate成熟而流行。
(4) 底层封装成DLL,规避了SQL的赤裸编写。
2、非ORM框架(以DAAB为代表)
这种以DAAB为代表的的框架,直接操作ADO.NET对象,是微软的首推之作。它是我们应用最多,范围最广的,其性能优势大家有目共睹,这边也就不再赘述了。
3、不完全ORM框架(以Spring.net,Castle为代表)
不走极端而综合大成,恐怕是这类框架的讨好受宠原因。它们既不抛掉纯对象的抽象理念,而又在局部使用ADO.net来处理麻烦之处,因为确实在复杂度处理和性能表现上,ADO.NET是无可非议的。Nhibernate的HQL语言过于复杂和低效了。所以,有了Spring.net,Castle,NBear等等的框架,而有的又将它们和Nhibernate相结合,比如网上有人用的Spring.net+Nhibernate,Castle+Nhibernate。这类框架的优势有:
(1) 底层仍用Nhibernate封装的DLL。
(2)局部使用ADO.NET,灵活性高,效率也有提升。
(3)组合套路多,选择性高。
综合以上三种,整体做个对比:
二、企业应用架构的表现模式 1、WEBFORM框架
2、MVC框架一般web开发普遍使用的都是WEBFORM。可视化的设计,便捷的拖拉web控件,是我们迅速高效开发的普遍认同点,表现是从早期的asp开发工具的Dreamweaver,FrontPage,到现在的.net开发IDE的visual studio。MVC这种模式的框架,其实是师从C/S的,本来是存在于Desktop程序中的,M是指数据模型,V是指用户界面,C则是控制器。使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。比如一批统计数据你可以分别用柱状图、饼图来表示。C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新。最近微软也在热推他们自己的MVC框架 (http://www.codeplex.com/aspnet),足见他们对这个东西的重视和引导。
下面我就来看看它们的对比。
[b]IDEA1 STUDIO.net[/b]现在的趋势是软件开发B/S化,B/S开发C/S化,这是我的看法。所以Web系统应用于企业的产品也越来越多,而开发这种B/S架构的系统,在框架设计方面也很多参考C/S的,这样就会有更多思路和方法。我认为主要是分为两个方面,一个是企业应用架构模式,另外一个是企业应用架构的表现模式。针对这两个方面,以net技术开发的B/S系统为例,说说我的一些想法:
一、企业应用架构模式网上的应用架构模式非常之多,其实区别主要是在数据持久层(数据访问层)的不同。为什么会不同,我想主要还是现今的数据库类型引起的。我们现在使用的基本上是关系型数据库,而我们编程语言越来越高级,越来越抽象,从事件驱动到面向对象的要求在不断提升,这就与二维表现形式的数据库产生了很大的冲突。一个要求是对象,一个实际是非对象。在流行的三层开发中,以实体层为代表,为了解决这个问题,我们把一个表映射成一个类(即一个对象)。但是数据持久层还是大大的不可行,所以针对要不要改装SQL语句,是否让它暴露在程序中,各家各有看法,就产生了不同。(有趣的是,要是下一代是对象数据库,恐怕这个问题就不存在了)
那么以不同的数据持久层为区分,主要有以下几种:
1.NHibernate
2.Spring.net
3.NBear
4.Castle ActiveRecord
5.iBATIS.NET
6.DAAB
7.LINQ-SQL
以上列举的几种数据持久层,按纯面向对象的标准来说其实是又可再分的,我将它们分为三种类:
1、ORM框架(以Nhibernate,LINQ-SQL为代表)
这种框架是以Java非常成熟的Hibernate框架转变而来的Nhibernate为代表。另外微软也不甘寂寞,针对真正面向对象的开发了LINQ技术。而LINQ-SQL正是可以用来开发ORM框架,虽然推行不久,凭借着它强悍的权威优势,以后应该也会风行起来的,网上也已经有人开始这样做了。
ORM框架中,我们以Nhibernate为例来看一下它的优势。
(1) ORM(对象关系映射)功能的框架实现,能用对象的概念来处理关系数据库。
(2) 功能强大,高效。提供了对象关系映射,对象查询语言HQL,和一套Criteria API等功能。
(3) 有丰富的成功案例和文档资料,Java版的Hibernate成熟而流行。
(4) 底层封装成DLL,规避了SQL的赤裸编写。
2、非ORM框架(以DAAB为代表)
这种以DAAB为代表的的框架,直接操作ADO.NET对象,是微软的首推之作。它是我们应用最多,范围最广的,其性能优势大家有目共睹,这边也就不再赘述了。
3、不完全ORM框架(以Spring.net,Castle为代表)
不走极端而综合大成,恐怕是这类框架的讨好受宠原因。它们既不抛掉纯对象的抽象理念,而又在局部使用ADO.net来处理麻烦之处,因为确实在复杂度处理和性能表现上,ADO.NET是无可非议的。Nhibernate的HQL语言过于复杂和低效了。所以,有了Spring.net,Castle,NBear等等的框架,而有的又将它们和Nhibernate相结合,比如网上有人用的Spring.net+Nhibernate,Castle+Nhibernate。这类框架的优势有:
(1) 底层仍用Nhibernate封装的DLL。
(2)局部使用ADO.NET,灵活性高,效率也有提升。
(3)组合套路多,选择性高。
综合以上三种,整体做个对比:
框架 对比点 | ORM框架 | 非ORM框架 | 不完全ORM框架 |
是否面向对象 | 是 | 否 | 是 |
ADO.NET操作 | 无 | 有 | 局部 |
整体性能 | 一般 | 高 | 稍高 |
使用广泛度 | 一般 | 普遍 | 较少 |
应用项目类型 | 大型 | 都有 | 大中型 |
流行程度 | 流行 | 普遍 | 流行 |
2、MVC框架一般web开发普遍使用的都是WEBFORM。可视化的设计,便捷的拖拉web控件,是我们迅速高效开发的普遍认同点,表现是从早期的asp开发工具的Dreamweaver,FrontPage,到现在的.net开发IDE的visual studio。MVC这种模式的框架,其实是师从C/S的,本来是存在于Desktop程序中的,M是指数据模型,V是指用户界面,C则是控制器。使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。比如一批统计数据你可以分别用柱状图、饼图来表示。C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新。最近微软也在热推他们自己的MVC框架 (http://www.codeplex.com/aspnet),足见他们对这个东西的重视和引导。
下面我就来看看它们的对比。
框架 对比点 | WEBFORM | MVC |
可视化编程 | 是,如可以将事件与控件直接挂钩 | 否,完全独立 |
控件操作(拖拉等) | 支持,并且是极大优势 | 支持,只在逻辑中处理 |
程序/视图关系 | 1、一对一关系 2、在视图中混杂程序(尤其是之前的asp开发中) | 1、一对多关系,这是优势 2、比较严格区分二者 |
松耦合程度 | 一般 | 低 |
搭建难易度 | 简单 | 比较复杂,配置问题多 |
应用项目类型 | 都有 | 大型偏多 |
流行程度 | 流行 | 目前较少 |
相关文章推荐
- DotNET企业架构应用实践-系统架构与性能-缓存技术与ORM中的缓存查询技术
- 系统架构师-基础到企业应用架构-系统设计规范与原则[下篇]
- 系统架构师-基础到企业应用架构-系统建模[中篇](下)
- 从架构设计到系统实施-基于Windows Server 2008的全新企业应用之Card Space身份验证
- 系统架构师-基础到企业应用架构-系统设计规范与原则[上篇]
- [导入]从架构设计到系统实施——基于.NET 3.0的全新企业应用系列课程(9):设计基于CardSpace的身份验证系统.zip(7.98 MB)
- [导入]从架构设计到系统实施——基于.NET 3.0的全新企业应用系列课程(1):基于.NET 3.0的系统架构.zip(8.83 MB)
- [导入]从架构设计到系统实施——基于.NET 3.0的全新企业应用系列课程(8):为Vista用户设计Gadget.zip(8.67 MB)
- 系统架构师谈企业应用架构之系统建模1
- DotNET企业架构应用实践-系统架构与性能-缓存技术与ORM中的缓存查询技术
- 系统架构师谈企业应用架构之系统设计规范与原则
- 系统架构师-基础到企业应用架构-系统建模[中篇](上)
- 系统架构师-基础到企业应用架构-系统建模[中篇](上)
- 系统架构师-基础到企业应用架构-系统设计规范与原则[上篇]
- 系统架构师-基础到企业应用架构-系统建模[上篇]
- 系统架构师-基础到企业应用架构-系统建模[中篇](下)
- 企业应用系统:C/S vs B/S三层J2EE架构之争
- [导入]从架构设计到系统实施——基于.NET 3.0的全新企业应用系列课程(8):为Vista用户设计Gadget.zip(8.67 MB)
- [导入]从架构设计到系统实施——基于.NET 3.0的全新企业应用系列课程(7):设计基于MMC 3.0的管理工具.zip(8.70 MB)
- 系统架构师谈企业应用架构之系统建模2