欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

abp(net core)+easyui+efcore仓储系统——ABP总体介绍(一)

程序员文章站 2024-01-06 10:38:28
ABP是为新的现代Web应用程序使用最佳实践和使用最流行工具的一个起点。可作为一般用途的应用程序的基础框架或项目模板。本系列是介绍基于ABP+EasyUI的Web开发框架的形成过程,期间包括一些ABP的介绍,ASP.NET MVC Core技术、EasyUI技术、JQuery技术、WebAPI 技术... ......

 

      在前面我已经介绍了asp.net mvc、asp.net razor、webapi等技术。我准备通过一个实践项目来整体应用一下之前介绍的技术。本系列是介绍基于abp+easyui的web开发框架的形成过程,期间包括一些abp的介绍,asp.net mvc core技术、easyui技术、jquery技术、webapi 技术,以及一些我对整体框架改造的基础性东西,力求更加稳定、通用、高效、简洁,最少的代码做最多的事情。我所使用的abp版本是4.3,是2019年3月14日的版本。

一、abp 的由来

       “dry——避免重复代码”是一个优秀的开发者在开发软件时所具备的最重要的思想之一。我们在开发企业web应用程序时都有一些类似的需求,例如:都需要登录页面、用户/角色管理、权限验证、数据有效性验证、多语言/本地化等等。一个高品质的大型软件都会运用一些最佳实践,例如分层体系结构、领域驱动设计、依赖注入等。我们也可能会采用orm、数据库迁移(database migrations)、日志记录(logging)等工具。

      从零开始创建一个企业应用程序是一件繁琐的事,因为需要重复做很多常见的基础工作。许多公司都在开发自己的应用程序框架来重用于不同的项目,然后在框架的基础上开发一些新的功能。但并不是每个公司都有这样的实力。假如我们可以分享的更多,也许可以避免每个公司或每个项目的重复编写类似的代码。作者之所以把项目命名为“asp.net boilerplate”,就是希望它能成为开发一般企业web应用的新起点,直接把abp作为项目模板。 

二、abp是什么?

      abp是为新的现代web应用程序使用最佳实践和使用最流行工具的一个起点。可作为一般用途的应用程序的基础框架或项目模板。它的功能包括:

服务器端:

  • 基于最新的.net技术 (我使用的是asp.net core mvc、web api 2、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实现的)
  • 用户&角色管理
  • 系统设置存取管理(系统级、租户级、用户级,作用范围自动管理)
  • 审计日志(自动记录每一次接口的调用者和参数)

 

三、abp不是什么?

      abp 提供了一个应用程序开发模型用于最佳实践。它拥有基础类、接口和工具使我们容易建立起可维护的大规模的应用程序。

      它不是rad工具之一,rad工具的目的是无需编码创建应用程序。相反,abp提供了一种编码的最佳实践。

      它不是一个代码生成工具。在运行时虽然它有一些特性构建动态代码,但它不能生成代码。

      它不是一个一体化的框架。相反,它使用流行的工具/库来完成特定的任务(例如用ef做orm,用log4net做日志记录,使得castle windsor作为赖注入容器, angularjs 用于spa 框架)。

四、进入官网创建项目模板

  1. 在浏览器中输入https://aspnetboilerplate.com/templates。然后依次按下图选择:
    abp(net core)+easyui+efcore仓储系统——ABP总体介绍(一)
  2. 下载提示,如下图。

 abp(net core)+easyui+efcore仓储系统——ABP总体介绍(一)

五、开发工具

visual studio 2017(以上)

sql server 2012  以上

六、启动项目

      1.使用visual studio  2017打开我们刚才在官网上创建的项目“abp.tplms”,visual studio 2017会自动还原nuget包,如下图。

abp(net core)+easyui+efcore仓储系统——ABP总体介绍(一)

      2. 设置“abp.tplms.web.mvc”为启动项目,如下图。

abp(net core)+easyui+efcore仓储系统——ABP总体介绍(一)

      3.打开“appsettings.json”文件,修改连接字符串,如下图。(因为我本地装的sqlserver是实例是.\sqlexpress,所以需要手动修改server。)

abp(net core)+easyui+efcore仓储系统——ABP总体介绍(一)

      4. 在visual studio 2017中,选择“菜单>工具>nuget包管理器>程序包管理器控制台”,打开程序包管理器控制台。 如下图。
abp(net core)+easyui+efcore仓储系统——ABP总体介绍(一)

      5.在程序包管理器控制台中的“默认项目”选择“abp.tplms.entityframeworkcore”项目,并执行update-database,以创建数据库。如下图。

 abp(net core)+easyui+efcore仓储系统——ABP总体介绍(一)

      6.在visual studio 2017中按f5运行应用程序,然后在浏览器中显示的登录页面中使用账号admin/123qwe,登陆即可。如下图。

abp(net core)+easyui+efcore仓储系统——ABP总体介绍(一)

      7.在正常登录之后,浏览器中显示如下图。

 abp(net core)+easyui+efcore仓储系统——ABP总体介绍(一)

      8.默认是英文,可以选择其他语言。如下图1,图2。

 abp(net core)+easyui+efcore仓储系统——ABP总体介绍(一)

图1

 abp(net core)+easyui+efcore仓储系统——ABP总体介绍(一)

图2

上一篇:

下一篇: