`

[转] ASP.NET 常见参考项目的 UI、BLL 、Model 、 DAL 分析

阅读更多
应用/项目名称 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.1 SDK
(.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

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



temptation 2007-05-25 16:49 发表评论
分享到:
评论

相关推荐

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

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

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

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

    asp.net的CRM项目

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

    Asp.net 项目实战 酒店管理系统

    2. MVC(Model-View-Controller):另一种常见的Asp.Net开发模式,它将应用程序分为模型、视图和控制器三个部分,有利于实现业务逻辑与视图的分离。在本系统中,MVC模式可以更好地组织代码结构,提高代码可读性。 3...

    基于ASP.NET的课程管理系统

    BLL(Business Logic Layer)负责处理业务规则和逻辑,它调用DAL来操作数据,并为UI层提供服务。课程管理系统的业务逻辑可能包括课程注册、成绩管理、用户权限控制等功能。 11. **db_new:新数据库** "db_new...

    三层架构 c# BLL DAL MODEL

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

    asp.net+Ajax 项目源代码 无刷新 新闻页

    4. `三层Ajax新闻系统源码.txt`:这是一个文本文件,很可能详细描述了项目的三层架构设计,包括数据访问层(DAL)、业务逻辑层(BLL)和表示层(UI),以及Ajax在其中的实现方式。 5. `DAL`、`DBUtility`:数据访问...

    Asp.Net Core 3.1 MVC+EF Core +SqlSugar ORM框架实例 多层架构示例Demo

    多层架构是一种常见的软件设计模式,将应用程序分为多个独立的层,如表示层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。这种架构有利于模块化,提高代码的可读性和可维护性。在本示例中,"DAL"可能包含了与...

    基于c#的asp.net三层架构的博客系统

    【描述】:“基于C#的ASP.NET三层架构的博客系统,包括DAL、BLL、Model、UI界面的设计” 1. 数据访问层(DAL):这是三层架构中的底层,主要负责与数据库进行交互,执行SQL语句,实现数据的增删改查等操作。在这个...

    Net.asp BLL+DAL+Web实现三层架构,自带增删改查

    三层架构在IT行业中是一种常见的软件设计模式,尤其在.NET ASP.NET开发中被广泛采用。这个“Net.asp BLL+DAL+Web实现三层架构,自带增删改查”的项目,旨在为开发者提供一个基础的模板,用于快速搭建具备基本数据...

    asp.net 三层生成器

    ASP.NET 三层架构是一种常见的软件开发模式,它将应用程序分为三个主要层次:表现层(UI)、业务逻辑层(BLL)和数据访问层(DAL)。这样的分层设计有助于提高代码的可读性、可维护性和复用性。下面将详细解释这三个...

    《ASP.NET项目开发实战密码》源代码

    通过分析和学习这些源代码,开发者可以深入理解ASP.NET项目的架构设计、数据访问策略、页面生命周期、状态管理以及异常处理等核心概念。同时,它也能帮助开发者提升在实际项目中解决问题的能力,从而成为一名更熟练...

    ASP.NET标准三层架构留言本项目源码

    ASP.NET标准三层架构留言本项目源码是一种常见的Web应用程序开发模式,它将业务逻辑、数据访问和用户界面分离,以实现更好的代码组织和模块化。在这个项目中,我们看到几个关键组成部分,包括图像资源、解决方案文件...

    asp.net 旅游网站

    【ASP.NET旅游网站】是一个基于ASP.NET技术和SQL Server数据库的在线旅游服务平台,旨在提供全面的旅游信息、...通过学习和分析这个项目,不仅可以了解ASP.NET和SQL Server的结合使用,还能提升Web应用开发的综合能力。

    asp.net医院管理系统.rar ASP.NET+数据库

    项目可能采用了分层架构,包括表示层(UI)、业务逻辑层(BLL)和数据访问层(DAL)。这种架构有助于代码的维护和重用,同时使系统更具模块化。 8. **报表与数据分析** 在医院管理系统中,数据分析和报表功能也很...

    基于ASP.NET选课系统开发

    【ASP.NET选课系统开发详解】 ASP.NET是微软公司推出的一种Web应用程序开发框架,它构建在.NET Framework之上,为开发者提供了强大的工具集和高效的运行环境,用于构建动态、数据驱动的Web应用程序。在这个基于ASP...

    asp.net实现的通讯录

    在ASP.NET中,通常使用ASP.NET Web Forms或MVC(Model-View-Controller)框架来创建用户界面。 - **业务逻辑层(BLL层)**:这一层定义了应用程序的核心业务规则和处理。在通讯录应用中,BLL可能包含验证用户输入、...

    asp.net各种基础

    3. 三层架构:在ASP.NET中,三层架构通常指的是表示层(UI)、业务逻辑层(BLL)和数据访问层(DAL)。表示层是用户与应用程序交互的部分;业务逻辑层处理业务规则和流程;数据访问层则负责与数据库交互。这种架构有...

    毕业设计完整版ASP.NET基于WEB的工作计划统计分析系统的设计与实现(源代码+论文).zip

    《ASP.NET基于WEB的工作计划统计分析系统的设计与实现》是一个典型的毕业设计项目,它涵盖了Web应用开发中的多个重要知识点。这个系统旨在通过Web界面提供一个高效、便捷的工作计划管理平台,进行统计分析,帮助用户...

    ASP.NET三层框架+MVC模式项目实现增删改查实例,适合 新手

    三层架构是一种常见的软件设计模式,将应用逻辑分为表现层(UI)、业务逻辑层(BLL)和数据访问层(DAL)。在ASP.NET中: 1. **表现层**:处理用户交互,通常对应于MVC中的视图。 2. **业务逻辑层**:执行业务规则和...

Global site tag (gtag.js) - Google Analytics