一、瞎扯框架、架構
樓主自從1998年從C語言、MASM、Foxbase開始學計算機開始接觸這個行當16年以來,2001年干第一份與程序、軟件、然后是各種屌的東西開始,差不多干了13年了,這13年來,用過VF\VC\VB\C#搞過N多N多的項目,記得在2002年、2003年那個瘋狂並且操蛋的年代,在整天VB代碼與各種SQL、各種Bug、各種需求敲打、各種吐血的需求變更、各種大半夜還坐在醫院的小板凳的加班與折磨之中,慢慢的學會去思考,他媽的這是為什么,寫了程序那么的折磨人,從那時開始,就接觸各種軟件工程相關的東西,思考着是否可以發現能解決或者改變這種現關的東西,記得那個時間好像挺流行一本書,叫《銀彈》,在那個年齡,也嘗試對需求、變更進行控制和管理,但是在野蠻生長的中國軟件業,用戶這個上帝才是幫一位的,我們也嘗試使用VB+COM/COM+進行加載和框架的提練,進行某些代碼和架構級別的規范,試圖使用那些技術去實現分布式架構的應用,以及通過插件機制去實現對需求的小范圍控制,只是基於那些機制的先天不足和營養不良的環境,對項目與企業的現狀改變不是多少。
在厭煩了VB開發之后,樓主也接觸了Java,只是接觸,沒有做過多少開發,能大概看明白什么個意思,總體上來說,不是很喜歡基於Java開發,其中的原因第一是樓主在那個年代做的是CS類的MIS類應用,其實就是一直在做醫療行業的應用,Java做CS簡直是弱爆了,再一個java IDE也直接太弱爆了,樓主是懶惰的一個人,不喜歡用記事本那種比較裝的干法去寫高深的代碼。
2004年接觸VS2003之后發現簡直是找到了自己喜歡的東西了,VS2003配置.net1.1,也提供了簡單的WebService和.NET Remoting技術,簡直讓以前在VB時候夢寐以求卻難以搞定的機制就非常簡單的實現了,.net所提供的反射機制可以實現很簡單的插件開發,從那個時間起,樓主就寫出了AgileEAS.NET SOA中間件平台的最初始版本,一個簡單的winfrom插件平台。
從2004年到2014年,差不多快10年的時間,樓主也像所有的程序員一樣,把AgileEAS.NET SOA當自己的寶貝一樣的,升級、增加新的東西,早期關注各種IOC、各種AOP、各種ORM、各種通信等基礎類的東西,2010年底專職從事咨詢服務工具,為各種規模、各種業務的軟件商提供框架定義、技術咨詢服務、醫療行業業務咨詢服務等服務。
也是自2011年之后對什么框架、什么架構、什么應用商店、各種雲架構有了更簡單的認識,整天沒事扯架構、扯框架的人,或許壓根就不知道什么是框架、什么是架構,架構、框架不是各種空泛的理論和各種看似華麗的詞匯,架構或者框架、平台應該是一類能幫助開發人員、開發商提高效能的東西,好的框架一定是簡單好用的,那怕是功能不是很強,也比較單一,但一定要好用,另外一個,框架或者架構一定要配合相應的工具,就比如.NET的種類庫如果沒有VS開發環境的配合,估計就是一堆廢柴。
在很多人看來,能寫框架、平台、架構的人都是牛人,實際上這是一個誤導,寫框架的人不一定是技術上的牛人,一個框架、平台、架構上沒有什么多少高深的技術,比如做插件框架的,就一個簡單的反射技術,相信一個C#程序員,用一周時間足夠搞的很清楚了,再比如ORM框架,也沒有什么高深的技術,動態拼接SQL加上動態反射創建實體,所以說從技術層面上來講,寫一個框架、類庫不需要多少技術,因為這些東西都 是現成的並且可以你很容易找到。
但是一個好的框架或者平台,一定會有其配合很好的工具,比如對象建模工具、界面設計工具、文檔生成工具、代碼生成工具,以及相關的配置、管理、通信、監控工具,一個平台或者一個架構的生產力一方面體現在框架所提供的那引起基礎類庫所建立的規范,另一個很重要的原因是其配置工具所提供的快速開發能力是極其重要的,或者說一個框架是否能被應用的廣泛,工具所帶來的用處遠遠大於基礎類庫所提供的功能。
能寫好一個優秀的框架並能提供大量、可用、好用的框架開發才不一定是技術上的牛人,但一定是對軟件工程管理、企業軟件生產組織模型或者某一業務領域的業務經驗一定有其獨到的理解,其框架之中所傾注的業務與軟件工程管理經驗才是框架作者最寶貴的財富,經驗需要日積月累,可不是一天兩天能練成的,不管在任何行業、經驗都是非常值錢的東西。
二、3小時完成一個Northwind案例
在最近的一段時間之內,群里的好多朋友都希望我能給大家通過視頻展示一下AgileEAS.NET SOA 中間件快速開發的相關技術,以便讓更多的朋友學習和參考,但是一直忙於客戶的各種項目、各種咨詢服務以及家中的一些雜事,給大家拖了好久,拖的實在我都有點不好意思了,所以在上周做了一點准備,原本是想在原DrugShop的案例上進行,但是有朋友建議,在原項目基礎上做,可以不一定讓大家從頭了解和從頭開始學習、配置和如何從一個空白建立一個新的項目。
經過一些了解之后我們決定從SQLServer數據庫所提供的案例Northwind基礎上做一些簡化和改動,為什么要使用Northwind案例呢,主要原因是其設計比較規范,了解和熟悉的人也非常的多,便於大於理解其業務需求。
樓主對Northwind做了一些簡單的改進,主要是那方面的改進呢:
1)原來的Northwind主要重點再於客戶和銷售的管理,對采購入庫業務處理的不是很好。
2)原來的Northwind對庫存管理做的比較弱。
3)簡化了原Northwind的客戶、和銷售管理,刪除了對銷售訂單的區域等參數。
修改完成的Northwind主要提供了以下兩大業務模型,采購入庫業務:
銷售訂單業務:
Northwind的設計准備是前一天做好的,然后樓主通過YY為大家提供現場的快速開發培訓,邊講角邊做開發,從生成代碼到第一個手工完成業務模塊“商品分類”、“商品字典”、使用界面生成器生成了兩個業務模塊“員工管理”、“客戶管理”,一直做到“采購入庫”、“采購入庫查詢”、“庫存查詢”、“銷售訂單業務”一共8個模塊,涉及數據查詢、界面編輯、分層業務模型、輸入字典、報表設計、檢點控件挑戰、輸入焦點變色、文本輸入驗證等大量的工具、控件及相關技術,理論上已經完成了Northwind案例的所有業務,當然如果要完美的話可以增加“收支報表”、“銷售訂單查詢”、以及界面的美化,界面驗證的完善。
希望群里和各位朋友Northwind例沒有完成的工具去做一做,把他做完,這一定是一個非常不錯的項目模板,以下是幾個做好的界面:
三、源代碼、視頻下載
在培訓過程之中,樓主全程開啟錄相,錄了大概。2.1G的高清視屏,目前已經全部上傳在百度網盤和我們的服務器,源代碼已經上傳到我們的SVN服務器和下載服務器,請大家下載視頻和源代碼,視頻時長4小時,請大家耐性觀看。
視頻下載地址,百度雲鏈接:https://pan.baidu.com/s/1V0akBerwzdPNm6ug2nffzw 提取碼:4w9f
官網服務器:1.AgileEASNET SOA 5平台配置.avi
2.AgileEAS.NET SOA 5元數據設計器.avi
源代碼下載,源代碼請通過AgileEAS.NET SOA 中間件平台官方網站下載,或者通過以下方式下載:
直接下載:AgileEAS.NET SOA 案例(Northwind)源碼下載,http://118.24.209.136/downloads/eas/Northwind.rar。
SVN更新:https://118.24.209.136/svn/Northwind,登錄用戶:eas,密碼eas.
github:https://github.com/agilelab/eas
Administrator,james,demo1用戶登錄密碼均為:sa
四、問題反饋
麻煩大家在通過視頻進行學習的時候能及時把問題反饋給樓主,或者有什么需要改進的一些建議都請向樓主直接反饋,以下是聯系方式:
AgileEAS.NET網站:http://www.agileeas.net
官方博客:http://eastjade.cnblogs.com
github:https://github.com/agilelab/eas
QQ群:113723486(AgileEAS SOA 平台)/上限1000人
199463175(AgileEAS SOA 交流)/上限1000人
120661978(AgileEAS.NET 平台交流)/上限1000人
郵件:james@agilelab.cn,mail.james@qq.com,
電話:18629261335。
另外,樓主將會不定期的通過YY舉辦類似本次活動的培訓,所以麻煩大家都關注一下YY頻道:65011880,也可以加一下樓主YY號:537601972。