您的位置:首页 > 运维架构 > 网站架构

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

以上列举的几种数据持久层,按纯面向对象的标准来说其实是又可再分的,我将它们分为三种类:

1ORM框架(以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操作





局部

整体性能

一般



稍高

使用广泛度

一般

普遍

较少

应用项目类型

大型

都有

大中型

流行程度

流行

普遍

流行

二、企业应用架构的表现模式 1WEBFORM框架

2MVC框架一般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、比较严格区分二者

松耦合程度

一般



搭建难易度

简单

比较复杂,配置问题多

应用项目类型

都有

大型偏多

流行程度

流行

目前较少

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐