二十七(序幕)、【開源】EFW框架破繭成蝶

回《【開源】EFW框架系列文章索引》       javascript

EFW框架源代碼下載V1.3:http://pan.baidu.com/s/1c0dADO0
html

EFW框架實例源代碼下載:http://pan.baidu.com/s/1eQCc69Gjava


      本身也經歷了一些Web項目,但對MVC的理解仍是比較片面的,那就講解一下我認識MVC的經歷,這樣沒有理論教導,只有一些學習的引導以及感悟吧;在現實項目中可能更注重開發效率與成果,因此對新的技術或理論都是比較保守的,也跟所在的行業是個比較保守的行業有關吧;其實本身對業務架構清晰,代碼結構整潔仍是比較關心的,因此對一些好的技術理論也是有所關注;web


1.asp時代
      最先接觸Web開發是用Asp作網站開發,就是在html標籤中嵌入asp腳本代碼,數據庫也通常用的Access,固然程序功能也沒那麼複雜無非就那麼幾個欄目,首頁、公司簡介、產品、聯繫咱們、留言板等;雖然功能簡單可是一些代碼複用仍是想了一些辦法,好比把鏈接數據庫的代碼單獨一個conn.asp文件,還有用戶驗證、頁眉、頁腳等,那時候通常都是用文件引用的方式來複用代碼;多年沒接觸asp,偶然去看了些流行的CMS代碼,根本看不懂了,那麼多代碼文件沒有一個是html文件,基本都是動態生成的吧,index.asp打開也是一堆的腳本;能寫出這些代碼或看懂代碼的人怎麼也是技術牛人吧,但如我這般的人仍是佔大多數吧,怎麼也是一個結構簡單明瞭,代碼清晰整潔的框架更適合咱們吧。數據庫


2.donet桌面程序時代
      後來進入行業軟件公司用.net作桌面程序,那時候仍是用vs2003開發,系統爲兩層結構,客戶端直連數據庫,操做數據庫的代碼都是直接寫在界面代碼中的,就這樣上千個客戶端同時使用也是挺正常的;一些重複的功能通常都是封裝成業務控件,使用的時候很方便把控件拖進去就好了,還有一些經常使用的基礎數據就封裝成公共的類庫;設計模式

如今想來這種方法仍是有不少優勢的:架構

1.首先就是上手快,一個.Net新手立刻就能修改程序bug,框架

2.查找問題維護也比較方便,由於結構簡單根據界面上的操做按鈕一步步就能夠找到問題代碼修正就行,也不會說對其餘功能會有影響;學習

同時缺點也是很突出的:網站

1.隨着業務功能愈來愈複雜,代碼變得愈來愈難控制,程序中有幾個複雜的界面,一個文件代碼的行數就達到1萬以上,後來增長一個新功能變得愈來愈痛苦;

2.程序代碼的移植性不好,隨着業務的擴展須要開發一些新的模塊,而新模塊的大部分功能在老模塊中都有的,如今要把這些功能代碼剝離出來是很痛苦的,千絲萬縷,真是斬不斷理還亂;


3.三層架構時代
      在這些優勢與缺點的磨練中,平時也就尋找一些解決辦法,得整理出一種結合二者的開發模式;三層架構、MVC、ORM、AOP、面向對象、設計模式等都想利用起來,固然中間的一些技術仍是挺複雜,如MVC、設計模式的理論,NHibernate的配置都是苦學無果,不過最後本身仍是整出個簡易的開發框架,固然三層架構和麪向對象是少不了的,ORM本身弄了個單表操做,設計模式用了個工廠模式;恰好也有一個不大不小的項目須要從新開發,既然帶隊就得把新的開發模式給使用起來吧,幸虧團隊成員也都是很是支持使用新的,通過幾個月的努力奮鬥系統終於也給弄出來了,開發過程當中有喜也有憂,喜的是這種新的開發模式用起來仍是比較順手的,寫出來的代碼也比之前好看,憂的是你們對面向對象的思想理解不一致或存在誤差,致使對象比較多,有些還不三不四;不過想一想不也是有個過程的,不還有重構這一條路嗎。後來系統上線時候,後面的人員接收維護也都以爲比之前代碼好,那是真的開心。

4.ExtJs+AspX
      真正發揮這個框架的做用還在後面,有新的客戶爲了後期維護方便須要系統是B/S架構的,那麼須要將現有C/S的程序改爲B/S的,通過你們評估仍是可行的,既然系統是用三層架構開發的,邏輯層已經分離了,那麼只要把Winform界面替換成Web界面就好了,工做量仍是比較小的;這樣又開始了新一輪的征戰,界面框架最後定了ExtJs,由於另外一個部門就是用的ExtJs+Java開發的系統,爲了減小技術的風險最後就定了ExtJs,最後發現這玩意是一個錯誤的選擇,ExtJs太複雜了像咱們這些新手根本一下掌握不了;最後搭建成B/S的框架是這樣的,ExtJs+AspX,ExtJS界面開發,aspx調用後臺邏輯層進行數據轉換輸出;雖然大部分人都是第一次作web系統,但仍是跌跌撞撞的作出來了,後面的維護確實仍是挺頭痛,特別是Extjs作的界面那部分,一個js文件也是老長,javascript原本調試起來就不方便,維護就更困難了;後來也看了人家java部門的代碼,對比起來,人家的確實仍是清晰好看多了,通過一番分析多是兩方面問題:

一是、咱們這邊第一次接觸JS代碼編寫因此不免寫法不是很規範,對裏面的控件封裝使用都不熟練。

二是、咱們的界面功能確實比那邊的要複雜,由於咱們都是把Winform的界面照搬用Extjs實現的,一些用Winform很容易實現的功能用Web方式就很是麻煩,沒有作深層次的分析轉換,因此Js代碼變得很難維護是再所不免的;

 

5.JqueryEasyUI+HTTPHandler+Controller
      通過了上面的經驗教訓,既然ExtJS這麼難學就找個容易學的,就換成了JqueryEasyUI,Aspx作數據處理太浪費了,想把cs代碼移到獨立一個類庫中去,後來就發現了ashx,再後來使用HTTPHandler把http請求徹底分離,並擴展出了WebController統一進行數據的處理;最後框架就變成了現在這樣,JqueryEasyUI+HTTPHandler+Controller。後來用這個框架進行了幾個Web系統的開發,效果都不錯,特別是學習成本與開發效率都是很突出的;


      爲了適用各類狀況,對框架又作了一些擴展,好比:進行手機網站開發,界面框架換成JqueryMobile,那後臺Controller也擴展出支持JqueryMobile的數據處理控制器;後來又加入了更多的界面框架和控制器,ExtJS、QUI、JqueryUI等;

      隨着框架的愈來愈完善,反過來想這種開發模式仍是比較相似MVC模式的,想着之後給新人講解開發模式的時候也有個理論依據,因此拿出來探討一下,對比其餘的MVC框架,總結出優缺點與適合的場景。

相關文章
相關標籤/搜索