1. 程式人生 > >【無私分享:從入門到精通ASP.NET MVC】從0開始,一起搭框架、做專案 (14)附資料庫、釋出專案

【無私分享:從入門到精通ASP.NET MVC】從0開始,一起搭框架、做專案 (14)附資料庫、釋出專案

索引

簡述

總結一

整個系列其實還包括專案管理、考勤簽到、郵件、內部聊天等等,這個東西是做不完的,如果繼續還有新聞系統、靜態生成等等等等....

其中,靜態頁生成在我的部落格中可以找到,三種方式:

第一種 就是類似網上的很多CMS一樣 採用標籤替換,但這種方式是不推薦的,特別是在我們.Net中,標籤解析是十分龐大和困難的;

第二種 是使用RazorEngine 解析我們的cshtml頁面,這種使用十分簡單,直接讀取地址生成html就行了;

第三種 也是我使用的,解析html模板(Razor語法的html模板)然後通過RazorEngine 解析,這個是十分簡便的,RazorEngine 會直接識別html中的語法。

。。。。我想,很多朋友已經等不急了。。。並且,後面的什麼專案管理啊、郵件啊之類的 都是業務邏輯,不斷的重複我們的東西,使用到的基本都講過了,所以也是沒有很大的必要性。

所以,我們分為兩章來總結一下這個系列:

第一章總結完,我會分享整個資料庫和已釋出之後的程式供大家測試和抽取UI

第二章總結完 我會把程式原始碼分享給大家。

為什麼第一章不分享原始碼呢?因為我還沒有整理好,比如倉儲類實際上沒有UnitOfWork,對效能是十分不好的,我要改,很多朋友無數次的要完整的東西,所以先把釋出之後的程式和資料庫給大家,就當開胃菜,整理好之後全部分享。分享之後的原始碼僅供大家參考,請不要直接拿來使用,因為很多東西比如DDD的設計、UnitOfWork 都是沒有完全實現的,大家可以關注

【無私分享:ASP.NET CORE 專案實戰】目錄索引 這個系列,在這個系列中我們會重構我們的思想,並且修改基礎操作類(重新開發,沒有在本系列中沒有看懂倉儲類庫Repository的可以重點看下),實現對架構和效能的追求。

好了,廢話不多說。

首先呢,我們來講下依賴注入(DI):

我們重點看下 Spring配置指向,這裡有算是兩類指向,一類是webpage的指向(我們的應用程式層webpage),一類是Service的指向(我們的應用服務介面層)

我們建了很多xml檔案,例如 ComService.xml、MailService.xml ,建立這些xml的目的其實跟我們建資料夾是一樣的,就是為了分類管理,建一個也是可以的,並不是一定要建這麼多。

包括webpage\config下的xml 這些作為Spring配置的xml 都應該修改為“嵌入的資源 ”

我們來分別講下webpage/config 和 service\config 裡面的xml,這裡用通俗容易理解的方式講下,希望大家不要扣字。

我們先來看下service\config 裡面的xml,我們以Service.xml為例:

我們看下格式:

<object id="Service.Permission" type="Service.ServiceImp.PermissionManage,Service" singleton="false"></object>

<object id="定義一個唯一的名字" type="介面實現類,Service" singleton="false"></object>

名字自己定義一個就可以,沒有什麼特別的規範,只是要唯一,我們在webpage\config 裡要用到這個名字,兩者保持一致便可。

介面實現類就是名稱空間+實現類的類名,以上面的(Service.ServiceImp.PermissionManage)為例,我們看下我們這個實現類:

這樣,Service\config 下面的xml如何配置,大家知道如何使用了吧。那我們再來看下webpage\config 裡面的xml配置,我們以Controllers.xml為例:

我們看下格式:

<!--登入控制器-->
<object type="WebPage.Areas.SysManage.Controllers.AccountController,WebPage" singleton="false">
<property name="UserManage" ref="Service.User"/>
<property name="UserOnlineManage" ref="Service.UserOnlineManage"/>
</object>

<!--登入控制器-->
<object type="控制器,WebPage" singleton="false">
<property name="宣告的容器名稱" ref="在配置Service\config時定義的id"/>
<property name="宣告的容器名稱" ref="在配置Service\config時定義的id"/>
</object>

首先,我們新增一個object標籤 type 我們的控制器

<object type="WebPage.Areas.SysManage.Controllers.AccountController,WebPage" singleton="false">
</object>

然後,我們這裡需要用到兩個介面:一個是使用者管理,一個是使用者線上狀態

那麼我們新增兩個 property標籤:

<property name="UserManage" ref="Service.User"/>
<property name="UserOnlineManage" ref="Service.UserOnlineManage"/>

注意:這裡property 的屬性 name 的值 要跟控制器裡宣告的容器的名稱一致

這樣,就實現了。然後,有朋友問,一定要這麼複雜的配置麼?其實,service\config裡配置完,在webpage\config裡不配置也是可以的,那麼不配置Controllers.xml 如何呼叫呢?細心的朋友可能已經發現了,我們在BaseCotroller控制器裡就沒有使用xml配置,在webpages\Models\CommonHelper.cs中也沒有使用xml配置:

對於Spring的使用,詳細的講解和專業的術語如何表述,請大家移步度娘。

我們再來看下大家也是有很多問題的UserManage實現類:

//使用者登入驗證

public Domain.SYS_USER UserLogin(string useraccount, string password) 這個應該沒什麼可講的,大家都一目瞭然。

//是否為超級管理員

 public bool IsAdmin(int userId) 這個就一點說明一下 return roles.ToList().Any(item => item.ID == ClsDic.DicRole["超級管理員"])  這裡是用到了字典(是不是比較雞肋),我們在應用類庫Common下的Enums.cs中有這麼一個

也是就判斷我們當前登入使用者的ID是否等於我們定義的超級管理員的ID。

然後,我們再來看下 public Account GetAccountByCookie() 和 public bool Remove(int userId) 這兩個是一樣的,這兩個都呼叫了外部介面,我們看下我們這個類的開始部分

大家是不是在使用的時候會出現這麼一個錯誤:未將物件引用到例項?

包括在控制中,我們呼叫介面的時候,出現這個錯誤,大部分的原因就是:沒有注入。

控制器的注入我們上面剛剛講過了,我們看下介面呼叫外部介面是如何注入的。service\config\service.xml

大家發現了吧 我們在object標籤下 也添加了property標籤。上面我們講過了控制器如何不使用xml實現注入,這裡大家是否也可以嘗試一下。

好了,已釋出的專案和資料庫:百度網盤

網盤已失效,再發第二次,希望大家抓緊:百度網盤

額。。。上面都失效了,還有這麼多要的,最後發一次網盤:百度網盤

---- 統一回復 提取碼:z2qn

說明:大家可以直接放到IIS裡架起來,資料庫在App_Data\DataBase 裡面。

資料庫連線需要修改兩個地方:① web.config 裡面的資料庫連線   ② log4net.config 裡面的資料庫連線 (我們的日誌不是存在txt裡是存到資料庫裡的)

還有,這個是單點登入,如果不需要,請修改config\website.config 找到 <add key="IsSingleLogin" value="True"/> 改為False

不好意思,忘了說登入賬號和密碼了,admins   Yuan19880212

相關推薦

無私分享入門精通ASP.NET MVC0開始一起框架專案 14資料庫釋出專案

索引 簡述 總結一 整個系列其實還包括專案管理、考勤簽到、郵件、內部聊天等等,這個東西是做不完的,如果繼續還有新聞系統、靜態生成等等等等.... 其中,靜態頁生成在我的部落格中可以找到,三種方式: 第一種 就是類似網上的很多CMS一樣 採用標籤替換,但這種方式是不推薦的,特別是在我們.Net中,

無私分享入門精通ASP.NET MVC0開始一起框架專案7.2 模組管理模組的新增修改刪除

索引 簡述 今天我們來做模組管理的 新增、修改、刪除 專案準備 我們用的工具是:VS 2013 + SqlServer 2012 + IIS7.5 希望大家對ASP.NET MVC有一個初步的理解,理論性的東西我們不做過多解釋,有些地方不理解也沒關係,會用就行了,用的多了,用的久了,自然就理解了

無私分享入門精通ASP.NET MVC0開始一起框架專案5.3 登入功能的實現豐富資料表建立關聯

1 USE [wkmvc_db] 2 GO 3 /****** Object: Table [dbo].[SYS_CODE] Script Date: 2016/5/17 9:30:01 ******/ 4 SET ANSI_NULLS ON 5 GO 6 SET

無私分享入門精通ASP.NET MVC0開始一起框架專案 10部門管理崗位管理和員工管理

1 USE [wkmvc_db] 2 GO 3 /****** Object: Table [dbo].[SYS_POST_USER] Script Date: 2016/6/20 16:28:44 ******/ 4 SET ANSI_NULLS ON 5 GO

無私分享入門精通ASP.NET MVC0開始一起框架專案 12程式與資料備份

索引 簡述 程式檔案備份與資料備份 專案準備 我們用的工具是:VS 2013 + SqlServer 2012 + IIS7.5 希望大家對ASP.NET MVC有一個初步的理解,理論性的東西我們不做過多解釋,有些地方不理解也沒關係,會用就行了,用的多了,用的久了,自然就理解了。 專案開始

無私分享入門精通ASP.NET MVC0開始一起框架專案5.4 登入功能的實現建立與登入使用者相關的介面和實現類

索引 簡述 今天我們建立幾個與登入使用者相關的資料表的介面和實現類 專案準備 我們用的工具是:VS 2013 + SqlServer 2012 + IIS7.5 希望大家對ASP.NET MVC有一個初步的理解,理論性的東西我們不做過多解釋,有些地方不理解也沒關係,會用就行了,用的多了,用的久了

無私分享入門精通ASP.NET MVC0開始一起框架專案 16原始碼分享登入功能以及UI資料庫倉儲原始碼分享

1 using Common; 2 using Service.IService; 3 using System; 4 using System.Collections.Generic; 5 using System.Linq; 6 using System.Web;

無私分享入門精通ASP.NET MVC0開始一起框架專案5.5 登入功能的實現完善登入功能

索引 簡述 今天我們來完善我們的登入功能 專案準備 我們用的工具是:VS 2013 + SqlServer 2012 + IIS7.5 希望大家對ASP.NET MVC有一個初步的理解,理論性的東西我們不做過多解釋,有些地方不理解也沒關係,會用就行了,用的多了,用的久了,自然就理解了。 專案開

無私分享入門精通ASP.NET MVC0開始一起框架專案 登入介面前端樣式和特效

很多朋友要UI,我也說過,後臺的UI就是BootStrap,網上很多的。也有朋友喜歡LZ的登入,LZ的登入介面也是網上找的,然後稍微做了下修改。 不過既然大家喜歡,那麼LZ就分享給大家。 1、登入頁面效果 2、登入頁面程式碼 1 @{ 2 Layout = null; 3

無私分享入門精通ASP.NET MVC0開始一起框架專案5.2 登入功能的實現介面注入log4net的使用

索引 簡述 前兩天事情比較多,耽誤更新了,希望大家多多包涵,今天我們繼續做我們的登入功能 專案準備 我們用的工具是:VS 2013 + SqlServer 2012 + IIS7.5 希望大家對ASP.NET MVC有一個初步的理解,理論性的東西我們不做過多解釋,有些地方不理解也沒關係,會用就行

無私分享入門精通ASP.NET MVC0開始一起框架專案5.1 登入功能的實現開始接觸Spring IOCDI

索引 簡述 今天我們做登入,今天的東西比較多,用到了Spring的IOC和DI、介面的使用、驗證等,希望大家多多討論 專案準備 我們用的工具是:VS 2013 + SqlServer 2012 + IIS7.5 希望大家對ASP.NET MVC有一個初步的理解,理論性的東西我們不做過多解釋,有些

無私分享入門精通ASP.NET MVC0開始一起框架專案 15原始碼分享修改倉儲IRepositoryRepositoryBase

1 #region 獲取多條資料操作 2 3 /// <summary> 4 /// 返回IQueryable集合,延時載入資料 5 /// </summary> 6 /// &l

無私分享入門精通ASP.NET MVC0開始一起框架專案7.1 模組管理驗證許可權展示模組列表

索引 簡述 今天我們來做模組管理的 展示 模組列表 專案準備 我們用的工具是:VS 2013 + SqlServer 2012 + IIS7.5 希望大家對ASP.NET MVC有一個初步的理解,理論性的東西我們不做過多解釋,有些地方不理解也沒關係,會用就行了,用的多了,用的久了,自然就理解了。

無私分享入門精通ASP.NET MVC0開始一起框架專案9 角色管理分配許可權

索引 簡述 今天我們來做角色的管理 和 角色許可權分配 專案準備 我們用的工具是:VS 2013 + SqlServer 2012 + IIS7.5 希望大家對ASP.NET MVC有一個初步的理解,理論性的東西我們不做過多解釋,有些地方不理解也沒關係,會用就行了,用的多了,用的久了,自然就理解

無私分享入門精通ASP.NET MVC0開始一起框架專案1搭建MVC環境 註冊區域

索引 簡述 從今天開始,我們從0開始搭建一個框架,並且完成一個任務管理系統的專案。這並不是什麼大專案,只是對於不熟悉MVC以及不熟悉面向介面開發和依賴注入的朋友們有所啟發,因為是從0開始,所以有些地方比較囉嗦,希望大家理解! 希望新手朋友們拋棄“拿來主義”,動手跟著一步一步的做,當做完這個框架和專案

無私分享入門精通ASP.NET MVC0開始一起框架專案6 控制器基類 主要登入使用者許可權認證日誌記錄等工作

索引 簡述 今天我們來寫一個控制器基類 主要做登入使用者、許可權認證、日誌記錄等工作 專案準備 我們用的工具是:VS 2013 + SqlServer 2012 + IIS7.5 希望大家對ASP.NET MVC有一個初步的理解,理論性的東西我們不做過多解釋,有些地方不理解也沒關係,會用就行了,

無私分享入門精通ASP.NET MVC0開始一起框架專案8 許可權管理自定義許可權擴充套件許可權

索引 簡述 今天我們來做許可權的管理,這篇比較多 希望新手朋友慢慢消化 專案準備 我們用的工具是:VS 2013 + SqlServer 2012 + IIS7.5 希望大家對ASP.NET MVC有一個初步的理解,理論性的東西我們不做過多解釋,有些地方不理解也沒關係,會用就行了,用的多了,用的

無私分享入門精通ASP.NET MVC0開始一起框架專案 13客戶管理

索引 簡述 簡單的客戶管理 專案準備 我們用的工具是:VS 2013 + SqlServer 2012 + IIS7.5 希望大家對ASP.NET MVC有一個初步的理解,理論性的東西我們不做過多解釋,有些地方不理解也沒關係,會用就行了,用的多了,用的久了,自然就理解了。 專案開始 一、資料

無私分享入門精通ASP.NET MVC0開始一起框架專案3公共基礎資料操作類 RepositoryBase

索引 簡述 今天我們寫一個基礎資料的操作類,如果裡面有大家不理解的地方,可採取兩種方式,第一:提出來,第二:會用就行。這個類呢我一般不去修改它,因為基礎操作類,大家也可以直接拷貝到自己的專案中。 專案準備 我們用的工具是:VS 2013 + SqlServer 2012 + IIS7.5 希望大

無私分享入門精通ASP.NET MVC0開始一起框架專案 11檔案管理

索引 簡述 檔案管理,這個比較雞肋 但是有些方法 大家可以參考下 專案準備 我們用的工具是:VS 2013 + SqlServer 2012 + IIS7.5 希望大家對ASP.NET MVC有一個初步的理解,理論性的東西我們不做過多解釋,有些地方不理解也沒關係,會用就行了,用的多了,用的久了,