1引言
1.1前言
首先有一点先和大家说明,我之所以说是解决方案,并不是说这个解决方案有多完美或架构多么完善,它只不过是我的第一个B/S软件解决方案,放在这里是和大家一起讨论的。所以,如果看完以后感觉是垃圾的话,也是有可能的。。。在网上也看过很多这样的解决方案,我想我这个要比他们说得更充实些。
好了,进入正题。
1.2开发环境
VS2005+Orac le9.0+第三方控件(Infragistics2.WebUI)
1.3所用技术
ASP.NET常用技术+Ajax+分层
2解决方案
2.1Model架构
先看下解决方案截图,如图-1所示
图-1
2.2非WebUI解决方案
D:\...\yljdWeb\项目是web site,属于程序的界面层。
yljd项目是控制台程序,可以用它来测试一些程序,对于程序本身来说,没有作用。
yljdModel项目是非UI层的所有内容,包括数据层、业务层之类 。当初为何只建这一个项目,原因是这个模块所涉及的业务和技术都比较简单,没有必要创建真正的数据层、业务层、实体层等。不过,这里面也是可以体现分层思想的,只是在后续的开发过程中,分层的概念有些模糊了。。。
其实,这个项目中的每个文件夹都可以单独创建一个项目,然后被其他项目以Dll文件形式引用。
2.2.1DbUtilities文件夹
图-2
DbUtilities文件夹属于数据层的,作用是用于与数据库进行交互。
IDbHelper是数据类的接口。
MsOralceHelper是微软提供的Oracle数据库方法类
OracleDbHelper是我们自己开发的Oralce数据库,不过大部分方法是调用MsOralceHelper中的。如图-3所示
图-3
注:这里还需要有个DbHelperFacotry工厂类,用于根据选项来组装使用哪个数据库。由于暂时只需要Oracle,所以没有增加
2.2.2Entity文件夹
图-4
实体文件,作用是数据库中表结构在前台的映射,可以代码生成器产生。比较简单,不再多述。
好像有的程序里,使用Entity这个东东与前台界面层交互,收集数据使用。我这个项目并没有使用此Entity收集数据,使用的是DataTable和DataSet,原因稍候再说。
2.2.3Service文件夹