摘要:
本文是一篇偏实战的博客,完整项目下载地址:https://gitee.com/hanyixuan_net/donet-core 我们将演示如何在ASP.NET CORE3.1 API中使用JWT(JSON Web Token)身份认证。 本次示例有两个路由,以演示如何使用JWT进行身份验证和使用JW 阅读全文
摘要:
.NET Core 3.0和C# 8.0最激动人心的特性之一就是IAsyncEnumerable<T>(也就是async流)。但它有什么特别之处呢?我们现在可以用它做哪些以前不可能做到的事? 在本文中,我们将了解IAsyncEnumerable<T>要解决哪些挑战,如何在我们自己的应用程序中实现它, 阅读全文
摘要:
不知道大家在使用继承的过程中有木有遇到过调用构造函数时没有按照我们预期的那样执行呢?一般情况下,出现这样的问题往往是因为类继承结构中的某个基类没有被正确实例化,或者没有正确给基类构造函数提供信息,如果理解在对象生命周期的这个阶段发生的事情,将更利于解决此类问题。 为了实例化派生的类,必须先实例化它的 阅读全文
摘要:
大家可能在编码中或多或少的使用过out的ref,但是是否注意过他两的详细用法以及区别? 本文想介绍下详细介绍下out参数,ref参数以及一般值参数。 值参数 在使用参数时,把一个值传递给函数使用的一个变量。在函数中对此变量的任何修改都不影响函数调用中指定的参数。如下面的函数,是使函数是使传递过来的参 阅读全文
摘要:
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 阅读全文
摘要:
本文是为了学习ABP的使用,是翻译ABP官方文档的一篇实战教程,我暂时是优先翻译自己感兴趣或者比较想学习的部分,后续有时间希望能将ABP系列翻译出来,除了自己能学习外,有可能的话希望帮助一些英文阅读能力稍微差一点的同学(当然我自己也不一定翻译的多好,大家共同学习)。 其实这篇文章也花了我一些时间,突 阅读全文
摘要:
介绍 每个应用程序都需要存储一些设置,并在应用程序的某个地方使用这些设置。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 阅读全文