abp

ABP(现代ASP.NET样板开发框架)系列之12、ABP领域层——工作单元(Unit Of work)

血红的双手。 提交于 2019-11-29 12:44:06
点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之12、ABP领域层——工作单元(Unit Of work) ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称。 ABP的官方网站 : http://www.aspnetboilerplate.com ABP在Github上的开源项目 : https://github.com/aspnetboilerplate 通用连接和事务管理方法 连接和事务管理是使用数据库的应用程序最重要的概念之一。当你开启一个数据库连接,什么时候开始事务,如何释放连接...诸如此类的。 正如大家都知道的,.Net使用连接池(connection pooling)。因此,创建一个连接实际上是从连接池中取得一个连接,会这么做是因为创建新连接会有成本。如果没有任何连接存在于连接池中,一个新的连接对象会被创建并且添加到连接池中。当你释放连接,它实际上是将这个连接对象送回到连接池。这并不是实际意义上的释放。这个机制是由.Net所提供的。因此,我们应该在使用完之后释放掉连接对象。这就是最佳实践。 在应用程序中,有两个通用的方来创建/释放一个数据库连接: 第一个方法 :在Web请求到达的时候,创建一个连接对象。(Application_BeginRequest这个位于global

ABP虚拟文件系统(VirtualFileSystem)实例------定制菜单栏显示用户姓名

て烟熏妆下的殇ゞ 提交于 2019-11-29 01:51:21
ABP默认的MVC启动模板在登录后, 右上角显示的是用户名: 如果想让它显示用户的姓名该如何做呢?这就需要用到ABP一个非常强大的功能------虚拟文件系统. 前期准备 使用 ABP CLI 创建一个名为 AbpStudy 的ASP.NET MVC项目: abp new AbpStudy 关于MVC的启动模板可以看 文档 , 这里就不赘述. 虚拟文件系统(VirtualFileSystem) 什么是虚拟文件系统(简称VFS)呢?来看一段 官方文档 的解释: 虚拟文件系统可以管理文件系统(磁盘)上实际不存在的文件。 它主要用于将(js,css,image,cshtml ...)文件嵌入到程序集中,并在运行时将它们用作物理文件。 是不是还是不太明白VFS有什么用, 没关系我第一次看完也是这样:) 我们首先要知道, ABP是一个模块化的框架, 每个模块都可以互相协作参与到整个应用程序中, 定制应用程序的各个部分, 包括UI部分 . 每个模块都可以有自己的UI, 比如我有一个"人事管理"模块, 它要向菜单中增加一个名为"人事管理"的菜单入口;而另一个模块"财务管理"则需要增加一个"财务管理"的菜单入口------在不修改你的应用程序的前提下要把它们整合在一起,这是一个很难的事,ABP的前身ASP.NET BOILERPLATE未能实现这点, 而这一切在ABP中成为了可能. 而除了整合以外

设置ABP默认使用中文

不打扰是莪最后的温柔 提交于 2019-11-29 00:12:17
ABP 提供的启动模板, 默认使用是英文: 虽然可以通过右上角的菜单切换成中文, 但是对于国内项目来说, 默认使用中文是很正常的需求. 本文介绍了如何实现默认语言的几种方法, 希望能对ABP爱好者有所帮助, Let's begin! 前期准备 使用 ABP CLI 创建一个名为 AbpStudy 的ASP.NET MVC项目: abp new AbpStudy 关于MVC的启动模板可以看 文档 , 这里就不赘述. 使用ABP版本的是当前最新的v0.19, 后续版本应该也适用 方法1: 通过服务设置 该方法参考了 此回答 , 谢谢@maliming. 编辑 AbpStudy.Web 工程下的 Startup.cs 文件, 在 Configure 方法的开始增加一行代码: public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory) { app.ApplicationServices.GetService<ISettingDefinitionManager>().Get(LocalizationSettingNames.DefaultLanguage).DefaultValue = "zh-Hans"; // 默认使用中文 app.InitializeApplication(); }

abp框架 引入mongo时,提示仓储接口没有注册解决办法

ぐ巨炮叔叔 提交于 2019-11-28 17:58:50
在应用层这边 dependson 引入仓储接口所在位置 PersonTaskDataModule [DependsOn( typeof(AbpServiceNetCoreModule), typeof(AbpServiceCommonModule), typeof(PersonTaskCoreModule), typeof(PersonTaskDataModule), typeof(AuthorizationModule), typeof(AbpAutoMapperModule))] public class PersonTaskApplicationModule : AbpModule 这样就在调用abp引入mongodb仓储模式可以正常使用了。 目前abp框架的一些说明文档,没有详细介绍这一块的内容,希望这里能够帮助大家在abp中引入mongo的问题。    来源: https://www.cnblogs.com/wuguangwei/p/11417873.html

ABP源码分析三:ABP Module

♀尐吖头ヾ 提交于 2019-11-28 15:01:15
Abp是一种基于模块化设计的思想构建的。开发人员可以将自定义的功能以模块(module)的形式集成到ABP中。具体的功能都可以设计成一个单独的Module。Abp底层框架提供便捷的方法集成每个Module.下图是所有Abp自带的module.AbpModule是所有Module的基类,其已经拥有了IIocManager和IAbpStartupConfiguration的受保护的成员,从其派生的Module都可以直接获取并使用相关的功能(依赖注入,Configuration)。: 以下以AbpWebMvcModule为例,这个就是Abp自定义的一个模块,该模块继承自AbpModule。 那么这个模块是怎么和Abp底层框架集成到一块的呢? 所谓集成可以从两个角度开看: 第一,Abp底层框架是如何发现这个Module的? 第二,这个Module是如何把自己的组件(类,接口)注册到Abp底层框架中(AbpWebMvcModule中,这问题就演变为如何把Controller注册到Abp底层框架的容器中)? 先分析第二个问题: 如下代码中AbpWebMvcModule类中的PreInitialize 和 Initialize 很好的回答了这个问题

.NetCore2.0项目之ABP+Vue(IView框架)单页应用之路,启动

折月煮酒 提交于 2019-11-27 14:15:13
  首先很久没有好好静下心来做点东西了,一直用忙碌做借口,实际还是懒,今天决定动一动.    第一步,下载自己的项目模板   首先vue项目国内的暂时还没有,要登录 https://aspnetboilerplate.com/ 才可以下载       第二步 ,代码整理   下载下来之后分为两个文件夹标准的前后端分离,一个aspnetcore 负责WebAPI提供服务,一个vue前端展示,我自己把这当做两个项目维护,那么git走起来      源码管理还是很有必要的,这样方便随时随地拉代码以及查看变更.       开发   由于abp下载下来自带的是MSSQL数据库,这里我用的mysql所以直接替换掉,教程别人也发过很多了,我就不发了,可以搜 abp数据库修改为mysql关键字   对abp项目不熟悉的人,比如说我,可以从看别人录制好的教程开始,比如角落里的白板报(梁)的知乎, 传送门    网易视频教程地址   项目下载下来直接按照教程创建数据库,还是能很快上手的,还有一个abp的代码生成器,按照abp的格式根据实体生成对应的各层的代码文件,教程里也有详细说明.蛮好用的   只需要安装一下一个扩展就可以      下载完,重启VS完成安装.   使用方式   1 选中要生成逻辑代码的实体类,右键选择使用工具      2 直接选择需要生成的内容,代码就自动生成了.  

abp(net core)+easyui+efcore实现仓储管理系统——使用 WEBAPI实现CURD (十三)

浪子不回头ぞ 提交于 2019-11-27 03:18:32
abp(net core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统——ABP总体介绍(一) abp(net core)+easyui+efcore实现仓储管理系统——解决方案介绍(二) abp(net core)+easyui+efcore实现仓储管理系统——领域层创建实体(三) abp(net core)+easyui+efcore实现仓储管理系统——定义仓储并实现 (四) abp(net core)+easyui+efcore实现仓储管理系统——创建应用服务(五) abp(net core)+easyui+efcore实现仓储管理系统——展现层实现增删改查之控制器(六) abp(net core)+easyui+efcore实现仓储管理系统——展现层实现增删改查之列表视图(七) abp(net core)+easyui+efcore实现仓储管理系统——展现层实现增删改查之增删改视图(八) abp(net core)+easyui+efcore实现仓储管理系统——展现层实现增删改查之菜单与测试(九) abp(net core)+easyui+efcore实现仓储管理系统——使用 WEBAPI实现CURD (十一) abp(net core)+easyui+efcore实现仓储管理系统——使用

Abp OSS

微笑、不失礼 提交于 2019-11-27 00:47:24
官方的文档有个坑。 首先建立的应该是 。net core MPA版本。 把文档上的startup.cs配置写入 MVC 项目中。 这样测试才能通过。不然,测试项目 var disco = await DiscoveryClient.GetAsync("http://localhost:62114"); 这句话返回无效的值 这个端口是MVC的端口。 来源: https://www.cnblogs.com/qgbo/p/11337023.html

X-Admin&ABP框架开发-设置管理

牧云@^-^@ 提交于 2019-11-26 23:35:30
   在网站开发中,设置是不可缺少的一环,如用户设置、系统设置、甚至是租户设置等。ABP对于设置的管理已经做了很好的处理,我们可以借助巨人的力量来完成我们的冒险。   ABP官网地址: https://aspnetboilerplate.com/ 一、设置的层级划分   ABP中提供了三种类型的设置,用户级别、应用级别、租户级别,针对于不同级别有着不同的侧重点,比如用户级别,针对于用户的一些设置,如主题设置,接收通知设置等;针对应用级别,该级别也能在用户层级上进行影响,好比如设置统一的主题皮肤,而它主要体现在整个应用程序上的一些设置,如业务开发中用到的流水号自定义等,在应用程序级别进行配置;而针对租户级别,可以为特定租户完成设置(租户级别个人暂没有涉及到)。    二、定义设置 1、 先得定义设置才能使用设置,首先创建一个类并继承SettingProvider类,ABP已经在Core层创建了一个AppSettingProvider类,直接使用该类即可,如果需要在其它模块中(ABP是模块化的)定义设置,可以直接参照这个类,并且在模块中注册即可。 /// <summary> /// 设置命名 /// </summary> public static class AppSettingNames { /// <summary> /// 系统管理 /// </summary> public

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

一世执手 提交于 2019-11-26 19:01:34
abp(net core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统——ABP总体介绍(一) abp(net core)+easyui+efcore实现仓储管理系统——解决方案介绍(二) abp(net core)+easyui+efcore实现仓储管理系统——领域层创建实体(三) abp(net core)+easyui+efcore实现仓储管理系统——定义仓储并实现 (四) abp(net core)+easyui+efcore实现仓储管理系统——创建应用服务(五) abp(net core)+easyui+efcore实现仓储管理系统——展现层实现增删改查之控制器(六) abp(net core)+easyui+efcore实现仓储管理系统——展现层实现增删改查之列表视图(七) abp(net core)+easyui+efcore实现仓储管理系统——展现层实现增删改查之增删改视图(八) abp(net core)+easyui+efcore实现仓储管理系统——展现层实现增删改查之菜单与测试(九) abp(net core)+easyui+efcore实现仓储管理系统——多语言(十) abp(net core)+easyui+efcore实现仓储管理系统——使用 WEBAPI实现CURD (十一)