日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

ASP.NET Core 2.0 MVC项目实战

發(fā)布時間:2023/12/4 asp.net 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ASP.NET Core 2.0 MVC项目实战 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

?一、前言

????????畢業(yè)后入職現(xiàn)在的公司快有一個月了,公司主要的產(chǎn)品用的是C/S架構(gòu),再加上自己現(xiàn)在還在學習維護很老的delphi項目,還是有很多不情愿的。之前實習時主要是做.NET的B/S架構(gòu)的項目,主要還是用的那種傳統(tǒng)的開發(fā)模式,只有一個項目用到了Web API,自己負責后端的接口功能實現(xiàn)。既然現(xiàn)在沒辦法改變現(xiàn)狀,那就先改變自己吧。定了個計劃,下班后慢慢的開始學習ASP.NET Core Web API和Vue,準備從前端到后端自己寫一個小項目玩玩,畢竟代碼這個東西,時間長了是會忘的。
????????嗯,有點扯遠了。這個MVC項目是我的畢業(yè)設(shè)計,雖然寫的比較爛,而且當時為了趕緊寫完,代碼的冗余程度有點高,但還是希望能給一些準備入門ASP.NET Core MVC的童鞋提供些借鑒吧。代碼我放到Github上了,源碼地址https://github.com/Lanesra712/Danvic.PSU,歡迎大神們拍磚,指出不足處。

?二、項目介紹

? ? ? ? 畢業(yè)論文的課題是一個大學生的一個報名系統(tǒng),主要是為了完成大學生報名過程中的一些數(shù)據(jù)維護,當然最后因為實在來不及了,好多都沒做。。。項目主要使用到的相關(guān)技術(shù)如下所示:

  • 項目框架:ASP.NET Core 2.0 MVC

  • ORM:Entity Framework Core(使用Code First)

  • 數(shù)據(jù)庫引擎:MySQL SERVER 5.7

  • 權(quán)限驗證:基于策略的權(quán)限驗證(Policy-Based Authorization)

  • 前端框架:AdminLte(一個基于Bootstrap的開源前端UI)

  • 表格控件:Jquery Datatables

  • 數(shù)據(jù)可視化組件:Echarts

  • 日志記錄:nlog

?三、設(shè)計與實現(xiàn)介紹

????????項目架構(gòu)采用的是多層架構(gòu),通過拆分不同的功能領(lǐng)域,實現(xiàn)各個功能間的相對獨立,項目在VS中搭建完成后如下圖所示。

????????01_Entity:實體層,包含PSU.Entity這一個系統(tǒng)組件,用于存儲數(shù)據(jù)庫中表所對應(yīng)的C#對象實體。
????????02_Infrastructure:基礎(chǔ)架構(gòu)層,包含PSU.EFCore、PSU.Utility兩個系統(tǒng)組件。PSU.EFCore類庫通過引用Entity Framework Core來完成對于數(shù)據(jù)庫的操作。PSU.Utility類庫中包含系統(tǒng)開發(fā)過程中可能用到的幫助類文件。
????????03_Logic:邏輯層,包含PSU.Domain、PSU.Repository兩個系統(tǒng)組件。PSU.Domain用于繼承每個領(lǐng)域的接口類庫(PSU.IService),實現(xiàn)領(lǐng)域接口中的功能。PSU.Repository用來實現(xiàn)PSU.Domain類庫中所包含的對于數(shù)據(jù)庫的操作。
????????04_Rule:規(guī)則層,包含PSU.IService、PSU.Model這兩個系統(tǒng)組件。PSU.IService為系統(tǒng)領(lǐng)域功能接口類庫,PSU.Model為視圖所對應(yīng)的數(shù)據(jù)充血模型,對應(yīng)MVC模式中的實體Model。
????????Controller.PSU:控制器層,.NET Core類庫,用來存放MVC模式中的各種控制器文件。
????????PSU.Site:表現(xiàn)層,ASP.NET Core MVC項目,項目主程序。

? ? ? ? 系統(tǒng)權(quán)限驗證設(shè)計:
????????整個系統(tǒng)分為三種角色,分別為管理員、教職工、學生用戶,通過使用Area搭建每個角色的頁面,通過在Controller上添加Area特性,指定當前Controller屬于的角色。在創(chuàng)建用戶時,會指定用戶的角色字段,當用戶登錄成功后,會根據(jù)用戶角色進行Claim的創(chuàng)建,通過自定義的AuthorizztionHandler來實現(xiàn)對于當前系統(tǒng)的角色權(quán)限控制。
????????當用戶登錄成功后,會將當前的用戶信息賦值給一個靜態(tài)類(使用Session進行存儲),對于判斷用戶是否登錄,則是通過自定義一個控制器的基類,重寫OnActionExecuting方法來實現(xiàn)對于用戶是否登錄的判斷,實現(xiàn)代碼如下。

? ? ? ?權(quán)限驗證代碼如下截圖所示:
????????控制器示例圖:


????????基于策略的權(quán)限驗證實現(xiàn):


????????自定義驗證Claim:

?四、總結(jié)

? ? ? ? 接下來我要開始學習ASP.NET Core Web API和Vue了,希望可以保持住,能夠不間斷的在博客上分享自己的學習經(jīng)歷與見解。當學的差不多的時候,爭取把這個項目精簡,重構(gòu),讓自己在成為更好的自己的路途上前進一大步。
????????因為也是第一次使用ASP.NET Core MVC進行項目的開發(fā),所以遇到了一些自己沒辦法解決的東西,很感謝博客園里的各位大佬以及一些幫助我的大佬,正是因為有這么多樂于分享的人在,才能更好的推動.NET Core在國內(nèi)的生態(tài)發(fā)展,在寫畢業(yè)設(shè)計的過程中,參考了很多位博主的博文,真的是很感謝,致敬。

  ?還是要推廣下自己的個人博客啊,點擊這里,去看看我的博客啊~~~

????????項目實現(xiàn)圖如下。

原文地址https://www.cnblogs.com/danvic712/p/9349583.html

.NET社區(qū)新聞,深度好文,歡迎訪問公眾號文章匯總 http://www.csharpkit.com

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

總結(jié)

以上是生活随笔為你收集整理的ASP.NET Core 2.0 MVC项目实战的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。