MVC開發簡介
第一部分:傳統的web開發方式
傳統的web開發,一般是先設計一個頁面(用Dreamweaver或其他工具),然後再頁面中嵌入伺服器端指令碼程式碼。比如 php/asp/jsp 都是這樣。
下圖就是這種風格的php程式碼(來自Joomla):
第二部分:mvc的開發方式
mvc的開發方式對如何放置程式碼,有比較規範的約定。它分成三個部分:
1、頁面部分(view,又叫檢視模板部分)
2、控制器部分(controller,獲取資料並呈現到view中)
3、模型部分(model,領域模型,負責提供資料庫或其來源的資料)
各部分的流程大體如下:
傳統的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、無頁面字尾名、約定優於配置的風格等都是不可缺少的;另外,對頁面生命週期中各事件的擴充套件也提供了完善的支援。
② 伺服器找到指定的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、無頁面字尾名、約定優於配置的風格等都是不可缺少的;另外,對頁面生命週期中各事件的擴充套件也提供了完善的支援。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-663240/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Spring MVC 通俗簡介SpringMVC
- 敏捷開發簡介敏捷
- Defi開發簡介
- 跟開濤學Spring MVC:第一章 Web MVC簡介SpringMVCWeb
- ASP.NET MVC – 安全簡介ASP.NETMVC
- ASP.NET MVC – 模型簡介ASP.NETMVC模型
- Google VR 開發簡介GoVR
- ASP.NET MVC – 檢視簡介ASP.NETMVC
- HiSpark系列開發套件簡介Spark套件
- Flash開發環境簡介開發環境
- 移動web——移動web開發簡介,WebStorgae簡介Web
- ASP.NET MVC – 控制器簡介ASP.NETMVC
- 第一章 Web MVC簡介WebMVC
- MVC開發模式MVC模式
- iOS開發-MVCiOSMVC
- Omni/USDT PHP 開發包簡介PHP
- 技術簡介——後端開發後端
- 郵件開發:Javamail、JAF簡介JavaAI
- MongoDB JVM 開發庫使用簡介MongoDBJVM
- chrome外掛開發簡介(一)——開發入門Chrome
- ASP.NET MVC – SQL 資料庫簡介ASP.NETMVCSQL資料庫
- ASP.NET MVC4 入門簡介ASP.NETMVC
- 移動應用程式開發簡介!
- 跨平臺開發技術簡介!
- 信貸風控模型開發----模型簡介模型
- 【轉載】軟體開發模式簡介模式
- 鴻蒙開發Hvigor任務簡介鴻蒙Go
- ASP.NET MVC – 樣式和佈局簡介ASP.NETMVC
- 【J2EE】:MVC模式的簡介與分析MVC模式
- HealthKit開發快速入門教程之HealthKit開發概述簡介
- 開發微軟XBox遊戲-XNA開發平臺簡介(轉)微軟遊戲
- Linux下應用程式開發:QT開發簡介(轉)LinuxQT
- 安全軟體開發生命週期簡介
- Flutter #0 移動開發技術簡介Flutter移動開發
- jQuery外掛開發流程簡單介紹jQuery
- 開課簡介
- 我也玩 PSP 開發! —— PSP開發環境 簡介開發環境
- golang 版本的MVC開發框架GolangMVC框架