標籤:

ABP+AdminLTE+Bootstrap Table許可權管理系統

初衷

學而時習之,不亦說乎,溫顧溫知新,可以為師矣.

看懂遠不如動手去做,動手做才能發現很多自己不懂的問題,不斷的反思和總結,「樂於分享是一種境界的突破」。" 分享是很有意思,也是可以鍛煉人的。 分享意味著自我的不斷凈化提升,不給自己後退的餘地。為什麼這麼說呢?因為:一,分享的就是你所知道的,你所知道的是你投資時間和精力學來的,分享意味著你做到無私地把它分享出更高的價值,這是很偉大的。二,分享意味著你要不斷去追尋新知,這很重要。只有用心生活,用心體會,才能不斷有新的東西分享。這就是善於借用外力來完善自己的表現。。三,我們在分享的過程中,學會進一步判斷,進一步深入思考,從而進一步提升思緒。這很重要,自己要了解自己,這是一個不斷學習的過程。"

簡介

這也是算是一種學習的方法和態度吧,經常去學習和總結,在博客園看了很多大神的文章,寫下一點對於ABP(ABP是「ASP.NET Boilerplate Project (ASP.NET樣板項目)」的簡稱)框架的理解和運用.能力有限,第一次寫技術性的博客寫得不好.算是拋磚引玉,希望有問題的地方給予指出.

"ASP.NET Boilerplate是一個用最佳實踐和流行技術開發現代WEB應用程序的新起點,它旨在成為一個通用的WEB應用程序框架和項目模板。"

"ASP.NET Boilerplate 基於DDD的經典分層架構思想,實現了眾多DDD的概念(但沒有實現所有DDD的概念)。"

地址:Jimmey-Jiang/ABP-ASP.NET-Boilerplate-Project-CMS

打開方式

visual studio 2017

sql server 2008以上

Redis

效果圖

回到頂部(go to top)

目錄導航

(1)ABP+AdminLTE+Bootstrap Table許可權管理系統第一節--使用ASP.NET Boilerplate模板創建解決方案

(2)ABP+AdminLTE+Bootstrap Table許可權管理系統第二節--資料庫腳本

(3)ABP+AdminLTE+Bootstrap Table許可權管理系統第三節--abp分層體系及實體相關

(4)ABP+AdminLTE+Bootstrap Table許可權管理系統第四節--倉儲,服務,服務介面及依賴注入

(5)ABP+AdminLTE+Bootstrap Table許可權管理系統第五節--WBEAPI及SwaggerUI

(6)ABP+AdminLTE+Bootstrap Table許可權管理系統第六節--abp控制器擴展及json封裝以及6種處理時間格式化的方法

(7)ABP+AdminLTE+Bootstrap Table許可權管理系統第七節--登錄邏輯及abp封裝的Javascript函數庫

(8)ABP+AdminLTE+Bootstrap Table許可權管理系統第八節--ABP錯誤機制及AbpSession相關

(9)ABP+AdminLTE+Bootstrap Table許可權管理系統第九節--AdminLTE模板頁搭建

(10)ABP+AdminLTE+Bootstrap Table許可權管理系統第十節--AdminLTE模板菜單處理

(11)ABP+AdminLTE+Bootstrap Table許可權管理系統第十一節--Bootstrap Table用戶管理列表以及Module Zero之用戶管理

(12)ABP module-zero +AdminLTE+Bootstrap Table+jQuery許可權管理系統第十二節--小結,Bootstrap Table之角色管理以及module-zero角色管理

(13)ABP module-zero +AdminLTE+Bootstrap Table+jQuery許可權管理系統第十三節--RBAC模式及ABP許可權管理(附送福利)

(14)ABP module-zero +AdminLTE+Bootstrap Table+jQuery許可權管理系統第十四節--後台工作者HangFire與ABP框架Abp.Hangfire及擴展

(15)ABP module-zero +AdminLTE+Bootstrap Table+jQuery許可權管理系統第十五節--緩存小結與ABP框架項目中 Redis Cache的實現

(16)ABP module-zero +AdminLTE+Bootstrap Table+jQuery許可權管理系統第十六節--SignalR與ABP框架Abp.Web.SignalR及擴展

(17)ABP module-zero +AdminLTE+Bootstrap Table+jQuery許可權管理系統第十七節--Quartz與ABP框架Abp.Quartz及擴展

番外篇--Moddule Zero

註:番外篇參考自(https://github.com/ABPFrameWorkGroup)

番外篇--Moddule Zero介紹

番外篇--Moddule Zero安裝

番外篇--Moddule Zero啟動模板

番外篇--Moddule Zero多租戶管理

番外篇--Moddule Zero 版本管理與組織單位管理

未完待續...

運用到的服務端技術:

  • ABP(ASP.NET BolierPlate ProJect)
  • Module-Zero
  • ASP.NET MVC
  • ASP.NET Web API
  • ASP.NET Identity Framework (and social login extensions)
  • ASP.NET Web Optimization Framework
  • ASP.NET Web Pages
  • SignalR
  • EntityFramework
  • EntityFramework.DynamicFilters
  • Castle Windsor
  • AutoMapper
  • HangFire
  • Log4Net
  • xUnit
  • Swashbuckle
  • StackExchange.Redis
  • SharpZipLib
  • System.Linq.Dynamic

客戶端:(前端是用的AdminLTE,Bootstrap table.是開源的,不涉及版權)

  • Twitter Bootstrap
  • Bootstrap Hover Dropdown
  • Bootstrap Date Range Picker
  • Bootstrap Switch
  • Bootstrap Select
  • Bootstrap table
  • jQuery
  • jQuery UI
  • jQuery BlockUI
  • jQuery Validation
  • jQuery Ajax Forms
  • Js Cookie
  • Modernizr
  • Moment.js
  • Moment.js Timezone
  • Underscore.js
  • JsTree
  • Respondjs
  • Font-Awesome
  • SpinJs
  • SweetAlert
  • Toastr
  • AdminLTE

GitHub地址

項目GitHub地址:Jimmey-Jiang/ABP-ASP.NET-Boilerplate-Project-CMS

這也算是學習筆記或者學習總結吧,其實目前1~11節蠻適合公司開發模式的.之前我的公司就用這種模式開發.可能像之前架構師說的,abp並不適合大型企業高並發項目吧,所以才吧abp改成11節之前的模式,之後的模式就在這上面擴展.

但是最近我在開發的過程中在想,既然 ABP module-zero已經為我們封裝好了 abpsession 封裝好了許可權,授權等管理,為什麼我們還要自己去寫呢,直接在原來的基礎上擴展就可以了嘛.所以在12節及以後的項目中,我會試著去ABP module-zero項目上去擴展延伸.主要參考的資料還是博客大神的一系列文章"基於DDD的現代ASP.NET開發框架--ABP系列文章總目錄".

其他

為什麼使用ABP?

" 我們近幾年陸續開發了一些Web應用和桌面應用,需求或簡單或複雜,實現或優雅或醜陋。一個基本的事實是:我們只是積累了一些經驗或提高了對,NET的熟悉程度。

隨著軟體開發經驗的不斷增加,我們發現其實很多工作都是重複機械的,而且隨著軟體複雜度的不斷提升,以往依靠經驗來完成一些簡單的增刪改查的做法已經行不通了。特別是用戶的要求越來越高,希望添加的功能越來多,目前這種開發模式,已經捉襟見肘。我很難想像如何在現有的模式下進行多系統的持續集成並添加一些新的特性。

開發一個系統時,我們不可避免的會使用各種框架。數據持久層實現、日誌、ASP.NET MVC、IOC以及自動映射等。一個高質量的軟體系統往往還有全局容錯,消息隊列等組件。

把上述這些組件組合到一起的時候,其複雜度會急劇上升。一般個人和小團隊的技術水平,很難設計出一個均衡協調的框架。對於傳統的所謂三層架構,我也是很持懷疑態度的。(月薪15k的程序員搞的三層架構,我也仔細讀過,也是問題多多,並不能解釋為什麼要使用三層)。

其實,我們無非是希望在編程的時候,把大部分的注意力全部集中到業務實現上。不要過多的考慮基礎的軟體結構上的種種問題。應該有一個框框或者一種範式來提供基本的服務,如日誌、容錯和AOP,DI等。

稍微正規一點的公司經過多年沉澱都形成了自己的內部軟體框架,他們在開發軟體的時候並不是從一片空白開始的。而是從一個非常牢固的基礎平台上開始構建的。這樣大大提高了開發速度,而且一種架構往往也決定了分工協作的模式。我們目前之所以無法分工協作,根本原因也是缺少一套成熟穩定的基礎開發架構和工作流程。

目前.NET上有不少開源框架。比如Apworks和ABP。其中Apworks是中國人寫的一套開源框架。它是一個全功能的,不僅可以寫分散式應用,也可以寫桌面應用。ABP的全稱是Asp.net boilerplate project(asp.net樣板工程)。是github上非常活躍的一個開源項目。它並沒有使用任何新的技術,只是由兩名架構師將asp.net開發中常用的一些工具整合到了一起,並且部分實現了DDD的概念。是一個開箱即用的框架,可以作為asp.net分散式應用的一個良好起點。

使用框架當然有代價,你必須受到框架強API的侵入,抑或要使用他的方言。而且這個框架想要吃透,也要付出很大的學習成本。但是好處也是顯而易見的。業界頂尖的架構師已經為你搭建好了一套基礎架構,很好的回應了關於一個軟體系統應該如何設計,如何規劃的問題,並且提供了一套最佳實踐和範例。

學習雖然要付出成本,但是經過漫長的跋涉,我們從一無所知已經站到了工業級開發的門檻上。基於這個框架,我們可以很好的來劃分任務,進行單元測試等。大大降低了軟體出現BUG的幾率。"

風物長宜放眼量,至此,一方面是改變自己懶惰的習慣,催促自己前行,一方面鞭策自己,不斷學習.


推薦閱讀:

重溫WPF知識點
.NET Core 2.2 正式發布
我要推薦下F#

TAG:C | .NET |