`
wyf
  • 浏览: 433341 次
  • 性别: Icon_minigender_1
  • 来自: 唐山
社区版块
存档分类
最新评论

ASP.NET 常见参考项目的 UI、BLL 、Model 、 DAL 分析(转载CSDN)

阅读更多

应用/项目名称 UI层实现 Business Model & Logic Layer 实现 Data Access Layer 实现
Personal Web Site Starter Kit 在ASP.NET页面上直接利用 ObjectDataSource 来绑定 PhotoManager 中的方法来获取数据、更新数据 两个数据实体类(Album、Photo),一个管理类(PhotoManager)
自行解决数据库连接、使用 SqlCommand 来调用存储过程来完成
Club Web Site Starter Kit 在ASP.NET页面上直接利用 SqlDataSource 来获取数据、更新数据 只有一些简单的 Helper/Utility类,业务逻辑大多在页面上实现 有一个DataSet,提取 Member表的数据,在自己的数据库中扩充了 SqlMembershipProvider的字段
Classifieds Site Starter Kit
在ASP.NET页面上,增/删/改主要是利用FormView调用BLL中的ModelDB来实现,数据列表主要利用ModelCache的List和ModelDB返回的ModelDataTable来绑定
1) BLL中实现了 ModelDB的类,调用DAL中的DataSet来进行数据更新,如果是查询数据(GetModelList),则得到 ModelDataComponent.ModelDataTable,这是数据集自动生成代码中的一个类

2) 在 App_Code 的Web目录中,主要实现了部分实体在 HTTP Context中的Cache功能,建立了 CachedModel(数据实体类)及其管理对象 ModelCache,后者主要是将BLL层的ModelDB的Retrive结果DataTable转成 List
全是ASP.NET 2.0 中的DataSet,实现了所有表数据的获取与更新,它是调用存储过程来实现的
Commerce Starter Kit 在ASP.NET页面上,有一些是直接调用 ModelManager对象来完成用户交互,有一些则是利用 ObjectDataSource 绑定 ModelManager 来达到同样功能

对于某些操作,如果没有对应的 ModelManager 则直接使用 SqlDataSource
1) 在Objects目录下,定义了数据实体类,包含所有属性的Get/Set方法的定义,没有实例化方法,而是使用 void Load(IDataReader)来初始化,其中有一个对象(ShoppingCartItems),则继承至DataTable,利用BuildDataTable()来进行初始化

2) 利用数个 ModelProvider 将与数据库的主要交互功能封装起来,提供了实体层次的CRUD

3) 在 BLL 目录下,有数个 ModelManager,提供从业务层面对 Model 的操作,其中主要是调用 ModelProvider来完成具体的操作
在 ModelProvider项目中中,先定义ModelProvider抽象类,再由 SqlModelProvider 来继承,后者中利用 SqlHelper 来完成数据访问,主要是调用存储过程
Duwamish 7.1
(.NET 1.1)
调用BusinessFacade中的 OrderSystem 和 ProductSystem 中的方法完成用户交互,这主要是调用DAL层的相关对象来完成的 1) ModelData,继承自System.Data.DataSet,在构造函数里调用BuildDataTables()来初始化一个DataTable用来存储Model数据

2) 在BusinessFacade和BusinessRule中,实现了与业务逻辑有关的内容,调用数据层的 Models 来完成数据访问
实现了数个 Models对象,提供了对于 ModelData的CRUD方法,它也是调用 SqlHelper 来完成与数据库的交互
Jobs Site Starter Kit 利用 ObjectDataSource 绑定 Model 类,Command 主要是调用 Model 的 CRUD方法 在 Model 对象中定义了所有属性和CRUD方法,实现时调用了 DAL 的 DBAccess 对象,也使用了诸如 SqlParameter 等对象 只有一个类 DBAccess ,属于工具类,类似于 SqlHelper,它是利用 System.Data.SqlClient 来实现的,如果向其他数据库移植,代码量不大
Timer Tracker Starter Kit 利用 ObjectDataSource 绑定 Model 类,Command 主要是调用 Model 的 CRUD方法 在 Model 对象中定义了所有属性和CRUD方法 DataAccess:抽象类,定义了DAL层需要实现所有 Model 的 CRUD 对应的数据访问方法

DataAccessHelper:工厂类,利用配置创建相应的 DataAccess 对象

SqlDataAccess:DataAccess 的 SQL Server 实现,其中也包含一些类似于SqlHelper 的通用方法以简化代码
.Text 0.95
(.NET 1.1)
大多数是调用 Model有直接调用 SqlDataProvider 来获取数据、更新数据 在Dottext.Framework 的 Component 中定义了业务实体 Model 和 ModelCollection,在在Dottext.Framework定义了 Models 类,主要用提供 Model 的 CRUD 方法,其中的 R 返回 ModelCollection 在Dottext.Framework 的 Data 中定义了 IDbProvider和 IDTOProvider 接口,然后提供了 DataDTOProvider 和 SqlDbProvider 的实现,其中调用了 SqlHelper 类
Community Server 2.1SDK
(.NET 1.1 & 2.0)
直接调用 Models 的方法来获取数据、更新数据等 在 CommunityServerComponents 项目的 Components 中定义 Model 类,其中仅包含属性定义及构造函数,另外定义了 Models 类,其中实现了 Model 的 CRUD 方法,它是调用 Provider 下的 CommonDataProvider 来完成数据访问的 在 CommunityServerComponents 项目的 Proivder 中,利用抽象类CommonDataProvider 定义了所有 BLL & Model 层需要的数据访问方法,然后在 SqlDataProvider 中项目中使用 SqlDataProvider 继承此类,完成与 SQL Server 数据库的交互
.Pet Shop 4.0 在 asp.net 的页面上,大多是利用代码来调用 BLL 层的 Model 对象来获取数据、更新数据 Model 项目 中定义了所有的业务实体 ModelInfo
BLL 项目中定义业务实体 Model ,其中包含业务视角的 CRUD 方法,它们是调用 IDAL 中的 IModel 的 CRUD 方法来实现的
IDAL 项目中有多个接口定义 IModel,其中定义了需要实现的 Model 的 CRUD 方法
SqlServerDAL 和 OracleDAL 分别在两种数据库上实现了 IDAL
DALFactory 为工厂类,负责根据配置返回相应的 IDAL 的 IModel 实现类
DBUtility 是 SQL Server 和 Oracle 数据库操作的工具类,主要是 SQLHelper 和 OracleHelper

简单个人评价:

  1. Personal Web Site Starter Kit:简单,供初学者参考之用
  2. Club Web Site Starter Kit:对标准 MemberShip 的扩充值得一看
  3. Classifieds Site Starter Kit:结构较为清晰,利用 DataSet 简化了大量 SQL 代码的编写
  4. Commerce Starter Kit: 利用了 Provider 模型,有些小瑕疵,如界UI层有 SqlDataSource,Model 中有 DataTable
  5. Duwamish 7.1:架构比较清晰,但Model 继承自 DataSet ,因此其 BuildDataTables 和 Models 中的CURD 方法较为麻烦,代码量较大
  6. Jobs Site Starter Kit:简单实用,有些缺点,如 Model 的 CRUD 方法的 SqlParameter 造成 BLL 和 DAL 无法完全隔离
  7. Timer Tracker Starter Kit:一种架构清晰、较好的实现模式,只是代码量稍大
  8. Text 0.95:基于 .NET 1.1 ,因此 BLL 层稍显复杂,DAL 层代码量也较大
  9. Community Server 2.1:它同时兼容 .NET 1.1 和 .NET 2.0 ,因此没有利用 .NET 2.0 的许多特性,但其 Provider 的模式较为清晰
  10. Pet Shop 4.0:架构清晰

分享到:
评论

相关推荐

    asp.net 三层架构实例 BLL DAL Model

    首先,"三层架构"指的是数据访问层(DAL)、业务逻辑层(BLL)和表示层(UI层,通常是ASP.NET页面)。数据访问层是与数据库交互的部分,负责执行SQL查询和存储过程。业务逻辑层处理业务规则和流程,它调用数据访问层...

    ASP.NET 三层框架搭建 BLL+IDAL+DAL+DB+MODEL

    ASP.NET 三层架构是一种常见的软件开发模式,用于构建可维护性高、结构清晰的Web应用程序。这个架构将应用程序分为三个主要层次:表现层(BLL)、数据访问层(DAL)和数据库层(DB),以及模型(MODEL)层。现在我们...

    在ASP.NET 2.0中操作数据:处理BLL和DAL的异常

    在ASP.NET 2.0中操作数据:处理BLL和DAL的异常

    生成C#中的Model,BLL,DAL文件

    总的来说,"生成C#中的Model,BLL,DAL文件"这个工具是C#开发中的得力助手,它简化了三层架构项目的初期构建,使得开发者可以更快地进入业务逻辑的实现阶段,从而提升整体开发速度和质量。在大型项目中,这种自动化...

    在ASP.NET 2.0中操作数据之十八:在ASP.NET页面中处理BLL/DAL层的异常

    在ASP.NET 2.0中,开发Web应用程序时,通常会采用分层架构,将业务逻辑(BLL)和数据访问(DAL)分离,以提高代码的可维护性和复用性。然而,当BLL或DAL层发生异常时,如何在页面级别优雅地处理这些异常并展示友好...

    通用Bll 通用Dal

    本项目利用.NET的反射功能,实现了BLL和DAL层的通用化,以减少重复代码并降低编码工作量。 首先,让我们来理解一下什么是BLL和DAL。BLL是业务逻辑层,它处理应用程序的核心业务规则和流程,负责数据的验证、计算和...

    在ASP.NET 2.0中操作数据:在ASP_NET页面中处理BLL-DAL层的异常

    在ASP.NET 2.0中操作数据:在ASP_NET页面中处理BLL-DAL层的异常

    理解ASP.NET中的三层中的DAL、BLL和USL .doc

    ASP.NET 三层架构中的 DAL、BLL 和 USL 在 ASP.NET 中,三层架构是指将整个业务应用划分为三个层次:表示层(USL)、业务逻辑层(BLL)和数据访问层(DAL)。这种架构方式的目的是为了实现“高内聚,低耦合”的思想...

    asp.net mvc项目源码

    三层架构通常指的是数据访问层(DAL)、业务逻辑层(BLL)和表示层(UI),这种架构设计有助于分离关注点,提高代码的复用性和可测试性。 `Project.sln`是解决方案文件,它包含了项目的所有组件和依赖关系。通过...

    在ASP.NET 2.0中操作数据之三十八:处理BLL和DAL的异常

    导言  在DataList里编辑和删除数据概述里,我们创建了一个提供简单... 如我们在在ASP.NET页面中处理BLL/DAL层的异常里看到的,如果BLL或DAL里发生异常,详细的信息会返回到ObjectDataSource,然后再到GridView。我

    c#(asp.net)机器人项目生成器

    1.生成带有Model,BLL,Dal,UI,Common层的MVC项目。 2.生成UI层的HTML页面及后台代码,带有增、删、改、查、分页、详细等功能。 3.生成增、删、改、查、分页、详细的存储过程等SQL脚本。 4.暂支持SQL2000和SQL2005...

    三层架构入门讲解(c#)UIL、BLL、DAL

    ### 三层架构入门讲解(C#):UIL、BLL、DAL #### 一、什么是三层架构? 在软件开发领域,三层架构是一种常见的设计模式,它将应用程序分为三个不同的层次,每个层次负责不同的任务,从而使得整个系统更加模块化、...

    Model/BLL/DAL 三层小例子

    三层架构是一种常见的软件设计模式,它将应用程序分为三个主要的逻辑层次:表现层(Presentation Layer)、业务逻辑层(Business Logic Layer)和数据访问层(Data Access Layer),简称MVC(Model-View-Controller...

    在ASP.NET 2.0中操作数据:处理BLL和DAL的异常(源码)

    在ASP.NET 2.0中操作数据:处理BLL和DAL的异常(源码)

    asp.net的CRM项目

    在ASP.NET CRM项目中,源代码应遵循良好的命名规范和分层架构,包括表示层(UI)、业务逻辑层(BLL)和数据访问层(DAL)。使用版本控制系统,如Git,可以帮助团队协作和代码版本控制。 五、项目实施与优化 在实际...

    三层架构 c# BLL DAL MODEL

    在IT领域,尤其是在软件开发中,三层架构是一种广泛采用的设计模式,它将应用程序分为三个主要层次:表示层(UI Layer)、业务逻辑层(Business Logic Layer, BLL)和数据访问层(Data Access Layer, DAL)。...

    asp.net小项目

    三层架构是一种常见的软件设计模式,它将应用程序分为三个主要部分:表现层(UI)、业务逻辑层(BLL)和数据访问层(DAL)。这样的分层设计有利于代码的组织、维护和扩展。 1. **表现层**:这是用户与应用程序交互...

    asp.net留言板项目源码

    【ASP.NET留言版项目源码】是一个非常适合C#初学者学习的实践项目,它涵盖了ASP.NET Web应用程序开发的基础知识和核心概念。这个项目的核心在于利用ASP.NET的技术栈,结合C#编程语言,来构建一个简单易用、功能完备...

    asp.net图形分析源代码.rar

    在这个“asp.net图形分析源代码.rar”压缩包中,我们很显然会发现一套关于如何利用ASP.NET技术进行图形分析的源代码。这样的代码通常涉及到从数据库中获取数据,并使用这些数据创建交互式的图表和图形,以便对数据...

Global site tag (gtag.js) - Google Analytics