项目经验总结分享:图书馆维护系统总结

图书馆维护系统算是我独立写的第一个B-S系统,牛腩新闻发布系统仅仅是照着敲而已,当时看感觉还行,挺简单,到自己真正做了,才发现很多细节不是没记住就是不会。但是牛腩视频的作用是不可低估的,因为他给了我一个宏观指导,一个完整的B-S开发流程。同时,也让我了解了一些至关重要的B-S开发常用技术技巧。正所谓:不怕不知道,就怕不知道


项目准备:

这个系统米老师其实早就给我了,可当时没往心里去,再加上那时候提高班出了些问题,停课了一段时间,然后又准备自考,所以前期拖了比较长时间,自考完之后,才正式开始做这个系统。

项目开发首先要办的事是市场调查、可行性研究。由于我是从其他同学那接手的这个任务,已经做好了需求:一个UML用例图。当时做的时候受到以前开发程序的影响,拿到UML图我直接就开始设计数据库,没有设计界面。因为以前开发程序都是有前人做好的系统,可以参考一下界面,所以就逐渐忽略了界面设计的重要性,直到设计BLL层的时候,才发现少了界面,这B层实在是没法写。没有界面,通过用例图硬生生的设计数据库,可想而知我设计的数据库也不咋的。

那么系统开发前期究竟要做些什么呢?经过思考和总结,归纳如下:

刚刚已经提到了界面,根据个人的理解,界面是需求的具体体现,是对需求的具体化,虽然用例图可以体现需求,但是过于抽象,不便于分析和改进。

1.和用户共同设计界面:在系统需求分析阶段,需要一个原型设计工具(即纯画界面工具,用来快速设计程序的粗略界面),开发人员和用户一起讨论交流,共同用原型设计工具设计出一个原始的粗略界面,让用户直接看到界面,有效的减少产品与需求不符的情况,就算用户什么不懂,但是看的懂界面吧?起码用户知道这就是他想要的,即使有改动,一般也是改进性维护和功能添加性维护,不太可能出现核心改动。

2.根据界面设计数据库:有了界面,接下来就可以设计数据库,根据界面设计数据库,总比看用例图舒服。更重要的是,在设计数据库过程中,可以及时发现界面的不足来完善界面,这样即可以减少开发后期具体界面设计的工作量,又可以促进数据库设计的更加合理。当然,即使是比较合理的数据库,也只能算是原始数据库,不可能一次到位。数据库是程序的根基,重中之重。学到现在,我隐隐感觉一个项目中最有发言权的两种人是:数据库设计师、架构设计师。这两种人一挥笔,程序基本就算是出来了,剩下的就是写代码实现。

3.写文档并完善数据库和界面:接下来要做的事应该就是写文档了:需求分析说明书、概要设计说明书、详细设计说明书。在写文档的过程中,借助于UML图等方法,继续发现数据库设计的不足,完善数据库,改进界面。

项目经验总结分享:图书馆维护系统总结

PS根据多次开发的经验,一定要在前期尽量把数据库设计完善,在开发中后期如果改动数据库,将造成非常巨大的工作量。

虽然我在此写的很轻松,但实际上这个阶段(项目准备)要占相当长的时间,至少为整个项目的60%。与用户交流可能有很多障碍、数据库不是一时半会就就能设计出来的、写文档同时兼顾数据库、写文档也包含系统架构设计等等。这是一个相当漫长的过程,也是最具技术含量的过程。这个阶段过了,系统就有了灵魂,接下来让程序员给他一个身体就完工了(当然,还有后期维护)

根据探索和实践,发现了两款优秀的原型设计工具,现在推荐给大家用。

一个是C-S开发设计用:腾讯CDC(Customer Research& User Experience Design Center即用户研究与体验设计中心)出品的UIDesigner;一个是B-S开发用:Axure RP Pro 6 快速产品原型设计工具。这两款工具都是相当的好用,而且使用简单,会用鼠标就行,拖拖拽拽界面就出来了。

点击下载UIDesigner

点击下载Axure RP Pro 6汉化免费版。


编写过程:

开发工具:VS2010SQL Server 2005。开发环境:ASP.NET 4.0

稍有工程经验的童鞋都知道,软件编写过程是整个项目中耗时最少的。因为系统已经在项目准备阶段设计好了,在这个阶段要做的就是技术实现,机械式的写代码。

1.数据库脚本编写。这次开发系统,根据上级的指示,一律用存储过程操作数据。我用了大约3天时间来写数据库,表脚本、存储过程脚本。我做这个小系统也没多大,一共就20张表,大约100个存储过程。此时写的存储过程虽然自己感觉很满足,但是想写全了是不可能的,除非是做梦。等写程序代码时,就会发现其实还少很多。。。。我印象最深刻的就是数据分页(真分页哦。。)存储过程,我忘记了数据分页还要知道记录总数,否则没法分,这下好了,有多少个需要分页的查询就要补多少个获取总数的存储过程(当然可以整合成一个,但是表不同、条件不同,整合起来参数很乱,我没有整合,应该整合了比较好吧,下次实践验证吧!)。这些早发现了还好,要是等到写界面才发现,麻烦就大了,至少要做的是:添加存储过程、改D层接口、改D层、改B层;

2.程序代码编写。本次开发用了三层架构和抽象工厂设计模式。以前用过一次了,这次显得轻车熟路。再加上已经有了文档,所以很快就把DBHelper项目、DAL层接口项目、DAL层项目、工厂项目、实体类项目、BLL层项目搞定了。也没遇到什么问题,因为这些东西没什么技术含量。写到界面的时候,由于B-S开发和C-S开发有很大区别,又是第一次做,显得很生疏,出了不少错误。印象比较深刻的就是我傻傻的在后台定义了变量,结果一刷新全没有了(详见文章尾相关文章)。这次感觉界面写的非常不好,因为水平有限,我把界面写的有点乱,很多东西都应该整合到BLL层,但是我都放在了界面上。一方面是受到牛腩的影响,另一方面是学的东西有限,有些东西确实没办法放到BLL层里,比如某个小逻辑我想用Session,我只能把它放在界面里,放在BLL层里哪有Session对象?还有就是我想找到某个控件,要用FindContorl方法,理论上这样的遍历逻辑也应该放到BLL层,但是BLL层没有这些方法。。。希望以后在提高班随着学习的深入,能解决这些问题(其实我已经听学长说了,以后学jsp开发时就能解决这些问题)

PS关于数据库存储过程,我和一些已经工作的大牛聊天,发现很多公司都不用存储过程、视图之类的技术,这样可移植性不好。现在我也体会不到,只能让实践给自己一个明确的答案!

这次开发B-S程序,突然发现自己几乎没有用javascript脚本,很少很少。CSS样式用的也很少很少。但是界面并不丑陋,低调的华丽。仔细思考一下,这个系统后台就是简单的分为五块,顶部登录信息---顶部logo---中间部分菜单框架()---中间部分具体内容()---底部版权。用了框架就省事多了,但是不能乱用,一般后台才使用框架,网站首页没有用框架的,不利于SEO优化。

另外,我还偷偷的抄袭了点点轻博客的配色,所以系统显得很典雅(偷笑),建议各位童鞋以后做项目可以适当参考一下轻博客的配色,都非常好,国内国外均可,国内比较出名的有:点点、网易轻博、新浪轻博等。对了,还有wordpress主题的配色也都杠杠的,让人看了非常舒服。


发布维护过程:

服务器环境:Windows Server 2003

无论是C-S开发还是B-S开发,发布始终是看着简单,做起来问题多多。以前发布C-S程序,经常遇到控件注册失败、缺少组件无法运行等让人头疼的问题。到了B-S发布,也不是那么顺利。

1.配置网站。直接用VS2010的发布功能发布,看到的就是一些编译之后的网页文件,直接把这些文件复制到服务器网站目录下,修改一下web.config配置文件中的数据库连接字符串,就没程序啥事了。至于怎么用IIS发布网站,就请读者google一下吧!非常简单!整个过程超不过1分钟。需要提醒的是,如果在一台服务器上发布多个网站,最简单的办法就是用端口区分,也就是给不同的网站用不同的端口,默认的是80,当分配非默认端口时,访问网站一定要在IP末尾加上端口号,例如:http://192.168.21.221:8090。此外,也可以用域名(主机头)区分网站。这个就比较复杂了,如果仅仅是局域网内访问,可以修改HOST文件强制解析,不用花钱买域名。但是如果想在外网也能访问,得花钱买IP、买域名,假如您不想花一分钱,但是仍然想用自己的电脑发布网站(动态IP发布网站),请google一下“花生壳”。

2.配置数据库。数据库其实没啥可配置的,用SQL查询分析器把SQL脚本执行,数据库就算完事了。可是偏偏出现了问题,我的数据库脚本是用SQL 2005 写的,可是服务器的SQL2003版的,本来2005上运行的好好存储过程,到2003里都变成了语法错误。没办法只能在数据库上再安装一个SQL2005。一台机器上同时安装SQL 2005SQL 2003,经过查阅资料,发现可行,于是便安装了。安装之后用SQL2005执行脚本,发现竟然还是语法错误!再查阅资料,才发现安装SQL 2005的时候选择的默认实例,这样不行,这样的SQL 2005就是一个界面,核心还是SQL 2003的。幸好可以通过修改SQL 2005的实例名称来解决。改了实例名称之后,果然可以了,数据库,表创建脚本、存储过程脚本、触发器脚本以及一些初始数据导入成功。至此,系统发布就算完成了。

PS其实远远没有结束,纠结的服务器,后来不知怎么的又出错了,仍然是语法错误,没办法,只能把2003卸载了,这一卸载不要紧,SQL 2005也不能用了,最后没办法只能把数据库全卸载了,然后重新安装SQL 2005。所以,劝告大家,千万别有SQL 2003SQL 2005一起安装的想法啊!

这次发布的程序是.NET 4.0的,如果服务器没有安装.NET 4.0一定要先安装。安装完成之后用IIS发布网站记得要选.NET 4.0程序,否则没法运行。

既然正式使用服务器了,顺便研究一下安全配置(这里的安全是指入侵防范),毕竟安全对于服务器来说是至关重要的。找了一篇不错的文章:http://www.chinaz.com/server/2008/0129/22454.shtml

几经周折系统发布成功之后,根据客户的需求,做了如下完善和修改:

l  功能操作框架的标题随着菜单的更换而更换。

l  对数据库连接字符串进行加密。

l  增加了特殊用户,专门配置系统用。

l  对值班时间推算算法做了优化处理。

l  由于电脑数量较多,手动添加太慢,增加了批量导入功能。

l  其他BUG修复(大约5BUG,大多数是因为初始状态下数据库中无数据而出现的)


小结:

说了这么多,终于要结束了。。。。

做这个系统所有时间加一起,差不多一个月时间。

在提高班的学习告诉我:没有什么做不到的!去做就可以了,以终为始,做完了才是真正的开始,才有发言权!蓦然回首,不过如此!感谢米老师的用心良苦!加油吧,同学们!


图书馆维护系统相关技术总结:

ASP.NET巧妙利用repeater控件和checkBox控件实现批量操作

先有鸡还是先有蛋:数据库中的相互依赖

让菜单充满活力:ASP.NET根据角色动态分配菜单+权限

图书馆维护系统总结

你可能感兴趣的:(总结)