随笔分类 - 01.2-.NET Core知识点
摘要:源代码的动态编译问题,我们知道这个可以利用Roslyn来解决。 实现一个编译助手类,它的Compile方法将会对参数sourceCode提供的源代码进行编译。该方法返回源代码动态编译生成的程序集,它的第二个参数代表引用的程序集。 添加Nuget包: <PackageReference Include
阅读全文
摘要:WebMarkupMin可以做什么: 运行时最小化html、css、js(去除空格、注释...) 对HTTP启用压缩(GZip、Deflate、Brotli..) 使用步骤: 添加Nuget包: <PackageReference Include="WebMarkupMin.AspNet.Brotl
阅读全文
摘要:一、前言 源码 1、最近一直在看项目性能优化方式,俗话说的好项目优化第一步那当然是添加缓存,我们的项目之所以卡的和鬼一样,要么就是你的代码循环查询数据库(这个之前在我们的项目中经常出现,现在慢慢在修正)或者代码做了很多不该做的事情。这个时候就可以引入我们的缓存了。(只要你的代码不是写的特别差,比如之
阅读全文
摘要:概述 分布式锁是一种用于协调多个进程/节点之间的并发访问的机制,确保某个资源在同一时刻只能被一个应用所使用。它通常通过一些共享的外部存储系统来实现跨进程的同步和互斥。在分布式系统中,分布式锁用于确保在同一时间,只有一个进程/服务可以执行临界区代码,从而避免了并发操作中的冲突和数据不一致。 Distr
阅读全文
摘要:实现一个.net framework中Server功能 ConfigureWebServices(this IServiceCollection services){ services.AddSingleton(typeof(HttpServerUtilityBase)); } /// <summa
阅读全文
摘要:同源策略 同源策略是一个重要的安全策略,它用于限制一个origin的文档或者它加载的脚本如何能与另一个源的资源进行交互。它能帮助阻隔恶意文档,减少可能被攻击的媒介。 同源的定义 如果两个 URL 的 protocol、port 和 host 都相同的话,则这两个 URL 是同源。 源的更改 满足某些
阅读全文
摘要:目的: 将多个资源文件(css、js)捆绑在一个文件中 压缩文件,去除空格换行,减小文件体积 步骤: 1、在NuGet下载 BuildBundlerMinifier 包 2、在项目根目录创建配置文件,如下: [ { "outputFileName": "wwwroot/js/info.min.js"
阅读全文
摘要:实现IApplicationModelConvention接口: public class NameSpaceVersionRoutingConvention:IApplicationModelConvention { private readonly string apiPrefix; priva
阅读全文
摘要:BenchmarkDotNet 是一个强大的. NET 库, 可用于性能测试,Benchmark 可以精准简单的测试应用程序性能,它为每个测试方法生成一个独立的项目, 执行此项目的多个启动, 并运行测试方法,以保证测试的精准性。 时间可以精确到微秒(us)、纳秒(ns),还可以测试内存使用情况 要想
阅读全文
摘要:重要对象 JwtSecurityToken 代表一个jwt token,可以直接用此对象生成token字符串,也可以使用token字符串创建此对象 SecurityToken JwtSecurityToken的基类,包含基础数据 JwtSecurityTokenHandler 创建、校验token,
阅读全文
摘要:正文 在开发AspNet Core应用的时候,我们经常会为该应用公布一个特殊的检测接口出来。该接口的目的很简单,告诉外界程序当前程序现在是可以访问或者不能访问的,便于外界做出相应的操作,比如监控报警,页面通知用户稍作等待等。 在AspNet Core 2.2 之前,如果我们要实现一个这样的检测接口,
阅读全文
摘要:需求:在服务器端使用js渲染引擎arttemplate,生成HTML。以实现在后台配置模板,动态生成HTML 微软提供了Microsoft.AspNetCore.NodeServices这个库,专门用来调用nodejs服务 1、安装包Microsoft.AspNetCore.NodeServices
阅读全文
摘要:在中间件中执行完MVC的处理之后检查返回状态,如果是错误状态就直接渲染视图并输出 实现方式就是在Configure中注入ICompositeViewEngine实例,构造视图上下文,再渲染视图为字符串,最后输出。 第一种: public void Configure(IApplicationBuil
阅读全文
摘要:目的:修改视图的查找路径 PopulateValues方法:每次http请求都会执行 ExpandViewLocations方法:根据context.Values的值缓存执行。相同值,此方法只会执行一次 viewLocations参数:默认查找路径 方案1: 案例中使用Query参数中获取theme
阅读全文
摘要:前言 Host startup hook,是2.2中提供的一项新的功能,通过使用主机启动钩子,允许开发人员在不修改代码的情况下,在服务启动之前注入代码;通过使用钩子,可以对已部署好的服务在服务启动期间自定义托管程序的行为;通过使用钩子,可以对服务进行跟踪或者遥测,也可以在服务启动前对托管环境进行健康
阅读全文
摘要:DbUp可以帮我们创建数据库,通过脚本文件创建表、添加数据;并可通过新创建脚本文件升级现有数据库 每个脚本文件只会执行一次,如果需要修改表结构或添加数据,添加新sql脚本文件,而不要修改原文件。DbUp通过向目标数据库中添加表SchemaVersions,存储脚本文件执行记录 脚本文件0001、00
阅读全文
摘要:后台任务如何支持间隔时间、Cron表达式两种方式? 分享一个项目TaskScheduler,这是我从Furion项目中拷出来的 源码:https://gitee.com/dot-net-core/task-scheduler.git 开始 间隔时间后台服务 public class Interval
阅读全文
摘要:前言 相对于ASP.NET MVC以及ASP.NET Core MVC中的旧版本路由特性, 在ASP.NET Core 3.0中新增了一个不错的扩展点,即程序获取到路由后,可以将其动态指向一个给定的controller/action. 这个功能有非常多的使用场景。如果你正在使用从ASP.NET Co
阅读全文
摘要:修改Request.Body //这里ReadToEnd执行完毕后requestBodyStream流的位置会从0到最后位置(即request.ContentLength) var RequestBody = new StreamReader(HttpContext.Request.BodyRead
阅读全文
摘要:简介 粘土对象是我从 Furion 框架中扒出来的,是一种可以模拟弱语言特性的对象,类似 Javascript 一样操作对象。只需通过 Clay 类初始化即可。 为什么起名为 “粘土” 呢?因为这个对象可以自由的添加属性,移除属性,又可以转换成任何对象,具有可拓展、可塑造的特点。 粘土性能略输于强类
阅读全文

浙公网安备 33010602011771号