1. 程式人生 > >3小時搞定一個簡單的MIS系統案例Northwind,有視訊、有原始碼下載、有真相

3小時搞定一個簡單的MIS系統案例Northwind,有視訊、有原始碼下載、有真相

一、瞎扯框架、架構

     樓主自從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主要提供了以下兩大業務模型,採購入庫業務:

image

     銷售訂單業務:

image

     Northwind的設計準備是前一天做好的,然後樓主通過YY為大家提供現場的快速開發培訓,邊講角邊做開發,從生成程式碼到第一個手工完成業務模組“商品分類”、“商品字典”、使用介面生成器生成了兩個業務模組“員工管理”、“客戶管理”,一直做到“採購入庫”、“採購入庫查詢”、“庫存查詢”、“銷售訂單業務”一共8個模組,涉及資料查詢、介面編輯、分層業務模型、輸入字典、報表設計、檢點控制元件挑戰、輸入焦點變色、文字輸入驗證等大量的工具、控制元件及相關技術,理論上已經完成了Northwind案例的所有業務,當然如果要完美的話可以增加“收支報表”、“銷售訂單查詢”、以及介面的美化,介面驗證的完善。

     希望群裡和各位朋友Northwind例沒有完成的工具去做一做,把他做完,這一定是一個非常不錯的專案模板,以下是幾個做好的介面:

image

image

image

三、原始碼、視訊下載

     在培訓過程之中,樓主全程開啟錄相,錄了大概。2.1G的高清視屏,目前已經全部上傳在百度網盤和我們的伺服器,原始碼已經上傳到我們的SVN伺服器和下載伺服器,請大家下載視訊和原始碼,視訊時長4小時,請大家耐性觀看。

     原始碼下載,原始碼請通過AgileEAS.NET SOA 中介軟體平臺官方網站下載,或者通過以下方式下載:

     Administrator,james,demo1使用者登入密碼均為:sa

四、問題反饋

     麻煩大家在通過視訊進行學習的時候能及時把問題反饋給樓主,或者有什麼需要改進的一些建議都請向樓主直接反饋,以下是聯絡方式:

樓主QQ:47920381,AgileEAS.NET

QQ群:113723486(AgileEAS SOA 平臺)/上限1000人

199463175(AgileEAS SOA 交流)/上限1000人

120661978(AgileEAS.NET 平臺交流)/上限1000人

郵件:[email protected],[email protected],

電話:18629261335。

     另外,樓主將會不定期的通過YY舉辦類似本次活動的培訓,所以麻煩大家都關注一下YY頻道:65011880,也可以加一下樓主YY號:537601972