ABP框架我的開發實戰(1)_環境搭建

前言

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

先簡單介紹下吧(如下部分資料來自羣裏資料,若有侵權,請告知):git

ABP是「ASP.NET Boilerplate Project (ASP.NET樣板項目)」的簡稱。github

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

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

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

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

APB採用瞭如下技術:

服務器端:服務器

l  ASP.NET MVC 五、Web API 二、C# 5.0架構

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

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項目源碼

相關文章
相關標籤/搜索