单用户博客:单用户blog系统(一) 2024-04-20 16:16:00 0 0 收到一个朋友blog的系统升级的要求很久了,一直没有动手。现在觉得是应该做做了,否则真的都不好意思面对了。 本着就在原系统的基础上升级的原则,那么我所要作的,就是尽量减少朋友的部署成本和我的开发成本。 因此,本单用户blog系统本身对你或者没有任何帮助,我只是尽力把自己觉得涉猎的技术都引入到这个系统中来。也当自己练习练习。毕竟好久都没有做整套的东西! 想把一个东西,按照系统化的东西,按照程序去做出来,还是需要时间和精力的。所以,这讲是一个系列的随笔。 因此,本周的开始的任务,必定还是用户需求的收集。这个我想每个人每个系统都有自己的特点,因此这个就省略。因为对于我,我只需要从前台往后台一步步完成即可。 因为,对于这个小系统,架构的设计,以及在这次的实施的过程中,对以后的个人知识系统的完善和个人工具的完善,才是我最关注的. 开发环境:Windows XP + .Net Framework2.0 + Visual Studio 2008 + IIS5.1 + Access + Visio 架构设计: 典型的三层架构。我只是自己在加了一个common层,用来放类的定义和一些通用的接口之类。当然这个层的东西,都是要跨层使用的。对于web部分,我还是要在app_code下建立一个针对web的通用的方法或者类。本来还是应该再加一个测试的层的,可惜的是,我对测试不熟悉,即使2008已经加入了很方便的功能,就目前来说,我个人还是不喜欢测试,这个可能算是目前已知的一个遗憾吧。还有应该就是后续的层了,那就是加入一个WebServices的层,提供相应的服务 我的过程是: 在Common层,先完成一个类的定义。 在DataAccess层,完成相应的DataAccess中的类。这个类主要与数据库打交道完成以下任务 以Category为例 ---SELECT--- GetCategories GetCategoryById GatCategoryByName ---ADD--- AddCategory ---UPDATE--- UpdateCategoryById UpdateCategoryByName ---DELETE--- DeleteCategoryById DeleteCategoryByName 当然,本身由于blog系统的数据库类型已经为Access,所以自己建立一个AccessHelper这个类是必定的。这个类的作用是干啥,以及需要写什么东西,我觉得就不要罗嗦了。参照微软的Application Block或者Enterprise Library去写一个同样的东西就行了。 在BizLogic层。把DataAccess层过来的数据,转换为相应的对象 比如: GetCategories ---> List<Category> GetCategories GetCategoryById ---> Categroy GetCategory 最后,在Web这个层。 你知需要和对象打交道了。要什么就抓什么好了。 本层要设计的的技术的应用:asp.net theme, asp.net master page, asp.net webparts, ajax, 静态化htm,UrlRewrite, Img的Handler, 很多很多 -----------------当你写完一个类的时候,你要是再想写的时候,是不是觉得自己需要做很多重复工作啊,这个时候,代码生成需要派上用场了。因为,建立一个自己的代码生成工具,很有必要的。这个才是今天这篇post的主题。 代码生成工具:Access2Objects 功能描述: 1 根据链接字符串,获取所以表对象 2 根据表,生成相应的类 3 为每个类,生成DataAccess, BizLogic代码 目前就这样,这个小程序,争取拿一周的时间来完成。 相关知识: 1 使用Ado.net获取数据库架构信息:Access数据库架构信息的获取也可以通过下面的方法来完成1private DataTable GetMdbSchemaUsingOleDbConnection( string connString) 2{ 3 OleDbConnection myConn = new OleDbConnection(connString); 4 myConn.Open(); 5 DataTable table1 = myConn.GetOleDbSchemaTable(OleDbSchemaGuid.Columns,null); 6 myConn.Close(); 7 return table1; 8} 2 从表去获取表的详细信息,你可以根据上面的这个table中的数据来,也可以通过DataReader来推断1OleDbCommand cmd = new OleDbCommand( " Select * from Category " ,myConn); 2myConn.Open(); 3OleDbDataReader dataReader = cmd.ExecuteReader(CommandBehavior.SchemaOnly); 4table1 = dataReader.GetSchemaTable(); 5dataReader.Close(); 3 。。。暂时想到这里了。。。 转载于:https://www.cnblogs.com/yang_sy/archive/2008/03/02/1087913.html 收藏(0)