摘要: 简述asp.net core中间件的实现思路 一次http请求的过程,就是对一个Request请求进行若干次逻辑处理,并最终设置Response的过程。从代码的实现维度看,由于Request和Response都在HttpContext里,可将此过程表示为“以一个httpContext为输入的委托函数 阅读全文
posted @ 2020-11-27 22:10 MaxBruce 阅读(478) 评论(0) 推荐(0) 编辑
摘要: 标记了async,函数里就可以用await,return的语义也会发生变化,返回类型也必须是Task或者Task<T>。所以这就是个语法而已,不要去对async钻牛角尖。你这个问题就像为什么只有函数里面可以写语句而类里面不行一样。 如果你用了async但是没用await,你也是创造了一个Task类的 阅读全文
posted @ 2020-11-27 21:32 MaxBruce 阅读(306) 评论(0) 推荐(0) 编辑
摘要: 众所周知C#提供Async和Await关键字来实现异步编程。在本文中,我们将共同探讨并介绍什么是Async 和 Await,以及如何在C#中使用Async 和 Await。 同样本文的内容也大多是翻译的,只不过加上了自己的理解进行了相关知识点的补充,如果你认为自己的英文水平还不错,大可直接跳转到文章 阅读全文
posted @ 2020-11-27 21:29 MaxBruce 阅读(1182) 评论(1) 推荐(0) 编辑
摘要: 委托 委托是什么? 委托是一种引用类型(其实就是一个类,继承MulticastDelegate特殊的类。),表示对具有特定参数列表和返回类型的方法的引用。 每个委托提供Invoke方法, BeginInvoke和EndInvoke异步方法 为什么需要委托? 委托可以将方法(即逻辑)作为参数; 逻辑解 阅读全文
posted @ 2020-11-27 20:55 MaxBruce 阅读(158) 评论(0) 推荐(0) 编辑
摘要: .NET多线程是什么? 进程与线程 进程是一种正在执行的程序。 线程是程序中的一个执行流。 多线程是指一个程序中可以同时运行多个不同的线程来执行不同的任务。 .NET中的线程 Thread是创建和控制线程的类。 ManagedThreadId是线程ID。 CurrentThread是获取当前正在运行 阅读全文
posted @ 2020-11-27 20:53 MaxBruce 阅读(581) 评论(0) 推荐(0) 编辑
摘要: 前言 这几天小明又有烦恼了,系统上线一段时间后,系统性能出现了问题,缓存等都用上了,还是不能解决问题。马老板很大气,又买了3台服务器,让小明做个集群分流一下。 集群是什么? 是一种计算机系统,它通过一组松散集成的计算机软件或硬件连接起来高度紧密地协作完成计算工作。将多个物理机器组成一个逻辑计算机,实 阅读全文
posted @ 2020-11-27 20:44 MaxBruce 阅读(579) 评论(0) 推荐(2) 编辑
摘要: 前言 这几天小明又有烦恼了,系统上线一段时间后,系统性能出现了问题,马老板很生气,叫小明一定要解决这个问题。性能问题一般用什么来解决呢?小明第一时间想到了缓存。 什么是缓存 缓存是实际工作中非常常用的一种提高性能的方法。 缓存可以减少生成内容所需的工作,从而显著提高应用程序的性能和可伸缩性。 缓存最 阅读全文
posted @ 2020-11-27 20:42 MaxBruce 阅读(522) 评论(0) 推荐(0) 编辑
摘要: 前言 这几天小明又有烦恼了,之前给小红的接口没有做认证授权,直接裸奔在线上,被马老板发现后狠狠的骂了一顿,赶紧让小明把授权加上。赶紧Baidu一下,发现大家都在用JWT认证授权,这个倒是挺适合自己的。 什么是Token Token是服务端生成的一串字符串,以作客户端进行请求的一个令牌,当第一次登录后 阅读全文
posted @ 2020-11-27 20:41 MaxBruce 阅读(728) 评论(0) 推荐(0) 编辑
摘要: 前言 小明最近又遇到麻烦了,小红希望对接接口传送的数据进行验证,既然是小红要求,那小明说什么都得满足呀,这还不简单嘛。 传统验证 [HttpPost] public async Task<ActionResult<Todo>> PostTodo(Todo todo) { if (string.IsN 阅读全文
posted @ 2020-11-27 20:35 MaxBruce 阅读(656) 评论(0) 推荐(0) 编辑
摘要: 前言 小明目前已经把“待办事项”功能实现了,API文档也搞定了,但是马老板说过,绝对不能让没有任何监控的项目上线的。 Serilog是什么? 在.NET使用日志框架第一时间会想到NLog或是Log4Net,Serilog 是这几年快速崛起的Log框架之一,Serilog是以Structured lo 阅读全文
posted @ 2020-11-27 20:34 MaxBruce 阅读(331) 评论(0) 推荐(0) 编辑
摘要: 前言 小明已经实现“待办事项”的增删改查,并美滋滋向负责前端的小红介绍Api接口,小红很忙,暂时没有时间听小明介绍,希望小明能给个Api文档。对于码农小明来说能不写文档就尽量不要写,不过这也难不倒小明,他知道Swagger不仅可以自动生成Api文档,并还可以用Swagger进行接口测试。 Swagg 阅读全文
posted @ 2020-11-27 20:33 MaxBruce 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 前言 小明已经创建与运行了WebApi项目,了解项目结构有哪些组成,并学会了怎么发布到IIS。基础已经建好,从现在开始要真正实现待办事项的功能了。 新建表 CREATE TABLE [dbo].[Todo]( [Id] [uniqueidentifier] NOT NULL, [Name] [nva 阅读全文
posted @ 2020-11-27 20:32 MaxBruce 阅读(560) 评论(1) 推荐(0) 编辑
摘要: 需求 前几天,马老板给小明和小红一个“待办事项”网站,小明负责后端,小红负责前端,并要求网站可以同时在 Windows、和 Linux 上运行。 小明整理了一下“待办事项”的功能清单: 获取所有待办事项 按 ID 获取项 添加新项 更新现有项 删除项 创建 Web 项目 从“文件”菜单中选择“新建” 阅读全文
posted @ 2020-11-27 20:24 MaxBruce 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 在本章中,我们将介绍垃圾收集的概念,垃圾收集是.NET托管代码平台最重要的特性之一。 垃圾收集器(GC)管理内存的分配和释放。 垃圾收集器用作自动内存管理器。 我们不需要知道如何分配和释放内存或管理使用该内存的对象的生命周期 每当使用new关键字声明对象或将值类型装箱时,都会进行分配。分配通常非常快 阅读全文
posted @ 2020-11-27 19:44 MaxBruce 阅读(254) 评论(0) 推荐(0) 编辑
摘要: 依赖注入 与 MVC 类似, Web API 提供了System.Web.Http.Services.IDependencyResolver 接口来实现依赖注入, 我们可以很容易的用 Unity 来实现这个接口: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 阅读全文
posted @ 2020-11-27 19:37 MaxBruce 阅读(246) 评论(0) 推荐(0) 编辑
摘要: ASP.NET MVC 4 包含了 ASP.NET Web API, 这是一个创建可以连接包括浏览器、移动设备等多种客户端的 Http 服务的新框架, ASP.NET Web API 也是构建 RESTful 服务的理想平台。 ASP.NET Web API 特性 ASP.NET Web API 包 阅读全文
posted @ 2020-11-27 19:25 MaxBruce 阅读(509) 评论(0) 推荐(0) 编辑
摘要: 转自:无废话的wcf等等 在.net平台下,有大量的技术让你创建一个HTTP服务,像Web Service,WCF,现在又出了Web API。在.net平台下,你有很多的选择来构建一个HTTP Services。我分享一下我对Web Service、WCF以及Web API的看法。 Web Serv 阅读全文
posted @ 2020-11-27 07:14 MaxBruce 阅读(407) 评论(0) 推荐(0) 编辑