学海无涯

网络是最好的老师

导航

公告

随笔分类

收藏夹

随笔档案

最新评论

统计

常用链接

.net

AOP

goold site

js

Sql

设计模式

友朋自网络来

阅读排行榜

评论排行榜

Laiwen asp.net 架构

        这段时间看了些开源代码,感觉收益非浅。结合我的工作经验,写了套asp.net 架构,暂时命名为Laiwen。从今天开始我将和网友们共同分享我的创作乐趣。

         我把网站分成 6 个组成项目。(图1)
                
               分别是:
                           Web 项目(LaiwenAdmin,LaiwenMain 可以是多个Web项目)
                           数据访问和业务层项目(DALBusiness)
                           实体层项目(DataEntity,工具生成)
                           存储过程层项目 (ProcLogic,工具生成)
                           数据库配置项目 (DataBase)
                           工具项目 (Common,基础同用类库,可用于任何asp.net 项目)。
         当然,实际应用中还会有其它不同类型的项目,如WebService等,但我认为应把它们在DALBusiness 中包装,不要直接在Web项目中引用。
               
          下面,我们分别介绍一下这几个项目。

    1.Web 项目(图2)
    
                  
  Web 项目应该尽量用目录结构区分功能。比如,我在AppControl文件夹中写只在此web站点应用的自定义控件,在Javascript文件夹中存放此web项目公用的js文件(所有项目通用的js 用资源文件的形式放在Common中),Project 文件夹中按功能目录结构存放其他文件。
       Web 项目会直接用到Common, DALBusiness, ProcLogic 几个项目。
  应用我这套架构必须配好Web.Config。具体配置方法我将在解说具体功能的时候介绍。

   2.数据访问和业务层项目(DALBusiness)
           

  DAL 和 Business 文件夹
        我把数据访问层DAL 和 业务层Business 都放在了 DALBusiness 项目中,分别对应DAL和Business文件夹。在DAL下的类全部用internal关键字修饰,这样使其对其它项目不可见。当Web项目进行业务操作时只能调用Business, 这就保证了业务操作的严谨性,统一性,业务的密闭性,为今后的可维护性提供可有效的保证。

        下面是DAL层调用的几个例子: 

应用分页查询语句1

 

应用存储过程

 

应用OR/Mapping技术


 
        AppControl 文件夹
       此文件夹中写在此解决方案所有web站点都会用到的web自定义控件。

       ConfigMain 和 ConfigMain   文件夹
       分别对应LaiwenMain 和 LaiwnAdmin 两个Web项目 ,它们的AppSetting.cs 和 UrlInfo.cs 分别对应各自的Web.confg中的AppSetting 和 Url。
     
     例如:    

AppSetting 应用

UrlInfo 应用


    EnumType 文件夹
    提供枚举和枚举字典 例如:

    命名规则
    
public class UrlInfo
    
{
        
        
网站 UrlBase

     
    }

       SqlCmd 文件夹
       其中的类都要加上 internal 属性,只能在此项目中访问(在DAL中应用)。作用是提供SQL查询的Cmd,主要用在有很多可选择条件的查询。  在此文件夹下,又分为Factory, Sql 两个文件夹。在DAL调用SqlCmd中的代码时,应该调用Factory中的代码,Sql中的代码只应在Factory中的代码中调用。示例如下:

Factory文件夹下的代码调用Sql中的代码

 

Sql文件夹中代码应用示例

       Tools 文件夹
       提供此解决方案的其它帮助类。

      今天先说道这。 

posted on 2006-10-13 14:13 来问(zljGood@hotmail.com) 阅读(257) 评论(1) 编辑 收藏