ABP框架個人開發實戰(1)_環境搭建


前言

之前關注ABP框架有一陣子了,一直沒有潛下心來實際研究一下。最近想自己建站,以后有自己的功能開發項目,可以在自己的站點上開發,並一步步的完善,所以找個比較好用的框架迫在眉睫,選來選去,決定用ABP框架。用群里的大大門的話來說,掌握了ABP,基本就可以飛天了~

先簡單介紹下吧(以下部分資料來自群里資料,如有侵權,請告知):

ABP是“ASP.NET Boilerplate Project (ASP.NET樣板項目)”的簡稱。

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

ASP.NET Boilerplate 基於DDD的經典分層架構思想,實現了眾多DDD的概念。

ABP的官方網站:http://www.aspnetboilerplate.com

ABP在Github上的開源項目:https://github.com/aspnetboilerplate

APB采用了以下技術:

服務器端:

l  ASP.NET MVC 5、Web API 2、C# 5.0

l  DDD領域驅動設計 (Entities、Repositories、Domain Services、Domain Events、Application Services、DTOs等)

l  Castle windsor (依賴注入容器)

l  Entity Framework 6 \ NHibernate,數據遷移

l  Log4Net(日志記錄)

l  AutoMapper(實現Dto類與實體類的雙向自動轉換)

客戶端:

l  Bootstrap

l  Less

l  AngularJs

l  jQuery

l  Modernizr

其他JS庫: jQuery.validate、jQuery.form、jQuery.blockUI、json2

以上只是其中的主要一部分,其實其他項目框架的很多優秀設計,ABP框架也有涉及,所以我采用這個框架,方便以后的功能集成和擴展。

ABP框架已實現了以下特性

l  多語言/本地化支持

l  多租戶支持(每個租戶的數據自動隔離,業務模塊開發者不需要在保存和查詢數時寫相應代碼)

l  軟刪除支持(繼承相應的基類或實現相應接口,會自動實現軟刪除)

l  統一的異常處理(應用層幾乎不需要處理自己寫異常處理代碼)

l  數據有效性驗證(Asp.NET MVC只能做到Action方法的參數驗證,ABP實現了Application層方法的參數有效性驗證)

l  日志記錄(自動記錄程序異常)

l  模塊化開發(每個模塊有獨立的EF DbContext,可單獨指定數據庫)

l  Repository倉儲模式(已實現了Entity Framework、NHibernate、MangoDB、內存數據庫)

l  Unit Of Work工作單元模式(為應用層和倉儲層的方法自動實現數據庫事務)

l  EventBus實現領域事件(Domain Events)

l  DLL嵌入資源管理

l  通過Application Services自動創建Web Api層(不需要寫ApiController層了)

l  自動創建Javascript 的代理層來更方便使用Web Api

l  封裝一些Javascript 函數,更方便地使用ajax、消息框、通知組件、忙狀態的遮罩層

l  “Zero”的模塊,實現了以下功能:

  身份驗證與授權管理(通過ASP.NET Identity實現的)

  l  用戶&角色管理

  l  系統設置存取管理(系統級、租戶級、用戶級,作用范圍自動管理)

  l  審計日志(自動記錄每一次接口的調用者和參數)

下載和還原nuget

我們去官網,找到Free Startup Templates,點擊Create Your Project。

這里我們選擇我們的運行環境,我選擇的是ASP.NET MVC 5.x,默認選擇單頁開發模式和EF,給自己的項目取個名字,然后點擊創建。

官網會自動打包你的項目,下載即可。

我們將項目文件解壓,查看ABP最新的版本是3.1.2,因為用的是.net 4.6.1,所以我用vs 2017打開。

項目組織結構如下:

一共有5個主要的工程,1個測試工程,1個工具類工程。主要介紹下這幾個主要的工程項目(涉及到DDD,領域驅動設計的概念,不清楚請先百度):

MyWebSite.EntityFramework-基礎設施層

MyWebSite.Core-領域層

MyWebSite.Application-應用層

MyWebSite.WebApi,MyWebSite.Web-WEB和展現層

接下來,我們需要用nuget來還原一下相關引用,

新版本有個小問題,還原以后,Abp.AutoMapper 沒有能正常識別,這里刪除,再重新引用packets包里的dll就行。

遷移MySQL

我本地用的數據庫是mysql,如果不需要遷移數據庫的,請跳過這一段。

如果沒有MySQL驅動,先安裝驅動:MySQL Connector

nuget引入MySql.Data.Entity,這里最新版本跟EF有沖突,所以我降了一個版本,用的是MySql.Data.Entity 6.9.10

EF遷移配置里增加MySQL的生成器

最后,工具--程序包管理器控制台選中MyWebSite.EntityFramework

運行Update-Database,完成數據庫的生成和初始化:

啟動項目

 好的,我們啟動項目試試:

網站已經正常運行起來,我們后面將逐步研究解析框架牛逼的功能,並完善我們的網站的功能。今天只是作了一個簡單介紹,希望大家更多關注ABP這個開源項目,希望有更多的朋友能去閱讀源代碼,然后歡迎跟我一起討論。

資源

GitHub項目源碼

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM