Loading

随笔分类 -  .NET

摘要:日志组件有很多,比如 `log4net` / `nlog` / `serilog` / `microsoft.extensions.logging` 等,如何在切换日志组件的时候做到不用修改代码,只需要切换不同的 `loggingProvider` 就可以了,最低成本的降低切换日志框架的成本,处于这个考虑自己写了一个日志组件,为不同的日志框架写一个适配,需要用到什么日志框架,配置一下就可以了,业务代码无需变动。 阅读全文
posted @ 2020-01-01 11:38 WeihanLi 阅读(1320) 评论(5) 推荐(6) 编辑
摘要:asp.net core 自定义基于 HttpContext 的 Serilog Enricher Intro 通过 HttpContext 我们可以拿到很多有用的信息,比如 Path/QueryString/RequestHeader 等请求信息, StatusCode/ResponseHeade 阅读全文
posted @ 2019-12-27 00:16 WeihanLi 阅读(1343) 评论(0) 推荐(5) 编辑
摘要:使用 Ocelot 匹配路由的方法匹配路由 Intro 之前我们在 Ocelot 网关的基础上 "自定义了一个认证授权的 Ocelot 中间件" ,根据请求的路径和 Method 进行匹配,找到对应的权限配置,并判断是否可以拥有访问资源的角色,如果没有则返回 401/403,如果有权限则转发到下游服 阅读全文
posted @ 2019-12-15 13:56 WeihanLi 阅读(2156) 评论(1) 推荐(2) 编辑
摘要:在 EF 里有个 `ShadowProperty` (阴影属性/影子属性)的概念,你可以通过 FluentAPI 的方式来定义一个不在 .NET model 里定义的属性,只能通过 EF 里的 `Change Tracker` 来操作这种属性。 在导出 Excel 的时候,可能希望导出的列并不是都定义好在我们的 model 中的,有的可能只是想增加一列导出某个属性中的嵌套属性之中的某一个属性值,或者我就是单纯的想多定义一列,而这个时候可能 model 是别的地方写死的,不方便改。 于是 `WeihanLi.Npoi` 从 1.6.0 版本开始支持 `ShadowProperty` ,将 EF 里的 `ShadowProperty` 引入到 excel 导出里。 阅读全文
posted @ 2019-12-13 08:48 WeihanLi 阅读(587) 评论(1) 推荐(4) 编辑
摘要:asp.net core 从 3.0 更新到 3.1 阅读全文
posted @ 2019-12-05 00:25 WeihanLi 阅读(7618) 评论(9) 推荐(9) 编辑
摘要:认证与授权一直以来都是很多人在讨论的话题,之所以想这次谈一谈认证和授权,主要是因为最近看到许多文章都把认证和授权混为一谈,把认证方式当作是授权方式。所以想写篇文章谈谈我眼中的认证与授权 阅读全文
posted @ 2019-12-03 20:38 WeihanLi 阅读(1382) 评论(2) 推荐(3) 编辑
摘要:之前实现的那版依赖注入框架基本可用,但是感觉还是不够灵活,而且注册服务和解析服务在同一个地方感觉有点别扭,有点职责分离不够。于是借鉴 Autofac 的做法,增加了一个 `ServiceContainerBuilder` 来负责注册服务,`ServiceContainer`负责解析服务,并且增加了一个 `ServiceContainerModule` 可以支持像 Autofac 中 `Module`/` RegisterAssemblyModules ` 一样注册服务 阅读全文
posted @ 2019-11-28 18:55 WeihanLi 阅读(1231) 评论(0) 推荐(0) 编辑
摘要:最近项目里有遇到一些并发的问题,想实现一个队列来将并发的请求一个一个串行处理,可以理解为使用消息队列处理并发问题,之前实现过一个简单的 `EventBus`,于是想在 `EventBus` 的基础上改造一下,加一个队列,改造成类似消息队列的处理模式。消息的处理(Consumer)直接使用 .netcore 里的 `IHostedService` 来实现了一个简单的后台任务处理。 阅读全文
posted @ 2019-11-24 09:53 WeihanLi 阅读(2086) 评论(0) 推荐(2) 编辑
摘要:asp.net core 自定义 Policy 替换 AllowAnonymous 的行为 Intro 最近对我们的服务进行了改造,原本内部服务在内部可以匿名调用,现在增加了限制,通过 identity server 来管理 api 和 client,网关和需要访问api的客户端或api服务相互调用 阅读全文
posted @ 2019-11-20 23:12 WeihanLi 阅读(1530) 评论(2) 推荐(10) 编辑
摘要:SQL Server 中 的使用 Intro SQL Server 从 2016 开始支持了一些 JSON操作,最近的项目里也是好多地方字段直接存成了 JSON,需要了解一下怎么在SQL Server 中操作 JSON. JSON支持适用于 SQL Server 2016 及以上版本 和 Azure 阅读全文
posted @ 2019-11-13 22:37 WeihanLi 阅读(2392) 评论(0) 推荐(2) 编辑
摘要:最近对我的 NPOI 扩展做了一些改变,一方面提高性能,一方面修复bug,增加一些新的功能来让它更加好用,前几天发布了 1.5.0 版本,下面来介绍一下最近的更新 阅读全文
posted @ 2019-11-11 23:12 WeihanLi 阅读(1420) 评论(6) 推荐(4) 编辑
摘要:网上看到很多人说 NPOI 的性能不行,自己写了一个 NPOI 的扩展库,于是想尝试看看 NPOI 的性能究竟怎么样,道听途说始终不如自己动手一试。 阅读全文
posted @ 2019-11-08 19:38 WeihanLi 阅读(1832) 评论(0) 推荐(1) 编辑
摘要:优化 .net core 应用的 dockerfile 阅读全文
posted @ 2019-11-01 18:46 WeihanLi 阅读(3704) 评论(9) 推荐(2) 编辑
摘要:动手造轮子:实现一个简单的依赖注入(一) 阅读全文
posted @ 2019-10-28 23:36 WeihanLi 阅读(1804) 评论(6) 推荐(7) 编辑
摘要:动手造轮子:实现一个简单的依赖注入 整体设计和编程体验 阅读全文
posted @ 2019-10-27 16:22 WeihanLi 阅读(2485) 评论(0) 推荐(2) 编辑
摘要:由于项目需要,需要在基于 asp.net mvc 的 Web 项目框架中做权限的控制,于是才有了这个权限控制组件,最初只是支持 netframework,后来 dotnetcore 2.0 发布了之后添加了对 asp.net core 的支持,在 dotnetcore 3.0 发布之后也增加了对 asp.net core 3.0 的支持(1.9.0及之后版本),目前对于 asp.net core 支持的更多一些,asp.net core 可以使用 TagHelper 来控制页面上元素的权限访问,也可以通过 Policy 来控制权限访问,同时支持通过中间件也可以实现对静态资源的访问 阅读全文
posted @ 2019-10-20 17:45 WeihanLi 阅读(2294) 评论(0) 推荐(6) 编辑
摘要:asp.net core 3.0 中使用 swagger 阅读全文
posted @ 2019-10-18 19:20 WeihanLi 阅读(10095) 评论(12) 推荐(16) 编辑
摘要:asp.net core 腾讯验证码的接入 阅读全文
posted @ 2019-10-18 14:37 WeihanLi 阅读(1321) 评论(0) 推荐(3) 编辑
摘要:asp.net core 使用 signalR(二) Intro 上次介绍了 asp.net core 中使用 signalR 服务端的开发,这次总结一下web前端如何接入和使用 signalR,本文主要分两部分,一是直接使用 这个微软开发好的 signalR 的客户端,另一部分是使用 h5 原生的 阅读全文
posted @ 2019-09-18 00:44 WeihanLi 阅读(2591) 评论(0) 推荐(2) 编辑
摘要:asp.net core 使用 signalR(一) Intro SignalR 是什么? ASP.NET Core SignalR 是一个开源代码库,它简化了向应用添加实时 Web 功能的过程。 实时 Web 功能使服务器端代码能够即时将内容推送到客户端。 SignalR 的适用对象: 需要来自服 阅读全文
posted @ 2019-09-15 14:21 WeihanLi 阅读(5213) 评论(1) 推荐(3) 编辑