天天看點

22、ASP.NET MVC入門到精通——搭建項目架構

本系列目錄:ASP.NET MVC4入門到精通系列目錄彙總

前面的章節,說了ASP.NET MVC項目中常用的一些技術和知識點,更多的是理論上面的東西,接下來,我将通過一個簡單的OA項目來應用我們之前涉及到的一些技術,為了兼顧初學者,是以我盡量把操作步驟說得足夠詳細。(本來想用VS2015來示範MVC5開發的,無奈家裡的筆記本是11年2月份的老爺機了,一直未曾舍得換,因為配置的緣故,筆記本不堪負重,難以安裝最新版本的開發工具,隻裝了VS2012,當然,還有一個原因就是現在公司也是使用VS2012和MVC4。)

開發環境:win7 64bit、VS2012、sqlserver2008

使用架構:asp.net mvc4 、EF5、spring.net 、easyUI1.4x

1、建立空白解決方案

22、ASP.NET MVC入門到精通——搭建項目架構

2、建立解決方案檔案夾

建立解決方案檔案夾可以分類打包一些項目,讓整個項目變得更清晰。

22、ASP.NET MVC入門到精通——搭建項目架構

Common:基礎架構、包含一些通用的元件,以及IOC容器

Repository:資料倉儲

Service:服務層(業務邏輯和API接口)

UI:界面(MVC項目)

3、建立MVC項目

右鍵點選UI檔案夾,建立項目

22、ASP.NET MVC入門到精通——搭建項目架構
22、ASP.NET MVC入門到精通——搭建項目架構
為了把控制器單獨作為一個項目,這裡我們删除Controller檔案夾
22、ASP.NET MVC入門到精通——搭建項目架構
4、建立一個類庫,來作為UI的業務邏輯層,還是建在UI目錄下面
22、ASP.NET MVC入門到精通——搭建項目架構

現在我突然想改項目的名稱,把OA改為Web,這個時候,先在解決方案中直接重命名項目名稱,然後移除此項目,再去解決方案目錄下面找到該項目對應的檔案夾OA,将檔案夾名稱改為OA,最後重新添加項目的引用,就可以了,OA.Logic改為Web.Logic也采用同樣的方式。

5、依次建立好其它項目,除了Web項目外,其它的均為類庫項目,最終如下圖:

22、ASP.NET MVC入門到精通——搭建項目架構

Web.Logic就相當于獨立的Controller項目

建立資料庫,請先下載下傳sql腳本(下載下傳位址:http://pan.baidu.com/s/1OLxQA),然後在sqlserver上面運作。此sql腳本是從網上下載下傳的,是一個OA的資料庫。

6、在Model項目中,建立實體資料模型

22、ASP.NET MVC入門到精通——搭建項目架構
22、ASP.NET MVC入門到精通——搭建項目架構
22、ASP.NET MVC入門到精通——搭建項目架構
22、ASP.NET MVC入門到精通——搭建項目架構
22、ASP.NET MVC入門到精通——搭建項目架構

7、修改配置檔案

由于Web項目中會用到全局的配置,是以把Model項目中的App.config中的配置複制到Web項目中的Web.config中

22、ASP.NET MVC入門到精通——搭建項目架構
22、ASP.NET MVC入門到精通——搭建項目架構

8、添加項目之間的引用

Model

IDAL-->Model

DAL-->IDAL、Model

IBLL-->Model

BLL-->IBLL、IDAL、Model、DI

Web.Logic-->IBLL、Model、DI

Web-->Web.Logic、Model

 右鍵單擊解決方案——項目依賴項,可以檢視項目之間的引用

22、ASP.NET MVC入門到精通——搭建項目架構

9、建立控制器

既然Web.Logic類庫充當了獨立的控制器層,那麼先要添加System.Web.Mvc和System.Web的引用,從擴充裡面選擇的dll,是在C槽mvc的安裝目錄下面的dll,當然,你也可以點選浏覽,指定你需要的dll,但是要注意版本。

22、ASP.NET MVC入門到精通——搭建項目架構

我們來建立一個Home控制器類,根據約定大于配置原則,我們命名為HomeController

代碼如下:

using System.Web;
using System.Web.Mvc; 

namespace OA.Logic
{
   public class HomeController:Controller
    {
       public ActionResult Index()
       {
           return View();
       }
    }
}      

10、在Web-項目中建立視圖

在Views中建立一個和控制器同名的檔案夾Home,然後添加一個Index視圖

22、ASP.NET MVC入門到精通——搭建項目架構

Index視圖代碼:

@{
    ViewBag.Title = "Index";
}
<h2>Hello world</h2>      

将Web項目設定為啟動項,Build解決方案,然後我們運作看下效果

22、ASP.NET MVC入門到精通——搭建項目架構

可能有些朋友會感覺奇怪,我Web項目中都沒有任何控制器類,為什麼我一起動項目就能自動跳轉到我們剛才建立的Index視圖呢?

首先,我們Web項目中的預設路由是   defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }

而當Web啟動時,路由引擎會自動到Web項目中的bin目錄下面查找所有dll中繼承Controller的類,然後一一進行路由比對。

由于Web項目引用了OA.Logic項目,是以bin目錄下面存在OA.Logic.dll。

為了優化路由比對,我們還可以指定命名空間,這樣的話,就隻會在指定的命名空間下面去比對了,不需要周遊bin目錄下面所有dll下面的是以類一個一個去比對。

public class RouteConfig
    {
        public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");


            routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
                namespaces: new string[1] { "Web.Logic" } //指定Controller所在命名空間
            );
        }      

 一下子就零點了,先洗洗睡了,最近深圳真冷,555~ 未完,待續....

部落格位址: http://www.cnblogs.com/jiekzou/
部落格版權:

本文以學習、研究和分享為主,歡迎轉載,但必須在文章頁面明顯位置給出原文連接配接。

如果文中有不妥或者錯誤的地方還望高手的你指出,以免誤人子弟。如果覺得本文對你有所幫助不如【推薦】一下!如果你有更好的建議,不如留言一起讨論,共同進步!

再次感謝您耐心的讀完本篇文章。

其它:

.net-QQ群4:612347965

java-QQ群:805741535

H5-QQ群:773766020

我的拙作《ASP.NET MVC企業級實戰》《H5+移動應用實戰開發》

《Vue.js 2.x實踐指南》

《JavaScript實用教程 》

《Node+MongoDB+React 項目實戰開發》

已經出版,希望大家多多支援!