我的2007

 2007.3~2007.4

20073月份回学校(北工大)时,我不知道接下来该做什么,是去找个工作还是创业或者是再学一些新技术(原先一直是在vs2003下做开发),接下来看到在学院里的一个公告参加微软的Image Cup,于是我就参加了,当时正式参赛的人员已经定下来了,一共是4个人,我和其它二个同学做为后援加入这个team,我们一起做了一个基于互联网教育相关的主题的项目,在这个项目中,我主要负责了web相关模块的具体设计实现,这次的设计中也应用了我不久前学习的pd建模工具,并把整个项目基于vs2005+SqlServer2005平台下来,在项目的架构上,应用了动软生成器生成的仿petshop的七层架构,并在此基础上利用了.net 2.0的特性分局类进行了一些改进,在架构的设计方面并没有太多的考虑,轻车熟路,还是比较成功。在项目的开发过程中主要遇到的问题是对vs2005里一些新控件的使用,如updatepanel,mutilview,以及sitemap的无限级分类的实现等具体控件的应用上。另外一个是对vss2005的学习使用上,之前在做兼职时,也只是用vss6.0d,并没有实际做过配置管理,这次项目从头到尾都自己来,加上另外成员都没有这方面的经验,出现了很多的问题,总的来说这次项目中版本管理基本上没起上用场,因为每个人都是做单独的一块。这个项目结束时,给我的收获是,让我熟悉了vss的使用,建模工具,以及vs2005中的新特性。

2007.5~2007.6

在做创新杯时就有同学希望叫我帮他做一个简单的网上的产品展示的程序,这种程序当然很简单,如果使用.net使用一个datalist就解决问题了,使用asp的话,使用一个mod也就可以实现datalist的效果,况且之前也都做过这样的程序了,但是我觉得没有新意,当时我一直想学着用一下nhibernate,但是所有的教程之类的都是讲的hibernate,正巧在javaeye论坛上泡了一段时间,对论坛上的一些关于贫血、充血模型的帖子很感兴趣,但是没有实践过,心里总是没有底,于是我就定位使用struts+spring+hibernate+ajax这样一套架构来实现了同学的这个网上的产品展示程序,这个程序使我对ORM、容器的使用有了一个比较初步的认识,也为我更加深入的学习.net做了一个辅垫。

2007.6~2007.7

在上两个项目中我就一直希望能出更多的文档,使用pd是能够按照定制输出数据库设计文档,但是可定制性还是太差,亦或许是我还没有研究透(极有可能)。加上原来我使用的动软生成的代码是无法定制的(刚出的新版似乎已经可以自己定制了,没有研究过),于是我在考虑是否使用codesmithmygenerator按照我的要求定制输出文档,又鉴于mygenerator是开源的,我就在mygenerator的基础上进行了二次的开发,我把这个项目命名为DBSchema2Doc,根据自己的模块定制输出到wordexcel,这个项目中有一大部分时间花在了阅读mygenerator的源码上,另外一部分是程序UI的展现上,这中间应用了DevExpresstree控件,让我感受最深的是它的文档非常齐备,常见的应用它都有示例代码给你写好并可运行查看,这期件也应用了一些在codeproject上的改进控件如checkboxlist,使之拥有三种状态。最后这个项目是个半成品,因为这个是个我自己想要的东东,因为马上要进入下一个项目,所以就搁浅在一边了。

2007.8~2007.12

这期间我设计了一个叫做朗志轻量级项目管理解决方案的项目,它的功能就是实现项目进度的管理,bug的跟踪,任务的分配,知识库,客户反馈等,是我以前的一些经历,让我想到要做这样一个东东,但是做到一半的时候这样的东西原来已经有人做了,并且做的很好,这让我明白了调研原来很重要。但是这次也是做为一个学习的项目还是很有意义的,我负责带大二大三还有研二的共计十个同学参与这个项目,我的角色即是PM,又是架构师(虽然有些不象样,但是从中真的学习到很多内容),这次我使用project来做任务分配,进度管理,同时在项目架构上使用了简单的三层架及vs2003(当时考虑borland together只有地for 2003的版本,事实证明又是我消息滞后了,那时其实已经有together for 2005的版本了,这也给我的成员们造成了不便,因为他们起点就是vs2005,没有接触过vs2003,还是有很大的不同的),另外一点是没有用petshop的架构了,因为会给成员们增加负担,让他们理解反射、接口之类的概念。在这个项目中我的收益是巨大的,在技术上,了解并运用remoting1.1框架下实现aop(改进自websharp),参考2.0角色控制实现了在1.1下基于RBAC的角色权限认证及审计操作。同时利用codesmith自己写了仿李天平动软的模板(用动软生成的代码在有些类型上有问题,如guid型),在团队管理上也给我很大的启发,如何和团队成员之间沟通,怎样把恰当的工作分配给合适的人,原先我应该说是一个话不多的人,经过这个项目,我成了一个挺能说的人了。

2008.1~2008.2

经过上个项目的磨合,这期间我本想带着大家一起到外面接个项目做做,但是低年期的同学们都忙着考试,很是无奈,这时正好同学介绍了一个网站的改版及二次开发的任务,我原本是不想接的,因为之前我在做asp时接过一个二次开发的任务做的很不愉快,给我的打击非常之大。但是和客户谈过之后,最后还是接下来来,主要因为前期是一个外包公司做的,程序的代码还算比较清淅,我分析前人的代码及业务流程花了将近半个月。并根据客户的要求,对数据库进行了扩展,在这期间,我也对我要使用的程序的架构进行了分析,再使用动软件那一套三层架构或者是七层架构我觉得都太累了,我不想把长长的sql写在代码里了,于是我在找一种rad的开法方法或者说是工具,我当时有考虑过用ibetas.net,nbear,castle,其中ibetas.net的资源最多了,无论是基于.net的还是java的,都有现成的范例,但是我还是想再看看,nbear的介绍也很多,但是它的资源或者是范例就比较少了,而且它给我的印象是很好很庞大,什么东西都有,且版本变化比较大,不稳定,真是让人又爱又恨,castle大家对他的评价都不错,但是虽然我有spring,hibernate的经验,但对ror,activerecord都还是个皮毛,也不敢贸然采用。最后,我选择使用了subsonic,应该说这个选择就我目前的水平而言还是非常明致的,这个选择保证了我的项目能够按期完成的关键(本身项目时间很紧,就一个月,而且不能托,因为要过年了),因为整个开发过程主体就我一个人,所以只要我一个人了解怎么使用subsonic就行了,不再需要考虑成员、团队的需求。Subsonic吸收的ror中经验,它给我印象最深的是强类型,什么都是强类型,复杂的查询、分页直接用储存过程及视图,

前两天园子里还有人通告了subsonic的最先动态,感兴趣的朋友可以看一看。我之所以这么挺subsonic还有一个原因是,客户前面的需求还有一些不明确,后来才和我讲,导致我又要改数据库,而我改动数据库,只需要重新生成一下代码就ok了。给了我极大的方便。

原文地址:https://www.cnblogs.com/lexus/p/1071704.html