每一个人身上,都有着独一无二的经历,也有着不同的成长历程。回顾一下,从大学时期参加校网络中心从事开发工做,到目前在社会上的风雨兼程,也走过十多年的开发路程了,黄金岁月,青春年华,都在这期间度过。前端
养成常常写写博客的习惯,也将近10年,每篇文章,都体现本身某一刻的体会或者想法,博客十年,也是本身的技术十年,总结了无数的开发心得和开发思路,或者有时候也很欣喜的介绍一下本身的劳动成果,辛苦与愉悦,伴随着时间慢慢沉淀。数据库
因为热衷技术的缘由,博客内容通常围绕某个技术点,或者某个主题进行介绍,逐渐也造成了几个内容较多的标签,也是本身一直以来坚持的成果,回首过去,仍是能看到沉淀下来的一些成绩。编程
虽然05年就注册加入了博客园,不过05年正处于奔波忙碌的年代,在上海的一家外资公司作软件外包的开发工做,公司管理严格,禁止发送任何信息到外面,所以多数状况下在休息时间看看一些文章,了解一些技术的动态,本身业余时间则主要沉醉于第二版代码生成工具的开发工做,以前的初版主要是在C#代码中糅合了须要生成的代码,能解决一些工做,但维护的工做量很大,容易出错。所以后来碰到了NVelocity的模板化技术的时候,很是激动,花了不少时间在这方面作研究,而后把它综合到代码生成工具里面,实现实现逻辑和模板的分离网络
初期的博客发表,能够追溯到06年期间,当时已经回到了广州,公司管理也没有那么严格苛刻,所以也有时间介绍一下本身的东西,偶尔有空写下博客,虽然量很少,当时主要就是围绕代码生成工具来完成本身的一些工做,并且也由于可以减轻公司平常的开发工做,得到公司的一个年度奖,奖金不多,但仍是很开心。架构
随着开发经验的积累,感受高效的开发和架构很重要,使用代码生成工具开发项目起来,能达到事半功倍的效果,所以在项目开发的时候,一方面提炼完善较为通用的开发框架,一方面整合到本身的代码生成工具里面,反复的循环,力求达到最为完美的状态。有时候看着,操做几下就能完成新项目搭建的大量工做,内心仍是感受到很是的欣慰,虽然这期间的完善再完善,花费时间不少,提炼标准的架构模板也是较为繁琐的工做。框架
随着时间的推移,本身对不少经常使用的类库逐渐的也积累的更多,有时候由于开发的须要,本身也开发一些辅助的类库用来使用到框架的架构当中,如支持多数据库的数据查询类,配置管理类等等,之后参考不少项目,把可以提炼出来的东西进行综合整理、合并,而后添加注释,增长不少测试使用的例子,就是力求在之后方便参考使用。公用类库的整理过程很漫长,从开始整理到最终的写博客介绍,中间经历了4~5年的时间,整理过程也能够是博取众长了,把不少同一主题的类库进行比较综合,挑出最好的实现方法,提炼出来,而后也尽量的添加完善的注释。工具
在这段时间工做过程当中,接触了Visio的二次开发工做,因为当时的公司项目主要就是利用VB进行Visio的开发,所以除了开发前端展现的基于Web的项目外,也维护着VB6的项目,因为本身对Visio的二次开发很感兴趣,所以也花了大量进行对Visio的模型和接口进行了解。所以这期间经常在.NET项目和VB的项目进行切换,感受很别扭,老是但愿之后可以在语言的方面一统江山。后来偶尔一次机会发现C#也能用来开发Visio的二次开发项目,并且微软新版本的VisioSDK也带有了C#的一些例子代码,所以就花了大量的业余时间对这些英文的帮助进行学习,并逐渐进行了各类代码开发和测试。花了差很少进一年的业余时间,加上项目对Visio的深厚了解,终于把整个Visio的二次开发项目完整的用C#进行了从新开发,而且加强了不少Visio的应用特性,本身在这期间也把Visio的知识了解的较为深入,所以借着热度把不少Visio的知识,用C#代码的方式,写了不少这方面的博客,也算是填补了国内的这方面知识的空白了。因为这方面只是的缺少,以致于不少年后,还有不少客户联系我获取这方面的源码和帮助,偶尔也处处讲讲课什么的,这是后话。学习
后来转转到了另一家公司,也基本是从事Web项目的开发工做,而我业余时间主要搞Winform开发一些共享软件,这样就出现了一个颇有趣的状况,白天弄Web项目,晚上或者周末有空就搞下本身的WInform项目,因为得益于微软对这两方面的抽象,基本上除了界面层如下的内容,都是通用的,所以个人Winform开发架构和Web开发框架底层都是同样格局的,仅仅是界面层的不一样。回顾这么多年的开发经历,感受除了历史缘由外,通常企业的项目都要求使用Web开发,这期间的2年左右的时间,都主要在带着一些手下在忙着Web项目的开发工做,一个用于停车场行业平台的管理,接入了全广州市的业务审批流程和展现这个行业的数据。后来,公司须要在停车场方面接入实时空车位的信息,所以须要接入一个终端的硬件设备进行数据采集,为了统一进行数据采集,创建了一个以TCP/IP连接的Socket数据处理平台,这是不少年终于在所任职过的公司上线的一个Winform项目,处理来自几百个终端设备的数据接入,这个时候,也基本上把Socket编程的技术了解的很深入透彻,这期间,本身亲力亲为过不少有意义的事情,如定义接入的Socket协议、调试终端的串口数据接入,和很各地方的设备厂商进行沟通、调试等,后来定义的Socket协议通过反复的完善调整,也顺利经过《广州市标准化研究院》的验收工做,也算正式参与了一项标准化的起草工做了。测试
在最后这家公司任职时间较长,虽然每一个项目的开发、维护周期很长,但仍是参与了几个项目的开发工做,不过因为技术没有太大的变化,基本上沿用了WebForm的这样方式,不过这样也很好。这个模式很好的利用了我在WebForm模式下积累的一些组件模块,如Web分页控件、Web查询控件、上传组件、以及Web的流程处理模块等等,这样基本上保持了较好平稳度和稳定的开发模式,开发的速度也较为高效。不过随着时间的推移,基于JQuery的Web项目,基于MVC技术的项目已经愈来愈流行了,可是纵观其余项目组,并无人领衔这个技术潮流,也许项目开发自己稳定很重要,技术探索也须要时间和积累。所以我离职后,一直就但愿开发一个基于JQuery+MVC4+EasyUI的项目框架,后来也就造成我本身的框架,做为Web项目的参考,这是后话。在这家公司的环境仍是很好,同事的相处氛围也仍是很不错,以致于我离职后还常常和他们一块儿打打球,吃吃饭,不少同事关系也算是朋友关系了。调试
在最后这家离职后,一直但愿整理完善本身的东西,想把这几年的东西,好好梳理,好好总结,所以感受有很长一段时间,本身的工做显得更加繁忙。但愿藉此打造出项目开发过程当中的一些基础模块,模块之间以积木方式进行组合,即便对于互联网的网络环境,咱们同样可以利用WCF技术,把它整合到Winform界面上,所以就总结了本身的几个Winform框架模式:传统Winform开发框架、WCF开发框架、混合型开发框架,除了底层的变化为,组合上依旧是采用积木方式进行组合,下面的模块分布图,就是我目前已经完成的各个模块,也许将来会整合更多,可是这些模式依旧可以很好的进行组合、拆分,每一个模块能够独立完成,根据须要进行整合。