輕量級 .NET MVC---QMVC

來源:互聯網
上載者:User

標籤:mvc   .net   qmvc   

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運行,看下效果吧!

尊重原創,轉載請註明出處 ^_^



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.