随笔分类 - ABP(ASP.NET Boilerplate)
摘要:介绍 每个应用程序都需要存储一些设置,并在应用程序的某个地方使用这些设置。ABP提供了一个强大的基础设施来存储/检索在服务器端和客户端都可用的应用程序、租户和用户级别设置。 设置是通常存储在数据库(或其他数据源)中的名称-值字符串对。我们可以通过将非字符串值转换为字符串来存储它。 关于ISettin
阅读全文
摘要:服务器端 ABP使用Castle Windsor的日志设施。它可以使用不同的日志库:Log4Net、NLog、Serilog等等。Castle为所有日志程序库提供了一个公共接口,这样,我们可以独立的使用某个日志库,并且随时可以变成另外的日志库。 Log4Net是.NET最流行的日志库之一,ABP模板
阅读全文
摘要:简介 ABP提供缓存抽象,默认使用MemoryCache。但是可以替换成其他缓存程序,比如 Abp.RedisCache 是使用Redis实现缓存。 ICacheManager 缓存的主要接口是ICacheManager,我们可以使用它来获得缓存,比如: 在本例中,我们将注入ICacheManage
阅读全文
摘要:ABP提供了一个IAbpSession接口,可以在不使用ASPNET的session的情况下获取当前用户和租户。IAbpSession还被ABP中的其他结构(如设置和授权系统)完全集成和使用。 注入session IAbpSession通常是注入到所需类的属性,除非在没有会话信息的情况下无法工作。如
阅读全文
摘要:维基百科中说“依赖注入是一种软件设计模式,在这种模式中,一种或多种依赖项(或服务)被注入,或者通过引用传递到一个依赖对象(或客户端),并成为客户端状态的一部分,这种模式将客户端依赖的创建和其自身行为分离开来,允许程序设计松散耦合,遵循依赖注入和单一责任原则。它直接对比了服务定位模式,该模式允许客户了
阅读全文
摘要:虽然通常情况下不需要,但是Abp还是提供了能在调试项目中进入Abp源码的方法。、 所有的ABP NuGet包都启用了源码连接。这意味着我们可以在我们的项目中调试ABP源码,要启用它,更改Visual Studio(2017+)调试选项如下: 启用它之后,就可以用F11跳进ABP源码了!!!!
阅读全文
摘要:如果在应用程序中同时使用ASP.NET MVC 和 ASP.NET Web API,你需要使用Nuget管理器将Abp.Owin添加到自己的项目中。 安装 使用下面的命令安装: 运用 调用OWIN启动文件中的UseAbp()扩展方法,如下所示: 如果只使用OWIN(比方说,在一个自己托管的Web A
阅读全文
摘要:“软件多租户”指的是一种软件架构,一个软件实例在一个服务器上运行,但为多个租户服务。租户们对软件实例有通用的访问入口,但是每个租户都有特定的权限。 在多租户体系架构中,用程序旨在为每个租户提供一个专用的实例共享,包括其数据*、配置、用户管理、租户个人功能和非功能属性。 多租户与多实例体系结构形成对比
阅读全文
摘要:ASP.NET Boilerplate提供了在StartUp中配置其模块的基础设施和模型。 配置ASP.NET Boilerplate 配置ABP是在模块的PreInitialize 方法中做的,如下所示: ABP的设计考虑到了模块化,可以配置不同的模块。比如模块可以添加导航提供者在主菜单中添加自己
阅读全文
摘要:简介 ASP.NET Boilerplate提供了构建模块的基础结构,并将它们组合在一起以创建应用程序。 模块可以依赖于另一个模块。 通常,一个程序集被视为一个模块。 如果创建具有多个程序集的应用程序,建议您为每个程序集创建一个模块定义。 模块系统目前专注于服务端,而不是客户端。 模块定义 定义一个
阅读全文
摘要:介绍 应用程序代码库的分层是一种广泛接受的技术,有助于降低复杂性并提高代码的可重用性。 为了实现分层体系结构,ASP.NET Boilerplate遵循领域驱动设计(DDD)的原则。 领域驱动设计(DDD) 领域驱动设计有四个基本层 表现层:提供用户界面,并使用应用层来进行用户交互 应用层:相当于表
阅读全文
摘要:1.介绍 ABP是开源的且文档比较齐全的应用程序框架。其实它不仅仅是个框架,考虑其最佳实践,ABP更提供了基于领域驱动设计(DDD)的强大价格模型。 ABP支持最新的ASP.NET Core和EF Core,同时也支持ASP.NET MVC 5.x和EF 6.x. 2.快速看一个示例 上面是一个Ap
阅读全文
摘要:在上一篇如何使用ASP.NET Core、EF Core、ABP(ASP.NET Boilerplate)创建分层的Web应用程序(第一部分)我们介绍了第一部分,这一篇是接着上一篇的内容写的。 创建Person实体 添加一个Person实体,用于分配任务: 这次我设置主键Id的类型为Guid,为了进
阅读全文
摘要:本文是为了学习ABP的使用,是翻译ABP官方文档的一篇实战教程,我暂时是优先翻译自己感兴趣或者比较想学习的部分,后续有时间希望能将ABP系列翻译出来,除了自己能学习外,有可能的话希望帮助一些英文阅读能力稍微差一点的同学(当然我自己也不一定翻译的多好,大家共同学习)。 其实这篇文章也花了我一些时间,突
阅读全文

浙公网安备 33010602011771号