摘要:这一篇是接着前一篇在写的。如果没有看过前一篇文章,建议先去看一下前一篇,这儿是传送门 一、前言 前一篇文章,我们从应用启动时异步运行任务开始,说到了必要性,也说到了几种解决方法,及各自的优缺点。最后,还提出了一个比较合理的解决方法:通过在Program.cs里加入代码,来实现IWebHost启动前运 阅读全文
posted @ 2020-09-23 08:37 老王Plus 阅读(270) 评论(2) 推荐(1) 编辑
摘要:这是一个大的题目,需要用几篇文章来说清楚。这是第一篇。 一、前言 在我们的项目中,有时候我们需要在应用程序启动前执行一些一次性的逻辑。比方说:验证配置的正确性、填充缓存、或者运行数据库清理/迁移等。 如何合理、有效、优雅地完成这个任务,是这个文章讨论的主要内容。 要实现这样一个功能,其实我们有几个选 阅读全文
posted @ 2020-09-16 10:53 老王Plus 阅读(658) 评论(0) 推荐(4) 编辑
摘要:想写好中间件,这是基础。 一、前言 今天这个内容,基于于ASP.NET Core 3.x。 从3.x开始,ASP.NET Core使用了通用主机模式。它将WebHostBuilder放到了通用的IHost之上,这样可以确保Kestrel可以运行在IHostedService中。 我们今天就来研究一下 阅读全文
posted @ 2020-09-09 08:10 老王Plus 阅读(584) 评论(1) 推荐(9) 编辑
摘要:异常处理,也可以做得很优雅。 一、前言 异常处理的重要性,老司机都清楚。 这篇文章,我们来理一下Dotnet Core异常处理的几种方式。 Try Catch方式 Exception Filter方式 内建的异常处理中间件 自定义的异常处理中间件 这是目前使用比较多的几种方式。其中,第1、2种其实算 阅读全文
posted @ 2020-08-26 13:28 老王Plus 阅读(205) 评论(1) 推荐(1) 编辑
摘要:理论跟实践的关系,说远不远,说近不近。能不能把理论用到实践上,还真不好说。 通常讲到设计模式,一个最通用的原则是SOLID: S - Single Responsibility Principle,单一责任原则 O - Open Closed Principle,开闭原则 L - Liskov Su 阅读全文
posted @ 2020-08-19 12:48 老王Plus 阅读(801) 评论(6) 推荐(13) 编辑
摘要:公开API的安全,其实更重要。 一、API的安全 作为一个Dotnet Core的老司机,写API时,能兼顾到API的安全,这是一种优雅。 通常,我们会用认证来保证API的安全,无敌的Authorize能解决我们很多的问题。 但是,总有一些场合,我们没办法用Authorize,而只能用匿名或不加验证 阅读全文
posted @ 2020-08-17 12:03 老王Plus 阅读(568) 评论(11) 推荐(7) 编辑
摘要:前文写了关于C#中的异步编程。后台有无数人在讨论,很多人把异步和多线程混了。 文章在这儿:一文说通C#中的异步编程 所以,本文从体系的角度,再写一下这个异步编程。 一、C#中的异步编程演变 1. 异步编程模型 这是C#中早期的异步模型,通过IAsyncResult接口来实现。 实现的代码大体是这个样 阅读全文
posted @ 2020-08-05 11:13 老王Plus 阅读(833) 评论(5) 推荐(11) 编辑
摘要:天天写,不一定就明白。 又及,前两天看了一个关于同步方法中调用异步方法的文章,里面有些概念不太正确,所以整理了这个文章。 一、同步和异步。 先说同步。 同步概念大家都很熟悉。在异步概念出来之前,我们的代码都是按同步的方式写的。简单来说,就是程序严格按照代码的逻辑次序,一行一行执行。 看一段代码: p 阅读全文
posted @ 2020-07-22 10:29 老王Plus 阅读(2155) 评论(14) 推荐(25) 编辑
摘要:DateTime,就是一个世界的大融合。 日期和时间,在我们开发中非常重要。DateTime在C#中,专门用来表达和处理日期和时间。 本文算是多年使用DateTime的一个总结,包括DateTime对象的整体应用,以及如何处理不同的区域、时区、格式等内容。 一、什么是DateTime 跟我们想的不一 阅读全文
posted @ 2020-07-16 10:58 老王Plus 阅读(758) 评论(6) 推荐(10) 编辑
摘要:用C#代替Javascript来做Web应用,是有多爽? 今天聊聊 Blazor。 Blazor 是一个 Web UI 框架。这个框架允许开发者使用 C# 来创建可运行于浏览器的具有完全交互 UI 的 Web 应用。 可以理解为,这是一个 C# 语言的 Vue / Angular / React,可 阅读全文
posted @ 2020-07-08 14:27 老王Plus 阅读(535) 评论(4) 推荐(2) 编辑