1. 程式人生 > >從零開始寫C# MVC框架之--- 專案結構

從零開始寫C# MVC框架之--- 專案結構

框架總分2個專案:Web開發專案、幫助類專案 (ZyCommon、Zy.Utilities)

     

1、ZyCommon,是Web開發專案結構。新建一個空解決方案,再建Data、Service、ZyWeb解決方案資料夾,把資料層、介面服務層、Web層區分開

      

    1.1、Data解決方案下----Zy.Xn.Model 資料模型專案,設計好System下 組織機構、選單、角色、角色選單、角色使用者、使用者實體類,Models是系統使用的一些DTO基類,比如ztree控制元件需要的一些實體欄位,角色選單DTO,BaseModel是一個基類,存放一個Id自動增長的欄位,供System下的多個實體引用

              

    1.2 、Data解決方案下----Zy.Xn.Entity 實體專案,用來管理實體上下文的,新增Entity Framework的引用,新增 Zy.Xn.Model  的引用,把實體類放到上下文類中,在App.config配置好連線資料庫,然後使用Code First建立表,以後每次更新資料庫表字段,只需要更新Model專案中的實體類,使用命令更新即可,初始時需要 Enable-Migrations ,啟用遷移後會在實體專案下生成 Migrations資料夾,存放每次遷移的記錄,至此Data層的功能大致是如此的

            命令:工具--NuGet包管理器--程式包管理器控制檯--預設專案選擇Zy.Xn.Entity 上下文專案

            新增遷移報告:add-migration 20160911 

            更新到資料庫:update-database

            遷移至指定版本(包括後退):Update-Database –TargetMigration: $InitialDatabase

            得到SQL指令碼(部署到伺服器時很有用) : Update-Database -Script -SourceMigration: 最開始版本號-TargetMigration: 結束版本號

             

   1.3、Service解決方案下 ---- Zy.Xn.IServices 服務介面層,面向介面程式設計,好處多多

   1.4、Service解決方案下 ---- Zy.Xn.Services 服務實現層

   1.5、Web專案,新建Areas,多個專案只要在Areas下建多個專案即可,後臺管理系統放在Admin資料夾下,系統所用的JS、CSS、Images等存放在Content資料夾下

          

   2、Zy.Utilities 所有幫助類、依賴注入、基類控制器等再此專案下實現

         

     2.1、Zy.Utility.Core專案提供所有的幫助類,如:異常類、日誌類、IOHelper、ImageHelper,PageModel(列表基類) 等等系統可能用到的幫助類,日誌類會專門開一篇文章講解,如何在專案配置Log4日誌,報錯後怎麼把錯誤資訊寫入日誌

     2.2、Zy.Utility.ServicesProvider專案是服務代理提供者,也就是 Autofac依賴注入的實現

     2.3、Zy.Utility.WebFramework專案提供控制器基類、介面服務幫助類、Bundles幫助類(讀取js、css配置節點)

         2.3.1、控制器基類,重寫異常捕獲方法並把錯誤資訊寫入日誌,獲取當前登入使用者,Session失效後重定向的控制器等功能,給Web專案使用

         2.3.2、bundles在web專案中的實現,新建一個admin.bundles檔案,使用它的好處是可以壓縮js、css,減少網路流量,當然,也可以在專案中App_Start--BundleConfig中配置,不過沒有自定義實現方便

相關推薦

開始C# MVC框架--- 專案結構

框架總分2個專案:Web開發專案、幫助類專案 (ZyCommon、Zy.Utilities)       1、ZyCommon,是Web開發專案結構。新建一個空解決方案,再建Data、Service、ZyWeb解決方案資料夾,把資料層、介面服務層、Web層區分開    

開始C# MVC框架--- 配置log4日誌

寫入 出錯 fill 文件 幫助 fontsize att 日誌處理 引用 在框架中配置日誌分2步,一個是在幫助項目Zy.Utilities--Zy.Utility.Core中新建log類,封裝寫入日誌方法,還需要在Zy.Utility.Core添加 log4net 的引用

開始C# MVC框架--- 用autofac ioc 容器實現依賴注入

本章查找了一篇對依賴注入解釋得非常不錯的文章為基礎,再加上自己的理解,不然還真不好用語言的方式表達清楚,引用下面這位仁兄的文章 依賴注入產生的背景:         隨著面向物件分析與設計的發展,一個良好的設計,核心原則之一就是將變化隔離,使得變化部分發生變化時,不變部

開始C# MVC框架--- 資料庫表設計

怎麼在專案中使用Code First?  1、設計好資料庫表實體類,欄位--繫結對應屬性(是否非空,長度限制等),繫結到上下文基類中  2、使用Migrations遷移報告,把表生成到資料庫中 拿專案中的使用者表做演示: 詳細操作如下, 1.1、在Zy.Xn.Model專

一步一步教你開始C語言連結串列---構建一個連結串列

為什麼要學習連結串列? 連結串列主要有以下幾大特性: 1、解決陣列無法儲存多種資料型別的問題。 2、解決陣列中,元素個數無法改變的限制(C99的變長陣列,C++也有變長陣列可以實現)。 3、陣列移動元素的過程中,要對元素進行大範圍的移動,很耗時間,效率也不高。

《架構探險——開始Java Web框架》 讀書筆記

由於囤書,近期終於把很早之前買的《架構探險——從零開始寫Java Web框架》讀完,記錄下筆記,把一些有意思並且需要鞏固的,拿出來分享給大家。 涉及內容:開發思路、IoC與DI、AOP、事務的4種隔離級別、框架推薦(Apache Shiro、Apache CX

《架構探險——開始Java Web框架》 試讀——感想

《架構探險——從零開始寫Java Web框架》 試讀感想          宣告:         本篇文章在iteye上發表的也是我本人的號。所以不存在未經作者允許非法轉載的事。為了證明,我擷取登

讀書雜談-《架構探險:開始Java Web框架

        愛買書,雖然讀書懶惰的很,但最近還是陸陸續續的買了五六本書的樣子,包括:核心技術、深入虛擬機器、併發程式設計等,這些書中我能讀的進去,且通俗易懂的當屬這本黃勇寫的《架構探險:從零開始寫Java Web框架》。         這本書的特點是大量的程式碼,通俗的

《架構探險—開始Java Web框架》讀後感

講真,該書利用一個小專案引導讀者從零開始手把手的搭建了一個Java Web框架,一個類Spring框架,重複造了輪子;但能幫助初學的讀者瞭解常用框架的底層原理。書中堆了很多程式碼,html程式碼也有,

[筆記]架構探險-開始JavaWeb框架-1. 搭建輕量級mvc框架

囉嗦一句: 看md語法寫的文章,注意檢視 上面 的目錄. 一般是很有節奏的導航. ヽ(ˋ▽ˊ)ノヽ(ˋ▽ˊ)ノ 終於到了不會的地步了,該書的前面兩章節都是從零開始講解怎麼使用 idea搭建專案,從servlet開始講解怎麼使用. (idea的使用目錄)

原始碼分析系列 | 開始MVC框架

1. 前言 前段時間在網上無意中上參與了一節騰訊課堂的公開課,裡面講到了一些分析思路,感覺挺有意思,也學習到了別人的一些講課技巧,正好自己也打算對過往知識網路做個整理回顧,計劃後面開展一系列原始碼分析教程,本章先從一個入門簡單的手寫MVC框架入門

開始C++IO流類庫(三):檔案的讀、二進位制檔案的讀、檔案隨機讀

#include <cassert>#include <iostream>#include <fstream>#include <string>using namespace std;struct Test {     int a;     int b; };i

[筆記]架構探險-開始JavaWeb框架-2.1. 使框架具有aop特性-aop框架載入與切面執行流程分析

囉嗦一句:本筆記只是自己在學習過程中的一些分析和理解,看的人不一定能看懂.如果有興趣還是去買這本書看.筆記就當是另外一種解說好了 在本章節中會學習到如下的技術: 如何理解並使用代理技術 如何使用Spring提供的AOP技術(忽略,太多知識) 如何使

開始JavaWeb框架(第二章節)

oca ext span logs http ioe 請求方法 servlet 類型 這一章太多了。。。好累,不想寫那麽細了,就做一點總結吧。 package org.smart4j.chapter2.controller; import java.io.IOExcep

[Golang] 開始Socket Server(1): Socket-Client框架

第一次跑到網際網路公司實習 。。感覺自己進步飛快啊~第一週剛寫了個HTTP伺服器用於微信公共號的點餐系統~ 第二週就直接開始一邊自學GO語言一邊寫用於Socket的伺服器了。。。 因為發現Golang這一塊資料挺少的,接下來我會在Blog裡把整個Server的Coding,還有遇到的坑都記錄

開始自己的PHP框架系列教程(二)[App.php]

porting col config exce tro efault fig 默認 clas 從這一個文件開始以後加載的均以類加載,請註意命名空間和所在文件的路徑 APP.php的這個類所在路徑:根目錄\framework\App.php 直接上代碼 namespace

C# 開始 SharpDx 應用 畫三角

在當前的畫面都是使用三角形,在開始就告訴大家如何畫三角,本文告訴大家如何用畫素著色器畫 本文是 SharpDX 系列部落格,更多部落格請點選SharpDX 系列 頂點 為了建立三角形,需要使用頂點。頂點就是在 3D 空間的點。通過頂點可以新增資料,很多

開始javaweb框架筆記9-細節完善與程式碼優化-完善控制器層

    在這一小節中,我們開始寫jsp頁面  開啟/WEB-INF/view/customer.jsp檔案,完成如下程式碼: <%-- Created by IntelliJ IDEA. User: jack Date: 2015/12/5 Time:

開始linux字元裝置驅動程式(一)(基於友善臂tiny4412開發板)

從這篇博文開始,我將開始手把手教會大家寫linux裝置驅動程式這是開篇,如何來寫第一個字元裝置驅動程式。首先,寫一個最簡單的字元裝置驅動程式需要什麼?或者說我們需要了解什麼?1、每一個字元裝置至少需要有一個裝置號2、裝置號 = 主裝置號 + 次裝置號3、同一類裝置的主裝置號一

開始C++虛擬函式與多型(一):虛擬函式表指標、虛解構函式、object slicing與虛擬函式、C++物件模型圖

#include <iostream>using namespace std;class CObject {public:     virtual void Serialize()     {         cout << "CObject::Serialize ..." <&