在前面我已经介绍了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。然后依次按下图选择:
  2. 下载提示,如下图。

五、开发工具

Visual Studio 2017(以上)

SQL Server 2012  以上

六、启动项目

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

转载于:https://www.cnblogs.com/chillsrc/p/10913047.html

abp(net core)+easyui+efcore实现仓储管理系统——ABP总体介绍(一)相关推荐

  1. abp(net core)+easyui+efcore实现仓储管理系统——ABP WebAPI与EasyUI结合增删改查之六(三十二)

    abp(net core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统--ABP总体介绍(一) abp(net core)+ ...

  2. abp(net core)+easyui+efcore实现仓储管理系统——入库管理之一(三十七)

    abp(net core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统--ABP总体介绍(一) abp(net core)+ ...

  3. abp(net core)+easyui+efcore实现仓储管理系统——出库管理之一(四十九)

    abp(net core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统--ABP总体介绍(一) abp(net core)+ ...

  4. abp(net core)+easyui+efcore实现仓储管理系统——解决方案介绍(二)

    abp(net core)+easyui+efcore实现仓储管理系统--解决方案介绍(二) 参考文章: (1)abp(net core)+easyui+efcore实现仓储管理系统--解决方案介绍( ...

  5. Java练手项目1:基于RFID的图书仓储管理系统(可做毕设)

    一.系统概述 基于RFID的图书仓储管理系统的设计以物联网的三层架构思想为理念,实现了图书仓储的入库.盘点.出库.查询等功能,从图书信息采集到数据传输处理再到数据应用,有效的提高了图书仓储的管理效率, ...

  6. 基于ABP落地领域驱动设计-03.仓储和规约最佳实践和原则

    dotNET兄弟会 专注.Net开源技术及跨平台开发!致力于构建完善的.Net开放技术文库!为.Net爱好者提供学习交流家园! 公众号 围绕DDD和ABP Framework两个核心技术,后面还会陆续 ...

  7. Asp.Net Core 项目实战之权限管理系统(0) 无中生有

    0 Asp.Net Core 项目实战之权限管理系统(0) 无中生有 1 Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端 2 Asp.Net Core 项目实战之 ...

  8. WMS智能仓储管理系统源码 SpringMVC物流仓库管理系统源码

    淘源码:国内知名的源码免费下载平台 需要源码学习可私信我. 系统介绍: 基于SpringMVC+Hibernat+Minidao(类Mybatis)+Easyui(UI库)+ Jquery + Boo ...

  9. 【计算机毕业设计】冷冻仓储管理系统

    一.系统截图(需要演示视频可以私聊) 摘 要 随着互联网时代的到来,同时计算机网络技术高速发展,网络管理运用也变得越来越广泛.因此,建立一个B/S结构的冷冻仓储管理系统,会使冷冻仓储管理系统工作系统化 ...

最新文章

  1. TensorFlow领衔,七大深度学习框架大对比!
  2. 浏览器兼容编码与解码的问题
  3. Ozon Tech Challenge 2020 (Div.1 + Div.2) E.Kuroni and the Score Distribution 构造
  4. phpMailer在CentOS 6.5下无法发送邮件的解决办法
  5. PADS2007教程(一)——原理图封装
  6. web基础学习(十四)CSS3多列布局
  7. 西威变频器avo下载调试资料_双色图解变频器及软起动器控制线路
  8. 计算机系统端口445,如何关闭445端口,教您如何关闭系统端口
  9. 2022新考纲408计组详细思维导图分享
  10. socket工具IP显示问题与连接不上问题
  11. Blue Coat 最新报告显示 移动端恶意攻击愈演愈烈
  12. 初学者必看的JavaScript 七大点!
  13. Redis伪集群搭建
  14. html js制作高级拼图,基于JavaScript实现十五拼图代码实例
  15. IDM+毒(du)盘 = 高速下载互联网中大部分资源
  16. MacOS Ventura 13.1 (22C65) 正式版带 OC 0.8.7 and winPE 双分区原版黑苹果镜像
  17. 计算机视觉领域多任务学习相关论文、数据集、网络结构等资源整理分享
  18. 高温寿命试验气候环境模拟长寿命试验
  19. ios使用SARUnArchiveANY 解压rar文件(oc和swift版本)
  20. 人生第一份工作离职了,给自己交予的答卷

热门文章

  1. i致我们终将组件化的Web
  2. 教老婆学java系列之奇妙的数据结构三
  3. 基于SSM企业留言系统
  4. 首款产后抑郁药问世;京东推出城市操作系统;阿里将推出全新销售平台;香港政府砸5300亿填海;脸书再爆隐私丑闻;这就是今天的大新闻...
  5. SOI round0 题解
  6. oracle ebs 请求 待定,EBS 并发请求 计划 fnd_conc_release_classes(示例代码)
  7. 一台服务器可以安装多个mysql数据库_在一台Linux服务器上安装多个MySQL实例(一)--使用mysqld_multi方式...
  8. win10电脑中病毒了怎么办,win10电脑中毒怎么解决
  9. 全国统考英语计算机多少分及格,远程教育统考英语考试合格分数线标准如何
  10. python风控建模项目_像潘叔叔那样用半年时间学Python,有哪些书值得看?