-
asp.net core 从 3.0 到 3.1
所属栏目:[asp.Net] 日期:2020-12-16 热度:135
asp.net core 从 3.0 到 3.1 Intro 今天 .net core 3.1 正式发布了,.net core 3.1 正式版已发布,3.1 主要是对 3.0 的 bug 修复,以及一些小优化,而且作为 LTS 版本,建议大家升级。值得一提的是.net core 2.2 这个月就要寿终正寝了,微软将不再提供支持,[详细]
-
WeihanLi.Npoi 根据模板导出Excel
所属栏目:[asp.Net] 日期:2020-12-16 热度:104
WeihanLi.Npoi 根据模板导出Excel Intro 原来的导出方式比较适用于比较简单的导出,每一条数据在一行,数据列虽然自定义程度比较高,如果要一条数据对应多行就做不到了,于是就想支持根据模板导出,在 1.8.0 版本中引入了根据模板导出的功能 使用示例 示例模[详细]
-
使用 Ocelot 匹配路由的方法匹配路由
所属栏目:[asp.Net] 日期:2020-12-16 热度:77
使用 Ocelot 匹配路由的方法匹配路由 Intro 之前我们在 Ocelot 网关的基础上自定义了一个认证授权的 Ocelot 中间件,根据请求的路径和 Method 进行匹配,找到对应的权限配置,并判断是否可以拥有访问资源的角色,如果没有则返回 401/403,如果有权限则转发到[详细]
-
动手造轮子:实现一个简单的依赖注入(一)
所属栏目:[asp.Net] 日期:2020-12-16 热度:96
动手造轮子:实现一个简单的依赖注入(一) Intro 在上一篇文章中主要介绍了一下要做的依赖注入的整体设计和大概编程体验,这篇文章要开始写代码了,开始实现自己的依赖注入框架。 类图 首先来温习一下上次提到的 UML 类图 服务生命周期 服务生命周期定义: pu[详细]
-
漫谈认证与授权
所属栏目:[asp.Net] 日期:2020-12-16 热度:164
漫谈认证与授权 Intro 认证与授权一直以来都是很多人在讨论的话题,之所以想这次谈一谈认证和授权,主要是因为最近看到许多文章都把认证和授权混为一谈,把认证方式当作是授权方式。所以想写篇文章谈谈我眼中的认证与授权 Authentication 什么是认证? 认证[详细]
-
优化 .net core 应用的 dockerfile
所属栏目:[asp.Net] 日期:2020-12-16 热度:101
优化 .net core 应用的 dockerfile Intro 在给 .net core 应用的写 dockerfile 的时候一直有个苦恼,就是如果有很多个项目,在 dockerfile 里写起来就会很繁琐,有很多项目文件要 copy,dockerfile 还不支持直接批量复制项目文件,今天要改的一个项目也是有[详细]
-
asp.net core 使用 AccessControlHelper 控制访问权限
所属栏目:[asp.Net] 日期:2020-12-16 热度:163
asp.net core 使用 AccessControlHelper 控制访问权限 Intro 由于项目需要,需要在基于 asp.net mvc 的 Web 项目框架中做权限的控制,于是才有了这个权限控制组件,最初只是支持 netframework,后来 dotnetcore 2.0 发布了之后添加了对 asp.net core 的支持[详细]
-
用 C# 写一个 Redis 数据同步小工具
所属栏目:[asp.Net] 日期:2020-12-16 热度:117
用 C# 写一个 Redis 数据同步小工具 Intro 为了实现 redis 的数据迁移而写的一个小工具,将一个实例中的 redis 数据同步到另外一个实例中。(原本打算找一个已有的工具去做,找了一个 nodejs 的小工具,结果折腾了好久都没装上。。。于是就自己写了这个小工具[详细]
-
asp.net core 自定义基于 HttpContext 的 Serilog Enricher
所属栏目:[asp.Net] 日期:2020-12-16 热度:100
asp.net core 自定义基于 HttpContext 的 Serilog Enricher Intro 通过 HttpContext 我们可以拿到很多有用的信息,比如 Path/QueryString/RequestHeader 等请求信息,StatusCode/ResponseHeader 等响应信息,借助 HttpContext 我们可以在日志中记录很多有用的[详细]
-
asp.net core 实现支持多语言
所属栏目:[asp.Net] 日期:2020-12-16 热度:100
asp.net core 实现支持多语言 Intro 最近有一个外国友人通过邮件联系我,想用我的活动室预约,但是还没支持多语言,基本上都是写死的中文,所以最近想支持一下更多语言,于是有了多语言方面的一些实践 国际化/本地化介绍 国际化(Globalization)和本地化(L[详细]
-
SQL Server 中 `JSON_MODIFY` 的使用
所属栏目:[asp.Net] 日期:2020-12-16 热度:108
SQL Server 中 JSON_MODIFY 的使用 Intro SQL Server 从 2016 开始支持了一些 JSON操作,最近的项目里也是好多地方字段直接存成了 JSON,需要了解一下怎么在SQL Server 中操作 JSON. JSON支持适用于 SQL Server 2016 及以上版本 和 Azure SQL Database。 最[详细]
-
NPOI 导出 excel 性能测试
所属栏目:[asp.Net] 日期:2020-12-16 热度:57
NPOI 导出 excel 性能测试 Intro 网上看到很多人说 NPOI 的性能不行,自己写了一个 NPOI 的扩展库,于是想尝试看看 NPOI 的性能究竟怎么样,道听途说始终不如自己动手一试。 测试环境 测试工具: BenchmarkDotNet v0.11.5 EPPlus.Core.Extensions v2.3.2 EPP[详细]
-
WeihanLi.Npoi 支持 ShadowProperty 了
所属栏目:[asp.Net] 日期:2020-12-16 热度:191
WeihanLi.Npoi 支持 ShadowProperty 了 Intro 在 EF 里有个 ShadowProperty (阴影属性/影子属性)的概念,你可以通过 FluentAPI 的方式来定义一个不在 .NET model 里定义的属性,只能通过 EF 里的 Change Tracker 来操作这种属性。 在导出 Excel 的时候,可能[详细]
-
动手造轮子:实现一个简单的依赖注入(零)
所属栏目:[asp.Net] 日期:2020-12-16 热度:183
动手造轮子:实现一个简单的依赖注入(零) Intro 依赖注入为我们写程序带来了诸多好处,在微软的 .net core 出来的同时也发布了微软开发的依赖注入框架 Microsoft.Extensions.DependencyInjection,大改传统 asp.net 的开发模式,asp.net core 的开发更加现代[详细]
-
asp.net core 自定义 Policy 替换 AllowAnonymous 的行为
所属栏目:[asp.Net] 日期:2020-12-16 热度:152
asp.net core 自定义 Policy 替换 AllowAnonymous 的行为 Intro 最近对我们的服务进行了改造,原本内部服务在内部可以匿名调用,现在增加了限制,通过 identity server 来管理 api 和 client,网关和需要访问api的客户端或api服务相互调用通过 client_creden[详细]
-
WeihanLi.Npoi 1.7.0 更新
所属栏目:[asp.Net] 日期:2020-12-16 热度:175
WeihanLi.Npoi 1.7.0 更新介绍 Intro 昨天晚上发布了 WeihanLi.Npoi 1.7.0 版本,增加了 ColumnInputFormatter / ColumnOutputFormatter ,又进一步增强了导入导出的灵活性,来看下面的示例 ColumnInputFormatter/ColumnOutputFormatter 示例 Model: interna[详细]
-
动手造轮子:实现简单的 EventQueue
所属栏目:[asp.Net] 日期:2020-12-16 热度:148
动手造轮子:实现简单的 EventQueue Intro 最近项目里有遇到一些并发的问题,想实现一个队列来将并发的请求一个一个串行处理,可以理解为使用消息队列处理并发问题,之前实现过一个简单的 EventBus ,于是想在 EventBus 的基础上改造一下,加一个队列,改造[详细]
-
动手造轮子:写一个日志框架
所属栏目:[asp.Net] 日期:2020-12-16 热度:178
动手造轮子:写一个日志框架 Intro 日志框架有很多,比如 log4net / nlog / serilog / microsoft.extensions.logging 等,如何在切换日志框架的时候做到不用修改代码,只需要切换不同的 loggingProvider 就可以了,最低成本的降低切换日志框架的成本,处于这[详细]
-
动手造轮子:实现一个简单的依赖注入(二) --- 服务注册优化
所属栏目:[asp.Net] 日期:2020-12-16 热度:51
动手造轮子:实现一个简单的依赖注入(二) --- 服务注册优化 Intro 之前实现的那版依赖注入框架基本可用,但是感觉还是不够灵活,而且注册服务和解析服务在同一个地方感觉有点别扭,有点职责分离不够。于是借鉴 Autofac 的做法,增加了一个 ServiceContainerB[详细]
-
WeihanLi.Npoi 近期更新
所属栏目:[asp.Net] 日期:2020-12-16 热度:93
WeihanLi.Npoi 近期更新 Intro 最近对我的 NPOI 扩展做了一些改变,一方面提高性能,一方面修复bug,增加一些新的功能来让它更加好用,前几天发布了 1.5.0 版本,下面来介绍一下最近的更新 默认导入/导出格式变更 在 1.5.0 版本中,将默认导入/导出的excel格[详细]
-
asp.net core 使用 signalR(二)
所属栏目:[asp.Net] 日期:2020-12-16 热度:62
asp.net core 使用 signalR(二) Intro 上次介绍了 asp.net core 中使用 signalR 服务端的开发,这次总结一下web前端如何接入和使用 signalR,本文主要分两部分,一是直接使用 @aspnet/signalr 这个微软开发好的 signalR 的客户端,另一部分是使用 h5 原生[详细]
-
asp.net core 从单机到集群
所属栏目:[asp.Net] 日期:2020-12-16 热度:61
asp.net core 从单机到集群 Intro 这篇文章主要以我的活动室预约的项目作为示例,看一下一个 asp.net core 应用从单机应用到分布式应用需要做什么。 示例项目 活动室预约提供了两个版本,集群版 和 单机版 单机版方便部署,不依赖其他环境,数据库使用的是 s[详细]
-
asp.net mvc 自定义pager封装与优化
所属栏目:[asp.Net] 日期:2020-12-16 热度:77
asp.net mvc 自定义pager封装与优化 Intro 之前做了一个通用的分页组件,但是有些不足,从翻页事件和分页样式都融合在后台代码中,到翻页事件可以自定义,再到翻页和样式都和代码分离, 自定义分页 pager 越来越容易扩展了。 HtmlHelper Pager扩展 Pager V1.[详细]
-
走进 .Net 单元测试
所属栏目:[asp.Net] 日期:2020-12-16 热度:125
走进 .Net 单元测试 Intro “不会写单元测试的程序员不是合格的程序员,不写单元测试的程序员不是优秀程序员。” —— 一只想要成为一个优秀程序员的渣逼程序猿。 那么问题来了,什么是单元测试,如何做单元测试。 单元测试定义 按照维基百科上的说法,单元[详细]
-
asp.net core 使用 signalR(一)
所属栏目:[asp.Net] 日期:2020-12-16 热度:116
asp.net core 使用 signalR(一) Intro SignalR 是什么? ASP.NET Core SignalR 是一个开源代码库,它简化了向应用添加实时 Web 功能的过程。 实时 Web 功能使服务器端代码能够即时将内容推送到客户端。 SignalR 的适用对象: 需要来自服务器的高频率更新的[详细]