持续集成之应用k8s自动部署

持续集成之应用k8s自动部署 Intro 上次我们提到了 "docker容器化及自动化部署" ,这仅仅适合个人项目或者开发环境部署,如果要部署到生产环境,必然就需要考虑很多因素,比如访问量大了如何调整部署,如何更好的应对大并发的情况,如何不停机更新应用,如果想要将Docker应用于具体的业务实现,是 ...

WeihanLi @ 2019/04/08

持续集成之 Nuget 进阶

持续集成之 Nuget 进阶 Intro 之前介绍了一篇基于 Azure pipeline 的 nuget 包的持续集成配置,但是比较粗糙,这里介绍一下结合 Cake 实现更优雅的 nuget 包发布流程。 实现目标: 1. 分支(除master/preview)有代码 push 或者 pr 时 自 ...

WeihanLi @ 2019/04/08

写个重新加载 ocelot 配置的接口

写个重新加载 ocelot 配置的接口 Intro 我们想把 ocelot 的配置放在自己的存储中,放在 Redis 或者数据库中,当修改了 Ocelot 的配置之后希望即时生效,又不想在网关这边定时刷新 ocelot 配置,ocelot 配置没变化的时候,定时刷新配置是一种无意义的资源浪费,oce ...

WeihanLi @ 2019/03/20

使用 HttpRequester 更方便的发起 HTTP 请求

使用 HttpRequester 更方便的发起 HTTP 请求 Intro 一直感觉 .net 里面(这里主要说的是 .net framework 下)发送 HTTP 请求的方式用着不是特别好用,而且在 .net framework 里发送 HTTP 请求的方式有好几种,如: /`WebReques ...

WeihanLi @ 2019/03/17

asp.net core 将配置文件配置迁移到数据库(一)

asp.net core 将配置文件配置迁移到数据库(一) Intro asp.net core 配置默认是项目根目录下的 appsettings.json 文件,还有环境变量以及 command line arguments,有一些链接字符串等信息可能放在数据库里更好一些,也方便修改与维护,有的配 ...

WeihanLi @ 2019/03/07

ocelot 自定义认证和授权

ocelot 自定义认证和授权 Intro 最近又重新启动了网关项目,服务越来越多,每个服务都有一个地址,这无论是对于前端还是后端开发调试都是比较麻烦的,前端需要定义很多 baseUrl,而后端需要没有代码调试的时候需要对每个服务的地址都收藏着或者记在哪里,用的时候要先找到地址,甚是麻烦,有了网关之 ...

WeihanLi @ 2019/03/07

asp.net core 自定义认证方式--请求头认证

asp.net core 自定义认证方式 请求头认证 Intro 最近开始真正的实践了一些网关的东西,最近写几篇文章分享一下我的实践以及遇到的问题。 本文主要介绍网关后面的服务如何进行认证。 解决思路 网关可以做一部分的认证和授权,服务内部有时候也会需要用户的信息,这时该怎么办呢,我们使用的是 JW ...

WeihanLi @ 2019/03/03

通过 Azure Pipelines 实现持续集成之docker容器化

通过 Azure Pipelines 实现持续集成之docker容器化 Intro Azure DevOps Pipeline 现在对于公开的项目完全免费,这对于开源项目来讲无疑是个巨大的好消息,在 Github 的 Marketplace 里有个 Azure Pipeline,就是微软的 Azur ...

WeihanLi @ 2019/03/03

asp.net core 集成 log4net 日志框架

在 asp.net core 中有些日志我们可能想输出到数据库或文件或elasticsearch等,如果不自己去实现一个 LoggerProvider 的话就需要借助第三方日志框架实现了,而一些第三方框架的实现大多比较完善和成熟,不失为一个好办法。 自己写了一个 log4net 的扩展 Weiha... ...

WeihanLi @ 2019/03/01

log4net使用封装,无缝切换 dotnet 和 dotnetcore

自己有几个自己的小项目,有许多公用的方法/扩展/工具类等等,于是封装了一些常用的工具类/扩展方法做了一个类库 WeihanLi.Common,日志使用了自己比较常用的 log4net,开始默认使用的log4net进行处理日志,在1.0.12版本之前直接依赖 log4net,后来觉得这样做不太好,一是... ...

WeihanLi @ 2019/03/01

使用 certbot 申请泛域名https证书

使用 certbot 申请泛域名https证书 Intro Certbot 是一个基于 的自动化申请证书的工具,支持的系统和web server也很多,详见 "Certbot 官网" Certbot 有一些 dns 插件可以自动化的不需要手动设置 dns 等方式来验证域名的所属,但是基本是一些国外的 ...

WeihanLi @ 2019/02/24

StackExchange.Redis中文使用文档

StackExchange.Redis中文使用文档 Intro 最近想深入学习一些 Redis 相关的东西。于是看了看官方的项目 "StackExchange" ,发现里面有一份文档,于是打算翻译成中文,方便大家学习参考,如果有什么翻译不准确的地方,欢迎大家指出。 StackExchange.Red ...

WeihanLi @ 2019/02/22

在 asp.net core 中使用类似 Application 的服务

在 asp.net 中,我们可以借助 Application 来保存一些服务器端全局变量,比如说服务器端同时在线的人数计数,比如一些网站的配置信息。 在 ASP.NET 应用中,之前开发的活动室预约系统把网站的 keyword 以及 Title 等信息,在网站启动的时候会从数据库加载配置并保存到 A... ...

WeihanLi @ 2019/02/19

不一样的 SQL Server 日期格式化

最近统计一些数据,需要按天/按小时/按分钟来统计,涉及到一些日期的格式化,网上看了一些文章大部分都是使用 `CONVERT` 来转换的,SQL Server 从 2012 开始增加了 `FORMAT` 方法,可以使用 `FORMAT` 来格式化日期,更标准化,更具可定制性,而且和 C# 里的日期格式... ...

WeihanLi @ 2019/02/18

asp.net core根据用户权限控制页面元素的显示

在 web 应用中我们经常需要根据用户的不同允许用户访问不同的资源,显示不同的内容,之前做了一个 AccessControlHelper 的项目,就是解决这个问题的。 asp.net core 支持 TagHelper 和 基于 Policy 的认证 AccessControlHelper 从1... ...

WeihanLi @ 2019/01/28

如何为 .NET Core CLI 启用 TAB 自动补全功能

在 Linux 下经常可以发现有些目录/文件名,以及有些工具可以命令输入几个字母之后按 TAB 自动补全,最近发现其实 dotnet cli 也可以,从.NET Core 2.0 SDK 开始,NET Core CLI 支持 tab 自动补全。你如果已经装了 dotnet Core Sdk,但是不知... ...

WeihanLi @ 2019/01/26

Http 压测工具 wrk 基本使用

Http 压测工具 wrk 基本使用 Intro wrk 是一款现代HTTP基准测试工具,能够在单个多核CPU上运行时产生显着负载。它将多线程设计与可扩展事件通知系统(如epoll和kqueue)结合在一起。 官方描述: wrk is a modern HTTP benchmarking tool ...

WeihanLi @ 2019/01/26

使用 WeihanLi.Npoi 操作 CSV

最近发现 csv 文件在很多情况下都在使用,而且经过大致了解,csv 格式简单,相比 excel 文件要小很多,读取也很是方便,而且也很通用,微软的 [ml.net](https://github.com/dotnet/machinelearning) 的[示例项目](https://github.... ...

WeihanLi @ 2019/01/21

给IConfiguration写一个GetAppSetting扩展方法

给 写一个 扩展方法 Intro 在 .net core 中,微软已经默认使用 appsettings.json 来代替 app.config,并重新设计了一套完整的配置系统,可以支持 json/xml/ini/环境变量等。 在 .net core 中有一个 的扩展方法用来比较方便的获取链接字符串, ...

WeihanLi @ 2019/01/18

EFCore使用JSON_VALUE查询json对象的值

EFCore使用JSON_VALUE查询json对象的值 Intro SqlServer 从2016开始支持 JSON 操作,可以使用 JSON_VALUE 查询 JSON 对象的某个属性值, "更多介绍" ,现在公司的一些项目主要是使用 EF Core,手写sql较少,针对比较简单的 JSON_V ...

WeihanLi @ 2019/01/16