mvc 開發簡介
第一部分:傳統的web開發方式
傳統的web開發,一般是先設計一個頁面(用Dreamweaver或其他工具),然后再頁面中嵌入服務器端腳本代碼。比如 php/asp/jsp 都是這樣。
下圖就是這種風格的php代碼(來自Joomla):

這種開發方式很容易滋生一種傾向:習慣不好的程序員,會把大量的業務邏輯代碼、數據庫訪問代碼夾雜在頁面中,導致很難讀懂。比如下面的php代碼(來自wordpress):

所以就有一些人開發了框架,這些框架會強行規定各種類型的代碼的位置。ASP.NET Web Form
也可以算作一種web開發框架。它讓業務邏輯代碼或數據庫訪問等等的代碼,統一放在了 code behind(后置代碼中,總體而言,你當然可以進一步分離)
中,比如如下一段頁面以及它的后置代碼(來自BlogEngine):

后置代碼:

第二部分:mvc的開發方式
mvc的開發方式對如何放置代碼,有比較規范的約定。它分成三個部分:
1、頁面部分(view,又叫視圖模板部分)
2、控制器部分(controller,獲取數據并呈現到view中)
3、模型部分(model,領域模型,負責提供數據庫或其來源的數據)
各部分的流程大體如下:

① 瀏覽器向服務器發送請求
② 服務器找到指定的controller;由控制器(controller)查詢model,得到數據
③ 控制器(controller) 獲取視圖(view),并將model數據和view合并起來(途中虛線部分表示合并)
④ mvc 框架將合并的結果返回給客戶端
本質上, mvc 是一種劃分代碼的方式,它不是架構。它讓你的代碼整潔有序,更有效率。
三、各類mvc框架的實現
mvc的框架有很多,比如微軟的 ASP.NET mvc ,我記錄(wojilu.com)的 wojilu mvc;java領域有 struts;ruby 領域有 rails 等。
各類框架總體上流程差不多,但在具體的實現細節上、以及提供的工具的豐富程度上大有區別。比如 wojilu mvc 支持 namespace,ASP.NET mvc 僅僅支持 area 等……
習慣了 mvc 的開發方式之后,會覺得其實整個流程一點都不復雜。真正復雜的,還是針對特定功能和業務的實現,調研、整理需求、設計、性能調優等等。
四、wojilu mvc 的特點
1、支持命名空間(讓代碼文件更加整潔易覽;讓頁面layout和權限控制更加簡單易用);
2、默認將靜態文件(js/css/圖片等)單獨存放,可以輕松切換到二級域名(分離應用服務器和靜態服務器);
3、視圖邏輯和視圖模板徹底分離;
4、控制器可輕松依賴注入;控制器本身也可以通過配置自定義;
5、不對 html 封裝,可以讓前端開發徹底工作在html和css層面,對html擁有完全控制的自由;
6、多國語言支持(i18n),并且簡潔易用;
其他 mvc 框架都會帶的功能,比如路由、過濾器、RESTfull風格的Url、無頁面后綴名、約定優于配置的風格等都是不可缺少的;另外,對頁面生命周期中各事件的擴展也提供了完善的支持。
掌握以上各特點,需要看在線教程 http://help.wojilu.com/ 。更多深入解釋的文章,請關注“我記錄”網站的框架討論區: http://www.wojilu.com/Forum1/Board/3
② 服務器找到指定的controller;由控制器(controller)查詢model,得到數據
③ 控制器(controller) 獲取視圖(view),并將model數據和view合并起來(途中虛線部分表示合并)
④ mvc 框架將合并的結果返回給客戶端
本質上, mvc 是一種劃分代碼的方式,它不是架構。它讓你的代碼整潔有序,更有效率。
三、各類mvc框架的實現
mvc的框架有很多,比如微軟的 ASP.NET mvc ,我記錄(wojilu.com)的 wojilu mvc;java領域有 struts;ruby 領域有 rails 等。
各類框架總體上流程差不多,但在具體的實現細節上、以及提供的工具的豐富程度上大有區別。比如 wojilu mvc 支持 namespace,ASP.NET mvc 僅僅支持 area 等……
習慣了 mvc 的開發方式之后,會覺得其實整個流程一點都不復雜。真正復雜的,還是針對特定功能和業務的實現,調研、整理需求、設計、性能調優等等。
四、wojilu mvc 的特點
1、支持命名空間(讓代碼文件更加整潔易覽;讓頁面layout和權限控制更加簡單易用);
2、默認將靜態文件(js/css/圖片等)單獨存放,可以輕松切換到二級域名(分離應用服務器和靜態服務器);
3、視圖邏輯和視圖模板徹底分離;
4、控制器可輕松依賴注入;控制器本身也可以通過配置自定義;
5、不對 html 封裝,可以讓前端開發徹底工作在html和css層面,對html擁有完全控制的自由;
6、多國語言支持(i18n),并且簡潔易用;
其他 mvc 框架都會帶的功能,比如路由、過濾器、RESTfull風格的Url、無頁面后綴名、約定優于配置的風格等都是不可缺少的;另外,對頁面生命周期中各事件的擴展也提供了完善的支持。
掌握以上各特點,需要看在線教程 http://help.wojilu.com/ 。更多深入解釋的文章,請關注“我記錄”網站的框架討論區: http://www.wojilu.com/Forum1/Board/3

浙公網安備 33010602011771號