RSS 2.0 Feed
2006-08 Entries
摘要:Excentrics World Server Controls 是我用了很长时间的一个控件,最近它的 2.0 版本也出来了,可以更好地适应 ASP.NET 2.0 了,我主要是使用其中的日期选择控件(CalendarPopub)、时间选择控件(TimePicker)和数字输入域(NumericBox)。 FreeTextbox 目前的版本 3.1.x 已经很好地支持 Internet Explorer 7.0 了,从这里看到,4.0 也快发布了,从界面上来看,进步不小。 欢迎大家也各自给出自认为用着不错的控件,互通有无。...[阅读全文]

posted @ | Feedback (13) |

摘要: 应用/项目名称 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 将与数据库的主要交互功能封装起来,提供了实体层次的CRUD3) 在 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......[阅读全文]

posted @ | Feedback (12) | Filed Under [ 程序设计 软件技术 ]

摘要:个人感觉数据访问层应该实现以下几个主要目的: 1) 分离业务层与数据层 2)屏蔽具体数据库的差异(如SQLServer、Oracle、OLEDB、ODBC等) 3)简化数据访问层的代码,经常写一些 Parameter 的设定是很无聊的事情) 先下载并研究了一下Enterprise Library 2.0 ,发现其中的Data Access Application Block有点复杂了,有近 40 个类文件,还需要引用 Configuration、Common、ObjectBuilder 等项目,本身就是一个很大的项目了... 个人觉得还不如上一个版本中的 SQLHelper 对象那么简单方便(Pet Shop 4.0 中的 DabaAccess 项目里就是用 OracleHelper和SQLHelper来实现的) 再来研究Pet Shop 4.0 ,其中主要对象层次一般是(假设Model是业务对象): ModelInfo <- Model -> IDAL <- SQLServerDAL(或OracleDAL) 其中: ModelInfo 是瘦的业务实体数据对象 Model 实现 ModelInfo 的管理(增、删、改、查询)等,调用 IDAL 来实现 IDAL 是数据访问层的接口定义 SQLServerDAL 是 IDAL 在 SQLServer 上的实现,如果是 Oracle,可以利用 OracleDAL 来实现 貌视还不错的结构,只是 DAL 层的里面的代码还是比较多,好多SQL、好多Parameter的操作 再看看 Visual Studio 2005 中带的"个人网站的初学者工具包"的数据访问代码,它只是简单在App_Code中有 Model(瘦的业务实体数据对象)、ModelManager(管理对象,数据层的访问也在其中实现)的两个对象,数据库也只是SQL Server,较为简单,但也不易扩展。 我的一点想法: 1)Enterprise Library 2.0 有些庞大和重量级,学习曲线太长,谨慎使用 2)Visual Studio 2005 中的数据集对象(DataSet)是个好东西,可以简化很多SQL语句的编写和参数的设定 3)Pet Shop 4.0 的总体架构还是不错的(Model <- ModelInfo -> IDAL <- SQLServerDAL),值得参考,但是在SQLServerDAL 和 OracleDAL 不用手动去编写代码,而是调用利用 DataSet 自动生成的代码来实现(SQLServer、Oracle、OLEDB或ODBC等),简单的业务对象管理动作应該是能直接利用DataSet提供的方法直接实现,如果是复杂的数据层操作,可以自己编写代码来实现(如多个表之间的数据操作) 4)musicland 和 JGTM 2006 也提供了一种不错的实现方式,具体参考这篇Post 这样的话,开始提到的三个目的都能达到了。...[阅读全文]

posted @ | Feedback (15) | Filed Under [ 程序设计 软件技术 ]