分享 最近在公司成功落地了一个用ASP.NET Core 开发前台的CMS项目,虽然对于表层的开发是兼容MVC5的,但是作为爱好者当然要用尽量多的ASP.NET Core新功能了. 背景 在项目开发的过程中,为了满足需求,还是有许多功能要自己"发明",也就是已有技术的组(qi)合ji)运(yin)用(qiao).本例先讲讲如果用中间件开发所有CMS都需要的服务端静态缓存方法. CMS系统的一大痛点是一个页面要查询的内容很多,所以常常为了减轻服务器压力,都会使用到各种缓存技术.比如静态文…
系列回顾 <ASP.NET Core 中的SEO优化(1):中间件实现服务端静态化缓存> <ASP.NET Core 中的SEO优化(2):中间件中渲染Razor视图> <ASP.NET Core 中的SEO优化(3):自定义路由匹配和生成> 背景 切换主题,是博客.CMS等系统的必备功能,一般来说,有三种切换主题的需求. 在管理后台上传主题包,并选择主题 前端自动按照频道.栏目等切换模版 用户在前端切换主题,并记录用户的选择 这三种需求,其实核心原理都是一样,就是制定…
前言 前两篇文章主要总结了CMS系统两个技术点在ASP.NET Core中的应用: <ASP.NET Core 中的SEO优化(1):中间件实现服务端静态化缓存> <ASP.NET Core 中的SEO优化(2):中间件中渲染Razor视图> 而本篇文章,继续介绍另一个技术点:自定义路由匹配和生成. 背景 在MVC5时代,默认的路由可能就是简单的约定/{controller}/{action}/{id},第一节对应控制器(Controller)名,第二节对应操作(Action)名,…
前言 上一篇文章<ASP.NET Core 中的SEO优化(1):中间件实现服务端静态化缓存>中介绍了中间件的使用方法.以及使用中间件实现服务端静态化缓存的功能.本系列文章的这些技巧都是我最近在做的公司实际项目中的一些奇怪的需求之后总结而来的-- 要解决的问题 好了,本篇说说如何在中间件中渲染Razor视图.之所以会有这个技巧,是因为我们有个需求: 需要在所有返回404状态的路由都输出一个特定视图. 比如当有id=1的文章,而没有id=2的文章时,那么/url/1.html展示文章详情页,/u…
白驹过隙,时光荏苒 大概去年这个时候写了angular 结合webpack的一套前端方案,今年此时祭出vue2结合webpack的一套前端方案. 明年的这个时候我又是在做什么... 读在最前面: 1.本文讲述Vue,Webpack 模块化.SEO优化(Vue SSR 服务端同构直出).全浏览器兼容(ie8以上).图片轮播等案例方案        2.技术点:vue.webpack.es6.vue-server-renderer.sass.autoprefixer.vue-meta.axios 3…
在采用了依赖注入的应用中,我们总是直接利用DI容器直接获取所需的服务实例,换句话说,DI容器起到了一个服务提供者的角色,它能够根据我们提供的服务描述信息提供一个可用的服务对象.ASP.NET Core中的DI容器体现为一个实现了IServiceProvider接口的对象. ServiceProvider与ServiceDescriptor服务的注册与提供    利用ServiceProvider来提供服务    提供一个服务实例的集合    获取ServiceProvider自身对象    对泛…
前文:ASP.NET Core中使用GraphQL - 第一章 Hello World 中间件 如果你熟悉ASP.NET Core的中间件,你可能会注意到之前的博客中我们已经使用了一个中间件, app.Run(async (context) => { var result = await new DocumentExecuter() .ExecuteAsync(doc => { doc.Schema = schema; doc.Query = @" query { hello } &…
ASP.NET Core中使用GraphQL - 目录 ASP.NET Core中使用GraphQL - 第一章 Hello World ASP.NET Core中使用GraphQL - 第二章 中间件 ASP.NET Core中使用GraphQL - 第三章 依赖注入 ASP.NET Core中使用GraphQL - 第四章 GrahpiQL ASP.NET Core中使用GraphQL - 第五章 字段, 参数, 变量 ASP.NET Core中使用GraphQL - 第六章 使用EF Co…
原文:Why isn't my session state working in ASP.NET Core? Session state, GDPR, and non-essential cookies 作者:Andrew Lock 译文:https://www.cnblogs.com/lwqlun/p/10526380.html 译者:Lamond Lu 在本篇博客中,我将描述一个关于会话状态(Session State)的问题, 这个问题我已经被询问了好几次了.这个问题的场景如下: 创建一个…
ASP.NET Core中使用GraphQL ASP.NET Core中使用GraphQL - 第一章 Hello World ASP.NET Core中使用GraphQL - 第二章 中间件 SOLID原则中的D表示依赖倒置原则.这个原则的内容是: 上层模块不应该直接依赖底层模块,而应该依赖其抽象 抽象不应该依赖于细节, 细节应该依赖抽象 来源:WIKIPEDIA 在一个模块中创建一个其他模块的实例会导致这个模块与其他模块之间的紧耦合. 为了让不同的模块解耦,我们需要遵循依赖倒置原则.按照这种…