ASP.NET!這個詞代表者一個單詞Fat!因為他總是捆綁着太多的太多的類,太多太多的各種功能!你也許會用到,如果你反編譯或閱讀他們開源的源碼,你會不會猶如在大海中找不到方向?不管是Web form 還是MVC。
QMVC顧名思義!Q=Quick!他崇拜靈活,簡單,快捷!如果你喜歡這些特點,哪么繼續閱讀吧,我將給你介紹一個全新的.NET MVC框架,他的名字叫做QMVC.
什么是QMVC
QMVC是指高性能mvc框架,Q是Quick的縮寫,MVC分別為Model、Controller、View的縮寫。QMVC使用C#程序語言開發,采用Microsoft .NET framework 4.5類庫,是用於B/S結構項目開發。QMVC項目的作者吾修師傅是一個名中國佛教信徒,他曾說,度善緣,行善事,宣揚佛法的宗旨,所以這個項目是免費開源的。
和標准的MVC一樣,QMVC采用了控制器、模型和視圖組成,控制器用於處理程序邏輯,比如寫入數據庫、上傳文件等業務處理,控制器加載數據后,將數據封裝成模型類傳給視圖,視圖通過模型中的數據顯示頁面內容。這樣做程序的思路更加清晰,美工可以更簡單的修改顯示層,因為程序代碼與模板獨立的。
如何下載QMVC
QMVC官網:http://www.wuxiu.org/下載源碼,解壓后,您可以看到三個項目,wuxiu.QMVC、wuxiu.QMVC.APPS.DEMO和wuxiu.QMVC.DEMO。其中wuxiu.QMVC項目是QMVC的核心類庫,用於支持MVC框架的運行。wuxiu.QMVC.DEMO為QMVC的示例項目,里面演示了QMVC的基本功能。wuxiu.QMVC.APPS.DEMO項目為演示QMVC APP示例代碼。
QMVC源碼
首先介紹命名空間,所有命名空間以wuxiu.QMVC開頭,其中wuxiu是中文作者姓名的拼音。其中wuxiu.QMVC.APPS命名空間下存放了所有相關QMVC 應用相關類庫支持者,其中類大多繼承於wuxiu.QMVC中的基類實現。tbz.QMVC.Router命名空間主要存放了QMVC對URL路由功能相關的代碼,用於處理Url地址的分析功能。wuxiu.QMVC.APPS.Router命名空間用於處理QMVC APP模式下的url 路由功能。
開始創建一個QMVC項目
1、打開Visual studio,新建一個基於.NET framework4.5的ASP.NET空白項目,項目名稱為“myqmvc”,如圖:

2、添加引用tbz.QMVC.dll,下載地址:(http://www.wuxiu.org/downloads.html),版本tbz.qmvc.1.0,如圖:

3、新建Global.asax文件,並在Application_Start和Application_BeginRequest事件中增加代碼:
protected void Application_Start(object sender, EventArgs e) { RouterManager.RegisterDefaultRouter(this.GetType()); } protected void Application_BeginRequest(object sender, EventArgs e) { wuxiu.QMVC.QMVCCore.page_BeginRequest(new HttpContextWrapper(this.Context)); }
4、在“解決方案資源管理器”中創建文件夾“Controllers、Models、DefaultViews”,並在DefaultViews創建文件夾Home,如圖:

說明:DefaultViews中的Default為默認視圖,用戶還可以創建BlueViews、RedViews等不同主題的主題,可以靈活通過qmvc提供的主題功能實現。DefaultViews中的Home對着了Controllers中的HomeController,這件文件夾用於存放HomeController中的視圖。
5、打開項目跟目錄中“web.config”文件,添加system.webServer節點下配置項:
<modules runAllManagedModulesForAllRequests="true"/>
說明:這表示告訴iis將所有請求交給模塊程序,這里意思是將所有請求交給asp.net先處理。
然后將system.web節點下compilation節點中增加內容:
<assemblies> <add assembly="System.Web.WebPages.Razor2, Version=9.0.0.1, Culture=neutral, PublicKeyToken=14679ed9c77dd5f5" /> <add assembly="System.Web.WebPages2, Version=9.0.0.1, Culture=neutral, PublicKeyToken=14679ed9c77dd5f5" /> <add assembly="System.Web.Razor2, Version=9.0.0.1, Culture=neutral, PublicKeyToken=14679ed9c77dd5f5" /> </assemblies> <buildProviders> <remove extension=".cshtml"/> <add extension=".cshtml" type="System.Web.WebPages.Razor.RazorBuildProvider, System.Web.WebPages.Razor2"/> </buildProviders> </compilation>
6、在DefaultViews目錄下新建web.config文件,在Configuration節點下添加以下代碼:
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor2"> <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor2" requirePermission="false" /> <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor2" requirePermission="false" /> </sectionGroup> </configSections> <system.web.webPages.razor> <pages pageBaseType="wuxiu.QMVC.MVCRzorPageBase"> <namespaces> <add namespace="wuxiu.QMVC" /> </namespaces> </pages> </system.web.webPages.razor>
說明,這代碼碼告訴asp.net編譯器Razor模板引擎交給qmvc去編譯,配置不當將會引起Razor引擎瀏覽時出錯。
7、到這里,一個QMVC的項目框架就搭建完成了,后面實現一個簡單的QMVC程序。在Models目錄下新建下個類文件“Home_Index.cs”,代碼如下:
using System; namespace myqmvc.Models { public class Home_IndexModel { public string MSG { get; set; } } }
Contrllers目錄下創建一個ComeController.cs的類文件(注,必須以Controller結尾),代碼如下:
using System; using System.Web; using wuxiu.QMVC; namespace myqmvc.Controllers { public class HomeController:ControllerBase { public ViewResult Index() { Models.Home_IndexModel model = new Models.Home_IndexModel(); model.MSG = "hello world!"; return View(model); } } }
8、在DefaultViews\Home中新建下個index.cshtml的視圖,如圖:

代碼如下:
@{myqmvc.Models.Home_IndexModel model = Model;} <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>QMVC web page</title> </head> <body> <h1>QMVC is runing!</h1> <div>msg:@model.MSG</div> </body> </html>
9、關閉index.cshtml,按F5運行,看下效果吧!
尊重原創,轉載請注明出處 ^_^
