摘要: .Net Core之后台任务 .Net Core自带的后台任务可以满足基础需求,而更高级的用法则需要自己实现或使用第三方库,比如Hangfire 自带后台任务(IHostedService) 一次性,周期性,任务队列都可以通过IHostedService快速实现,微软官方文档已经做了很详细的说明,我 阅读全文
posted @ 2021-01-17 08:10 shadowxs 阅读(709) 评论(0) 推荐(0) 编辑
摘要: .Net Core之发送邮件 发送邮件是一个通用功能,这里我们使用MailKit配合Polly做重试 封装EmailSender IEmailSender public interface IEmailSender { Task SendEmailAsync(string to, string su 阅读全文
posted @ 2021-01-17 08:08 shadowxs 阅读(328) 评论(0) 推荐(0) 编辑
摘要: .Net Core之动态多国语言 我封装了一个开源库DynamicLocalizer,方便集成 nuget:https://www.nuget.org/packages/DynamicLocalizer/ github:https://github.com/2kking/DynamicLocaliz 阅读全文
posted @ 2019-03-16 14:37 shadowxs 阅读(193) 评论(0) 推荐(0) 编辑
摘要: .Net Core之Excel(docker) .Net Core 3.0还没有正式发布,目前对UI这一块的支持还不是很完善,但很多也能够支持了,比如说Excel和PDF,我们这里主要利用EPPlus调用Excel文件(docker) docker + .Net Core很好用,但是官方docker 阅读全文
posted @ 2019-03-16 14:20 shadowxs 阅读(87) 评论(0) 推荐(0) 编辑
摘要: .Net Core之RabbitMQ .Net Core下使用RabbitMQ很方便,不过这里还是采用了EasyNetQ这一二次封装的库 EasyNetQ对Rabbit原生接口进行了二次封装,提供了IBus作为入口,入门使用的话更加方便,要想使用,只需要在Startup的时候助于一个Singleto 阅读全文
posted @ 2019-03-16 14:01 shadowxs 阅读(133) 评论(0) 推荐(0) 编辑
摘要: .Net Core之Swagger WebApi + Swagger是绝配,这里主要使用Swashbuckle和NSwag .Net Core WebApi集成Swagger主要使用Swashbuckle,但是Swashbuckle得页面真的比较卡慢,这时候使用NSwag的页面明显流畅得多: pub 阅读全文
posted @ 2019-03-16 13:35 shadowxs 阅读(138) 评论(0) 推荐(0) 编辑
摘要: .Net Core之MongoDB存储文件 MongoDB提供了GridFS来存储文件,我们这里就讨论采用GridFS存储文件的方案 这里主要使用MongoDB.Driver相关库 MongoDB的一些基本使用: public class MongoFileRepo { private IMongo 阅读全文
posted @ 2019-03-16 09:45 shadowxs 阅读(377) 评论(0) 推荐(0) 编辑
摘要: .Net Core之JWT认证方案 .Net Core提供了JWT的认证方案,开箱即用,我们再配合Redis启用黑名单机制,基本可以满足需求 基本功能 开启JWT认证: public void ConfigureServices(IServiceCollection services) { serv 阅读全文
posted @ 2019-03-16 09:22 shadowxs 阅读(210) 评论(0) 推荐(0) 编辑
摘要: EF Core之值转换 有的时候存在数据库里的数据和我们实际应用的是不一样的,以前只能在model里添加一个特殊的字段来手动转化,其实EF Core提供了一种更优雅解决方案—值转换 值转换的应用非常简单,我们这里以TimeSpan数据为例: 如果我们直接存储TimeSpan格式的数据,在SqlSer 阅读全文
posted @ 2019-03-16 07:30 shadowxs 阅读(163) 评论(0) 推荐(0) 编辑
摘要: EF Core之全局删除方案 本文主要对EF Core的级联删除和软删除的全局配置作说明 EF Core的外键默认是级联删除的,如果不想这样就只能手动配置,这里提供一种全局配置的方式: DBContext的OnModelCreating就是我们要处理的地方: protected override v 阅读全文
posted @ 2019-03-16 07:17 shadowxs 阅读(322) 评论(0) 推荐(0) 编辑