abp(net core)+easyui+efcore實現倉儲管理系統——ABP整體介紹(一)

 abp(net core)+easyui+efcore實現倉儲管理系統目錄html

 

      在前面我已經介紹了ASP.NET MVCASP.NET RazorWEBAPI等技術。我準備經過一個實踐項目來總體應用一下以前介紹的技術。本系列是介紹基於ABP+EasyUI的Web開發框架的造成過程,期間包括一些ABP的介紹,ASP.NET MVC Core技術、EasyUI技術、JQuery技術、WebAPI 技術,以及一些我對總體框架改造的基礎性東西,力求更加穩定、通用、高效、簡潔,最少的代碼作最多的事情。我所使用的ABP版本是4.3,是2019年3月14日的版本。ajax

1、ABP 的由來

       「DRY——避免重複代碼」是一個優秀的開發者在開發軟件時所具有的最重要的思想之一。咱們在開發企業WEB應用程序時都有一些相似的需求,例如:都須要登陸頁面、用戶/角色管理、權限驗證、數據有效性驗證、多語言/本地化等等。一個高品質的大型軟件都會運用一些最佳實踐,例如分層體系結構、領域驅動設計、依賴注入等。咱們也可能會採用ORM、數據庫遷移(Database Migrations)、日誌記錄(Logging)等工具。sql

      從零開始建立一個企業應用程序是一件繁瑣的事,由於須要重複作不少常見的基礎工做。許多公司都在開發本身的應用程序框架來重用於不一樣的項目,而後在框架的基礎上開發一些新的功能。但並非每一個公司都有這樣的實力。假如咱們能夠分享的更多,也許能夠避免每一個公司或每一個項目的重複編寫相似的代碼。做者之因此把項目命名爲「ASP.NET Boilerplate」,就是但願它能成爲開發通常企業WEB應用的新起點,直接把ABP做爲項目模板。 數據庫

2、ABP是什麼?

      ABP是爲新的現代Web應用程序使用最佳實踐和使用最流行工具的一個起點。可做爲通常用途的應用程序的基礎框架或項目模板。它的功能包括:express

服務器端:json

  • 基於最新的.NET技術 (我使用的是ASP.NET Core MVC、Web API 二、C#)
  • 實現領域驅動設計(實體、倉儲、領域服務、領域事件、應用服務、數據傳輸對象,工做單元等等)
  • 實現分層體系結構(領域層,應用層,展示層和基礎設施層)
  • 提供了一個基礎架構來開發可重用可配置的模塊
  • 集成一些最流行的開源框架/庫,也許有些是你正在使用的。
  • 提供了一個基礎架構讓咱們很方便地使用依賴注入
  • 提供Repository倉儲模式支持不一樣的ORM(已實現Entity Framework 、NHibernate、MangoDb和內存數據庫)
  • 支持並實現數據庫遷移(EF 的 Code first)
  • 模塊化開發(每一個模塊有獨立的EF DbContext,可單獨指定數據庫)
  • 包括一個簡單的和靈活的多語言/本地化系統
  • 包括一個 EventBus來實現服務器端全局的領域事件
  • 統一的異常處理(應用層幾乎不須要處理本身寫異常處理代碼)
  • 數據有效性驗證
  • 經過Application Services自動建立Web Api層
  • 提供基類和幫助類讓咱們方便地實現一些常見的任務
  • 使用「約定優於配置原則」 

客戶端:瀏覽器

  • Bootstrap、React、AngularJs、jQuery、Vue和其餘JS庫: jQuery.validate、jQuery.form、jQuery.blockUI、json2等
  • 爲單頁面應用程序(AngularJs、Vue 、React)和多頁面應用程序(Bootstrap+Jquery)提供了項目模板。
  • 自動建立Javascript 的代理層來更方便使用Web Api
  • 封裝一些Javascript 函數,更方便地使用ajax、消息框、通知組件、忙狀態的遮罩層等等

 除ABP框架項目之外,還開發了名叫「Zero」的模塊,實現瞭如下功能:服務器

  • 身份驗證與受權管理(經過ASP.NET Identity實現的)
  • 用戶&角色管理
  • 系統設置存取管理(系統級、租戶級、用戶級,做用範圍自動管理)
  • 審計日誌(自動記錄每一次接口的調用者和參數)

 

3、ABP不是什麼?

      ABP 提供了一個應用程序開發模型用於最佳實踐。它擁有基礎類、接口和工具使咱們容易創建起可維護的大規模的應用程序。架構

      它不是RAD工具之一,RAD工具的目的是無需編碼建立應用程序。相反,ABP提供了一種編碼的最佳實踐。app

      它不是一個代碼生成工具。在運行時雖然它有一些特性構建動態代碼,但它不能生成代碼。

      它不是一個一體化的框架。相反,它使用流行的工具/庫來完成特定的任務(例如用EF作ORM,用Log4Net作日誌記錄,使得Castle Windsor做爲賴注入容器, AngularJs 用於SPA 框架)。

4、進入官網建立項目模板

  1. 在瀏覽器中輸入https://aspnetboilerplate.com/Templates。而後依次按下圖選擇:

  2. 下載提示,以下圖。

 

5、開發工具

Visual Studio 2017(以上)

SQL Server 2012  以上

6、啓動項目

      1.使用Visual Studio  2017打開咱們剛纔在官網上建立的項目「ABP.TPLMS」,Visual Studio 2017會自動還原Nuget包,以下圖。

      2. 設置「ABP.TPLMS.Web.Mvc」爲啓動項目,以下圖。

      3.打開「appsettings.json」文件,修改鏈接字符串,以下圖。(由於我本地裝的sqlserver是實例是.\sqlexpress,因此須要手動修改server。)

      4. 在Visual Studio 2017中,選擇「菜單>工具>NuGet包管理器>程序包管理器控制檯」,打開程序包管理器控制檯。 以下圖。

      5.在程序包管理器控制檯中的「默認項目」選擇「ABP.TPLMS.EntityFrameworkCore」項目,並執行Update-Database,以建立數據庫。以下圖。

 

      6.在Visual Studio 2017中按F5運行應用程序,而後在瀏覽器中顯示的登陸頁面中使用帳號admin/123qwe,登錄便可。以下圖。

      7.在正常登陸以後,瀏覽器中顯示以下圖。

 

      8.默認是英文,能夠選擇其餘語言。以下圖1,圖2。

 

圖1

 

圖2

相關文章
相關標籤/搜索