每一個人身上,都有着獨一無二的經歷,也有着不同的成長曆程。回顧一下,從大學時期參加校網絡中心從事開發工做,到目前在社會上的風雨兼程,也走過十多年的開發路程了,黃金歲月,青春年華,都在這期間度過。前端
養成常常寫寫博客的習慣,也將近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開發框架、混合型開發框架,除了底層的變化爲,組合上依舊是採用積木方式進行組合,下面的模塊分佈圖,就是我目前已經完成的各個模塊,也許將來會整合更多,可是這些模式依舊可以很好的進行組合、拆分,每一個模塊能夠獨立完成,根據須要進行整合。