控件中国网现已改版,您看到的是老版本网站的镜像,系统正在为您跳转到新网站首页,请稍候.......
中国最专业的商业控件资讯网产品咨询电话:023-67870900 023-67871946
产品咨询EMAIL:SALES@COMPONENTCN.COM

ASP.NET程序解决方案

作者:Vincent.Q 出处:博客园 2010年02月08日 阅读:

1引言

1.1前言

首先有一点先和大家说明,我之所以说是解决方案,并不是说这个解决方案有多完美或架构多么完善,它只不过是我的第一个B/S软件解决方案,放在这里是和大家一起讨论的。所以,如果看完以后感觉是垃圾的话,也是有可能的。。。在网上也看过很多这样的解决方案,我想我这个要比他们说得更充实些。

好了,进入正题。

1.2开发环境

VS2005+Orac le9.0+第三方控件(Infragistics2.WebUI

1.3所用技术

ASP.NET常用技术+Ajax+分层

2解决方案

2.1Model架构

         先看下解决方案截图,如图-1所示

        

 

                            -1

2.2WebUI解决方案

         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收集数据,使用的是DataTableDataSet,原因稍候再说。

2.2.3Service文件夹        

                               

     -5

         作用相当于一个类库,作用是比较公用的方法,分门别类的存放在这个文件夹里,可以随时被其他文件所调用。这里比较简单,只有一个文件,其实可以根据功能划分成若干文件的,如:StringService,XmlService,IniService,DbService, AuthService(权限)

2.2.4Business文件夹
        

 

                            -6

         作用相当于一个类库,但它偏重于业务类库,真正的某个行业的业务类库。

2.2.5Facade文件夹
        

 

                            -7

         这个文件夹定义有些模糊,我一开始是定义成调用外界方法的外观层,后来被我定义成两个作用:调用外界模块的方法和被外界模块所调用,两个作用,也就是说。不论是本模块引其他模块,还是其他模块引本模块,都引这个文件夹里的。

         如果本程序中也用到此中方法,则需要在模块对应的Model文件中再声明一个方法,调用Fa?ade中的方法。不允许WebUI层直接调用Fa?ade文件

2.2.6Model文件

 

     

                           -8

         这里的每个文件,其实都是一个模块。例:ShiYanXMModelShiYanHZModel,两个文件其实就是实验项目和实验患者。也就是说,在前台中,每个模块都有一个专门Model文件与它对应,前台模块与Model文件是一一对应的关系。当然,Model文件都继承自BaseModel文件,比较通用的方法都写在BaseModel中就OK了。如图-9所示是BaseModel类的布局。

         这一点好像和网上众多的项目中所采用的方法不同,之所以强调出来,是大家看看这样处理是否合理?或者说有什么隐患?

 

      

                                     -9

3 WebUI解决方案

    

 

                             -10

如图-10所示,List页面是列表页面,它包含一个Frame框架,Frame框架所指向的地址就是ListGrid页面,大家想想也就清楚了。

现在说一下为何没有使用Entity类。

 

                                                    -11

如图-11所示,是模块的保存操作,我使用的是DataSet作为填充的数据源,这样可以创建一个通用的方法Save来保存任何模块需要保存的数据。

4 待处理问题

这篇只不过是一个抛砖引用的文档,若有兴趣者,可以与我联系,一起研究!谢谢。

这里用到的每个技术点或实现方式,可能与大家有所不同,希望大家把自己的想法提出来,我们一起探讨。

热推产品

  • ActiveReport... 强大的.NET报表设计、浏览、打印、转换控件,可以同时用于WindowsForms谀坔攀戀Forms平台下......
  • AnyChart AnyChart使你可以创建出绚丽的交互式的Flash和HTML5的图表和仪表控件。可以用于仪表盘的创......
首页 | 新闻中心 | 产品中心 | 技术文档 | 友情连接 | 关于磐岩 | 技术支持中心 | 联系我们 | 帮助中心 Copyright-2006 ComponentCN.com all rights reserved.重庆磐岩科技有限公司(控件中国网) 版权所有 电话:023 - 67870900 传真:023 - 67870270 产品咨询:sales@componentcn.com 渝ICP备12000264号 法律顾问:元炳律师事务所 重庆市江北区塔坪36号维丰创意绿苑A座28-5 邮编:400020
在线客服
在线客服系统
在线客服
在线客服系统