经过了这几天痛苦的重构和模式学习,写一些想法,发到首页来想与大家分享,我是Shangducms NT的作者,是个学生,前一段时间在园子里展示了自己的作品,(可以看相关网页),看到不少园子里的达人的热心帮助和提出意见,我终于下决心完全重构自己的代码和修改一些模式,所以我从上个星期六开始重写,星期六用了7,8个小时详细的了解了模式,看完了petshop和discuz NT的构架,发现的确这是一个热门的构架,大家无论怎样都想基于这样开发,于是这几天大概写了1万多行代码,(偶是代码狂人,只要在线就写代码,只要不睡觉就在线..),写了几个版本,做了几个构架,测试了不同版本,发现实用性和后期开发性都有自己的特点和缺点.当然,我要在这里说出我的观点,上次怪怪也说新手不怕自己被别人嘲笑,那我就豁出去了.....,不过,可能我的观点有些奇怪吧,只是个人观点,拿出来讨论讨论.
同时也发现了为什么无论我怎么写原来的版本,和多层构架大家为什么说我写的像ASP了,其实我也是想基于多层构架封装,也想靠拢,后来发现我是VS2005开发的还没SP1,建立不了Web应用程序,也就是Web网站,所以很大程度上限制了多层结构,虽然我将类都写到了App_code里,然后通过页面调用,但还是无法完全靠拢多层模式..于是就在Vs2008下开发..
第一次重写:
平台:Vs2008..
重写了2天后基本成型了,类似petshop的构架,一个bll,一个dal,一个model,当然还预留了接口,然后开始重写页面,发现页面的部分非常难写,要申请一个model类,再申请一个Bll类,当然因为是预留接口,发现这样对Sql语句还是不能很好的隐藏,还是可以看到sql语句,当然插入的部分用类封装了.当然我说的难写是很多地方很难改过来,虽然这样的构架插入数据给低层了,但是在前台生成(比如生成静态),采集却很难,特别是中国的服务器和虚拟主机普遍在.net 2.0的情况下,要Vs2008重写后完全兼容Vs2005基本上是完全不可能的..,所以测试以后基本失败,于是只好放弃了很多页面,特别是死心眼封装的很死的时候到后来竟然发现request[""]这样的操作还需要封装,简直事倍功半..
当然我不是说多层的不好,在不考虑生成静态和平台的影响的情况下,多层确实能比较好的实现多人开发,因为园子里有一个人辅导我开发..也指出了一些不好的地方,在这里十分感谢他..
第二次重写:
平台:Vs2005..
然后我想其实可以根本不用这样重写,于是我在2005下,为了兼容自己的虚拟主机,(因为学生都比较穷),还有一些用户,所以就到2005开发,依旧是这样的一个构架,但是封装后,还是发现有很多操作并不简单,一个原来很简单的操作竟然变得很困难,比如在一个页面实行多个操作,default.aspx?action=search,default.aspx?action=login,这样的同页面多操作却变得很麻烦,必须得多出很多的辅助封装来实现,同时在前台页面还得对request进行判断,再定义辅助封装的属性,再来操作..让我想到最近跟一个程序员聊天说,他觉得很郁闷,用工厂模式写一个留言本,封装了半天写都写晕了.
于是没办法,只好抛弃了现有的模式,只好再重新写代码..(好在我还是学生,没有boss的压力.. : ),可以想什么时候完成就什么时候完成)
于是第三次策划,平台还是Vs2005(我这里考虑的是个人使用和方便性,要是有自己的主机就不需要啦)
后来我直接建立解决方案,在Vs2005导入现有网站->然后按模块建立层->再将App_code的导入到不同的模块和层->再修改一些命名空间,基本上就能使用了,虽然暂时还没有定义model层,但是将model层分发到不同的模块,我认为反而更加简单,将系统细分为模块,再公共访问一个数据层,看来更加简单一些,几乎10分钟就暂时再模块上重构了,至于insert等数据地方的封装,可以以后再来
当然,我这个模式并不是一个很好的模式,同时我觉得这个方法也有好处,比如小组开发模块等,同时我也想到一个道理,也是书里面写的,不要死记硬背一个模式,大概跟园子里的朋友说的心中无模式差不多吧,当然有很多模式都很好,但是都适用与特定的场合,如果适用的场合不合适,反而效率地下不说还让开发人员非常的头疼.当然这只是我自己那么一点经验的一些心得,跟园子里很多多少多少万项目开发和多少多少小时项目开发经验的人来说肯定是小巫见大巫了,我在这里只是想表述自己的想法,分享自己的经验,园子不是也说了吗,1.首页原创精华.NET区(包含架构设计、设计模式)(对首页文章的要求:原创、高质量、经过认真思考并精心写作),我想这篇文章应该算我经过认真思考并精心写做的吧,如果有哪些地方写的不对,还希望大家多辅导和指点,当然,也希望和大家多交流咯.
同时也发现了为什么无论我怎么写原来的版本,和多层构架大家为什么说我写的像ASP了,其实我也是想基于多层构架封装,也想靠拢,后来发现我是VS2005开发的还没SP1,建立不了Web应用程序,也就是Web网站,所以很大程度上限制了多层结构,虽然我将类都写到了App_code里,然后通过页面调用,但还是无法完全靠拢多层模式..于是就在Vs2008下开发..
第一次重写:
平台:Vs2008..
重写了2天后基本成型了,类似petshop的构架,一个bll,一个dal,一个model,当然还预留了接口,然后开始重写页面,发现页面的部分非常难写,要申请一个model类,再申请一个Bll类,当然因为是预留接口,发现这样对Sql语句还是不能很好的隐藏,还是可以看到sql语句,当然插入的部分用类封装了.当然我说的难写是很多地方很难改过来,虽然这样的构架插入数据给低层了,但是在前台生成(比如生成静态),采集却很难,特别是中国的服务器和虚拟主机普遍在.net 2.0的情况下,要Vs2008重写后完全兼容Vs2005基本上是完全不可能的..,所以测试以后基本失败,于是只好放弃了很多页面,特别是死心眼封装的很死的时候到后来竟然发现request[""]这样的操作还需要封装,简直事倍功半..
当然我不是说多层的不好,在不考虑生成静态和平台的影响的情况下,多层确实能比较好的实现多人开发,因为园子里有一个人辅导我开发..也指出了一些不好的地方,在这里十分感谢他..
第二次重写:
平台:Vs2005..
然后我想其实可以根本不用这样重写,于是我在2005下,为了兼容自己的虚拟主机,(因为学生都比较穷),还有一些用户,所以就到2005开发,依旧是这样的一个构架,但是封装后,还是发现有很多操作并不简单,一个原来很简单的操作竟然变得很困难,比如在一个页面实行多个操作,default.aspx?action=search,default.aspx?action=login,这样的同页面多操作却变得很麻烦,必须得多出很多的辅助封装来实现,同时在前台页面还得对request进行判断,再定义辅助封装的属性,再来操作..让我想到最近跟一个程序员聊天说,他觉得很郁闷,用工厂模式写一个留言本,封装了半天写都写晕了.
于是没办法,只好抛弃了现有的模式,只好再重新写代码..(好在我还是学生,没有boss的压力.. : ),可以想什么时候完成就什么时候完成)
于是第三次策划,平台还是Vs2005(我这里考虑的是个人使用和方便性,要是有自己的主机就不需要啦)
后来我直接建立解决方案,在Vs2005导入现有网站->然后按模块建立层->再将App_code的导入到不同的模块和层->再修改一些命名空间,基本上就能使用了,虽然暂时还没有定义model层,但是将model层分发到不同的模块,我认为反而更加简单,将系统细分为模块,再公共访问一个数据层,看来更加简单一些,几乎10分钟就暂时再模块上重构了,至于insert等数据地方的封装,可以以后再来
当然,我这个模式并不是一个很好的模式,同时我觉得这个方法也有好处,比如小组开发模块等,同时我也想到一个道理,也是书里面写的,不要死记硬背一个模式,大概跟园子里的朋友说的心中无模式差不多吧,当然有很多模式都很好,但是都适用与特定的场合,如果适用的场合不合适,反而效率地下不说还让开发人员非常的头疼.当然这只是我自己那么一点经验的一些心得,跟园子里很多多少多少万项目开发和多少多少小时项目开发经验的人来说肯定是小巫见大巫了,我在这里只是想表述自己的想法,分享自己的经验,园子不是也说了吗,1.首页原创精华.NET区(包含架构设计、设计模式)(对首页文章的要求:原创、高质量、经过认真思考并精心写作),我想这篇文章应该算我经过认真思考并精心写做的吧,如果有哪些地方写的不对,还希望大家多辅导和指点,当然,也希望和大家多交流咯.

添加至收藏夹