開發環境及專案框架介紹
本系列文件將向大家介紹我們 ASP.NET MVC 專案框架,並一步步指導大家如何建立列表、新增、修改頁面和實現帶有查詢功能的列表頁
環境準備
我們的專案採用 .NET 平臺的技術進行開發,需要事先安裝好開發環境。
- IDE:採用 Visual Studio 2015 或更高版本進行開發,在安裝 Visual Studio 時,所需的一部分環境會自動安裝上,比如 .NET Framework
- Database:專案最低要求 SQL Server 2008 R2
- 瀏覽器:進行 Web 站點的開發瀏覽器是必不可少的,本文件將使用 Google Chrome 瀏覽器
還原資料庫
除了各種軟體,我們還需要準備開發使用的資料庫,我們通過將資料庫備份檔案還原到本地即可,資料庫備份檔案提供在 \\shiji-server\share\db_backup
首先檢視備份檔案中都有哪些檔案
-- disk 後面是你下載到自己電腦上的備份檔案的路徑 restore filelistonly from disk = 'D:\backup\ecrs20160913.bak'
可以看到備份檔案中有三個檔案,分別是ECRS、ECRS01 和 ECRS_log,執行下面的 SQL 將這三個檔案還原到本地:
use master -- 此處的 ECRS_20170124 是還原後資料庫的名字 restore database ECRS_20170124 -- disk 之後仍然是下載到本地後的備份檔案的路徑from disk = 'D:\Data\ecrs20151218.bak' -- to 之後是還原後文件存放的路徑 with move 'ECRS' to 'D:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\ECRS.mdf', move 'ECRS01' to 'D:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\ECRS01.mdf', move 'ECRS_log' to 'D:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\ECRS_log.ldf', STATS = 10, REPLACE
執行後稍等片刻,在你本地就有了我們開發用的資料庫。
框架概覽
將 KunlunCCM 下載到本地後通過 Visual Studio 開啟 KunlunCCM.sln 解決方案檔案,可以看到下圖所示的結構
我們的專案可以分為三大部分:
- Libraries 類庫層
- Presentation 表現層
- Tests 單元測試
每個部分通過資料夾劃分,每個資料夾中又有一些專案。
類庫層
Libraries 目錄下存放了有關實體類定義、資料庫操作、業務邏輯操作等相關的所有類庫。
- Core 核心類層:這裡存放了與專案有關的最核心的類定義,包括快取、異常、實體類等等。我們操作資料庫時,需要將資料庫中的表,對映到類上,這些類稱為實體類,存放在 Core 專案的 Domain 資料夾下
- Data 資料訪問層:這裡存放了操作資料庫的類,以及實體類與資料庫表的對映規則,這些對映規則存放在 Mapping 資料夾下
- Services 業務邏輯層:顯而易見,這裡就是具體的業務邏輯的實現了
將資料庫中的表(關係),對映到我們建立的類(物件)上,這種技術稱之為物件關係對映,英文名稱叫做 ORM(Object Relation Mapping)。我們通過 Entity Framework(簡稱EF) 或者 Dapper 來實現這一功能,它們都是第三方類庫。Dapper 需要我們自己編寫 SQL 語句,而 Entity Framework 可以自動生成 SQL 語句。使用 Entity Framework 時,我們通過倉儲類Repository<T>
來簡化對資料庫的操作,倉儲類位於 Data 專案中。
本系列文章將採用 Entity Framework 進行資料庫操作。
表現層
- Web 檢視層:這就是我們的 ASP.NET MVC 專案,使用者看到的頁面來自於這裡
- Web.Framework Web 架構層:封裝了很多對專案有用的東西,例如我們網站首次啟動的邏輯程式碼、Web工作上下文物件(可以獲取當前登陸的使用者等資訊)、各種 MVC 過濾器等等。這個專案可以日後再深入瞭解
ASP.NET MVC 專案大家想必已經瞭解了,MVC 代表 Model-View-Controller 模式。在 ASP.NET MVC 中,我們在 View 裡編寫用於呈現的頁面,在 Controller 中編寫每個頁面對應的後臺程式碼,在 Model 中編寫類作為頁面資料的載體。
經過類庫層的介紹,我們知道 Service 專案有所有業務邏輯的實現,所以我們的 Controller 只需要去呼叫相應的 Service 方法即可,而不應該把業務邏輯寫在 Controller 中。這種思想,稱之為職責分離,控制器專注於為檢視準備資料,Service 則專注於業務邏輯。
單元測試
本系列文件中不涉及單元測試相關的內容。
第三方類庫
前面簡要的提到了 ORM 類庫 EF 和 Dapper,我們在專案中還引入了形形色色的第三方類庫,以及一些我們自己封裝的,可以簡化操作的類庫。這裡對第三方類庫進行一些介紹。
資料庫訪問:
前端展現:
依賴注入:
驗證:
型別對映:
- Auto Mapper 可以將一個類變成另一個類,注意這個並不是資料庫到實體類的對映
關於第三方類庫,可以先看一下官方提供的文件中的介紹,後面的專案中會詳細說明。
從下一節開始,我們就著手進行開發了,請拭目以待。