ABP+AdminLTE+Bootstrap Table權(quán)限管理系統(tǒng)一期
Github:https://github.com/Jimmey-Jiang/ABP-ASP.NET-Boilerplate-Project-CMS
前往博客園總目錄:ABP+AdminLTE+Bootstrap Table權(quán)限管理系統(tǒng)一期
"abp是ASP.NET Boilerplate簡稱,是一個用最佳實踐和流行技術(shù)開發(fā)現(xiàn)代WEB應(yīng)用程序的新起點谎替,它旨在成為一個通用的WEB應(yīng)用程序框架和項目模板"
- abp官方網(wǎng)站:https://aspnetboilerplate.com/
- abp開源項目:https://github.com/aspnetboilerplate
abp中主要的技術(shù):
- ASP.NET MVC 5掺涛、Web API 2、C# 5.0
- DDD領(lǐng)域驅(qū)動設(shè)計 (Entities旬痹、Repositories创倔、Domain Services捉貌、Domain Events传泊、Application Services料仗、DTOs等)
- Castle windsor (依賴注入容器)
- Entity Framework 6 \ NHibernate状婶,數(shù)據(jù)遷移(數(shù)據(jù)遷移這個項目暫時沒有用,詳情看第二節(jié))
- Log4Net(日志記錄)
- AutoMapper(實現(xiàn)Dto類與實體類的雙向自動轉(zhuǎn)換)
- Bootstrap
- AngularJs(本項目暫時沒用)
- jQuery
- 其他JS庫: jQuery.validate意敛、jQuery.form馅巷、jQuery.blockUI、json2
- AdminLTE(abp沒有,本項目用到)
話不多說,abp是開源項目,我們前往官網(wǎng)去下載項目地址:https://aspnetboilerplate.com/Templates
現(xiàn)在官網(wǎng)的版本2.2.1,首先我們得安裝
- vs2013 update3以上版本
- sqlserver 2008以上版本
- 另外需要安裝最新的typescript 連接:https://www.microsoft.com/zh-CN/download/details.aspx?id=48593
abp最新版GitHub地址:https://github.com/aspnetboilerplate/aspnetboilerplate
客戶端采用響應(yīng)式布局,適配PC及移動端草姻。前端框架AdminLTE钓猬,github地址:https://github.com/almasaeed2010/AdminLTE
- 表格控件則用到了bootstrap-table,github地址:https://github.com/wenzhixin/bootstrap-table
服務(wù)器端:
- ASP.NET MVC 5撩独、Web API 2敞曹、C# 5.0
- DDD領(lǐng)域驅(qū)動設(shè)計 (Entities、Repositories综膀、Domain Services澳迫、Domain Events、Application Services剧劝、DTOs等)
- Castle windsor (依賴注入容器)
- Entity Framework 6 \ NHibernate橄登,數(shù)據(jù)遷移
- Log4Net(日志記錄)
- AutoMapper(實現(xiàn)Dto類與實體類的雙向自動轉(zhuǎn)換)
客戶端:
- Bootstrap
- Less
- AngularJs
- jQuery
- Modernizr
- 其他JS庫: jQuery.validate、jQuery.form讥此、jQuery.blockUI拢锹、json2
1.1.2 ABP框架已實現(xiàn)了以下特性
- 多語言/本地化支持
- 多租戶支持(每個租戶的數(shù)據(jù)自動隔離,業(yè)務(wù)模塊開發(fā)者不需要在保存和查詢數(shù)時寫相應(yīng)代碼)
- 軟刪除支持(繼承相應(yīng)的基類或?qū)崿F(xiàn)相應(yīng)接口萄喳,會自動實現(xiàn)軟刪除)
- 統(tǒng)一的異常處理(應(yīng)用層幾乎不需要處理自己寫異常處理代碼)
- 數(shù)據(jù)有效性驗證(Asp.NET MVC只能做到Action方法的參數(shù)驗證面褐,ABP實現(xiàn)了Application層方法的參數(shù)有效性驗證)
- 日志記錄(自動記錄程序異常)
- 模塊化開發(fā)(每個模塊有獨立的EF DbContext,可單獨指定數(shù)據(jù)庫)
- Repository倉儲模式(已實現(xiàn)了Entity Framework取胎、NHibernate、MangoDB湃窍、內(nèi)存數(shù)據(jù)庫)
- Unit Of Work工作單元模式(為應(yīng)用層和倉儲層的方法自動實現(xiàn)數(shù)據(jù)庫事務(wù))
- EventBus實現(xiàn)領(lǐng)域事件(Domain Events)
- DLL嵌入資源管理
- 通過Application Services自動創(chuàng)建Web Api層(不需要寫ApiController層了)
- 自動創(chuàng)建Javascript 的代理層來更方便使用Web Api
- 封裝一些Javascript 函數(shù)闻蛀,更方便地使用ajax、消息框您市、通知組件觉痛、忙狀態(tài)的遮罩層
“Zero”的模塊,實現(xiàn)了以下功能:
- 身份驗證與授權(quán)管理(通過ASP.NET Identity實現(xiàn)的)
- 用戶&角色管理
- 系統(tǒng)設(shè)置存取管理(系統(tǒng)級茵休、租戶級薪棒、用戶級,作用范圍自動管理)
- 審計日志(自動記錄每一次接口的調(diào)用者和參數(shù))
在其他項目中的很多優(yōu)秀設(shè)計榕莺,在ABP項目中也已存在俐芯,而且可能實現(xiàn)得更好。ABP框架的代碼钉鸯,都通過xUnit進行了單元測試吧史。作者一直在用ABP框架開發(fā)他們的實際項目,從Github和他官方論壇上的信息可以看到唠雕,有很多國外的開發(fā)者在將ABP用作生產(chǎn)項目的基礎(chǔ)框架贸营。如果需要直接使用ABP組件吨述,可以通過Nuget安裝(在VS的Nuget包管理界面搜索ABP)。
為了更好地將ABP適用于自己的項目钞脂,我對ABP的源碼做了一些修改后使用的揣云,沒有直接使用ABP組件。
我希望更多國內(nèi)的架構(gòu)師能關(guān)注ABP這個項目冰啃,也許這其中有能幫助到你的地方邓夕,也許有你的參與,這個項目可以發(fā)展得更好亿笤。
今天只是作了一個大概介紹翎迁,希望有更多的朋友能去閱讀源代碼,然后參與討論净薛。
1.1.3 ABP適用的場景
中小規(guī)模WEB應(yīng)用開發(fā)汪榔,可直接使用ABP框架。 較大型項目可以在ABP框架的源碼基礎(chǔ)上進行擴展肃拜,以實現(xiàn)分布式架構(gòu)痴腌。
一、點擊官網(wǎng)鏈接出現(xiàn)在我們面前的是abp最新版本根據(jù)上面的超做進行選擇.
注意:我用的是mvc5 不是.net core .
然后輸入項目名字,如果有驗證碼就輸入驗證碼,創(chuàng)建一個項目就可以了注意這里默認(rèn)是勾選module-zero,圖中未勾選,那下面我們先來看一下abp勾選module-zero的樣子
二燃领、修改鏈接地址,連接本地數(shù)據(jù)庫
當(dāng)然這里的
Datebase JCmsErp
本地SQL server
新建空的數(shù)據(jù)庫,沒任何表,等會兒我們會根據(jù)codefirst的數(shù)據(jù)庫遷移功能自動創(chuàng)建數(shù)據(jù)庫,注釋的是abp默認(rèn)路徑三士聪、在程序包管理控制臺執(zhí)行update-database命令**(注意:這里一定要把WEB設(shè)置為啟動項目,不然會報錯:在與 SQL Server 建立連接時出現(xiàn)與網(wǎng)絡(luò)相關(guān)的或特定于實例的錯誤。未找到或無法訪問服務(wù)器猛蔽。請驗證實例名稱是否正確并且 SQL Server 已配置為允許遠(yuǎn)程連接剥悟。 (provider: SQL Network Interfaces, error: 26 - 定位指定的服務(wù)器/實例時出錯))
然后本地數(shù)據(jù)庫就自動創(chuàng)建成功了,不懂codefirst的同學(xué)可以去看一下月影的博客:http://blog.csdn.net/gentle_wolf/article/details/14004345 和 tkb至簡的博客http://www.cnblogs.com/farb/p/ABPAdvancedTheoryContent.html#masteringEF
我們?nèi)タ磾?shù)據(jù)庫用管理員名和密碼,還有租戶名字
abp實際上使用ef框架codefrist已經(jīng)為我們創(chuàng)建好了數(shù)據(jù)庫,然后我們再來看登陸界面
用戶名:admin 密碼123qwe 以及登陸進去的頁面.這里我們用租戶名登陸進來的曼库,可以進行增刪查改
租戶不明白的同學(xué)可以看下別的博客大神的文章区岗,當(dāng)然不明白也沒關(guān)系,目前這個項目中并沒有運用到多租戶.
不過有興趣的同學(xué)可以看一下
abp module-zero
默認(rèn),界面是不是很丑,登陸界面是不是也很丑,還有codefirst
的數(shù)據(jù)庫遷移功能在實際運用的過程并不是太適合多人開發(fā),容易沖突,然后我們在實際開發(fā)過程不可能用abp原聲的界面,原生的登陸頁面,怎么辦,當(dāng)然是自己動手去寫啊!!這就是我寫這一系列文章的原因.同時也方便大家交流和指教.找出自身的不足之處.
下面給demo兩張成果圖片
登陸頁面
頁面頁面展示
當(dāng)然還有很多沒有完善的地方,我希望通過這系列文章勉勵自己毁枯,改變自己懶惰的性情慈缔,堅持去寫一系列文章,當(dāng)然這些都是下班時候?qū)懙闹致辏瑫r間有限藐鹤,更新時間不定.a(chǎn)bp也是我喜歡的.net框架,一起努力一起見證.一起共勉赂韵!
返回簡書總目錄:ABP+AdminLTE+Bootstrap Table權(quán)限管理系統(tǒng)一期
前往博客園總目錄:ABP+AdminLTE+Bootstrap Table權(quán)限管理系統(tǒng)一期