基于.NET的Windows数据库应用程序开发的心路历程 --我的程序“猿”进化之路
自从2008年3月份开始接触.NET,不不不,应该说是接触C#以来,就一直从事以数据库为中心的各种Windows平台的应用程序开发,屈指一算,已四年矣,现在把这几年中的一些心得体会做一总结。
虽然在本科和读研期间就一直接触编程,但一直使用的C、C++,而且只是粗懂一些皮毛。工作以来,由于项目的需要,改用C#,从而开始了我的.NET之路。
工作以来,小弟也开发了大大小小十几个项目,不过百分之二百五都是针对数据库的应用程序,采用的是古老的两层C/S结构(直到最近有所悟,以前一直以为自己用的是三层C/S结构,到现在才明白只不过是逻辑三层而已,物理上依旧是两层,胖客户端罢了)。
阶段1:标准的个体小作坊方式,凌乱无章的代码、庞大的类,空用着面向对象的语言,写着面向过程的代码,虽然知道封装、多态、继承,却从来没有使用过,可能是以前C的影响根深蒂固吧。操作数据库的SQL语句遍布大江南北、长城内外,一片狼藉,经常为了修改某处代码,牵一发而动全身,整个程序出现不可预知且难以捕捉的错误,在Bug的泥潭里爬行...
阶段2:不知从哪里听说了三层架构模式,于是就在网上找了一些高人的代码加以研读,初步形成了自己对三层架构的“理解”,即 BLL、IDAL、DAL、DALFactory、Model,从而开始了大规模、成批量的泛滥套用之路,当然是不求甚解、生搬硬套,数据库中有n个表,就会建立n*5个类,并且起了个好听命名空间Frame,终于站起来了...
阶段3:由于每次都要手动建立5n个类用来实现数据库的CRUD(注:此时还不知道什么叫CRUD),太累,于是就绞尽脑汁,写了一个三层代码的自动生成器,美其名曰ThreeLayerCreater,根据用户输入的表结构,自动生成相应的项目代码,开始学会自己制作工具...
阶段4:机缘巧合,在CSDN上有幸阅读了周公的博文一则而偶得灵感,利用泛型和反射机制写了一个通用类库ThreeLayerLib,摆脱了数据库表结构对实体类的约束,不用每次都建立5n个类,实现了双手的进一步解放,开始了直立行走...
阶段5:以前从没有听说过什么SSH(Spring+Struts+Hibernate)架构,从没有听说过什么ORM、IoC,不知框架为何物,不知.NET本身就是一个庞大的框架,更不知MFC也是一个C++的框架,从没有听说个MVC、GoF23设计模式,而所有这一切都由于最近接触博客而成为过去,我的脑袋被这些气势磅礴的名词搞得天旋地转。
阶段6:继续进化ing...