随笔分类 - .net core(web)
摘要:前言 简单介绍一下实体模型的设计。 正文 前文提及了我们的应用分为: 共享层 基础设施层 领域层 应用层 今天来介绍领域模型层。 前文提及到领域模型在共享层有一个领域模型抽象类库。 里面有这些类: 先分别介绍一下这些类是做什么的。 IEntity 类,是我们实体的接口: /// <summary>
阅读全文
摘要:前言 简单整理一下索引模型。 正文 对我们开发人员来说,索引感觉非常的重要。 因为索引好用,但是不能多建,因为这影响插入,不能少建,因为这影响读取。 有些为了能够多建索引,通过从多个从库中读取数据,再重新整合数据来建立新的数据结构,建立新的索引。 hash 表 在索引模型中hash表非常常见,这里值
阅读全文
摘要:前言 简单整理一下分层。 正文 应用程序分层,分为: 1.领域模型层 2.基础设施层 3.应用层 4.共享层 共享层 共享层一般包括下面几个类库。 有一个Core 的类库,比如说BLog.Core. 这个类库用来,主要用来承载一些基础简单的类型,比如说一下帮助类。 共享层的抽象层。 比如说有一个Bl
阅读全文
摘要:前言 简单整理一下路由和终节点。 正文 路由方式主要有两种: 1.路由模板方式 2.RouteAttribute 方式 路由约束: 1.类型约束 2.范围约束 3.正则表达式 4.是否必选 5.自定义 IRootConstaint URL 生成 1.LinKGenerator 2.IUrlHelpe
阅读全文
摘要:前言 简单介绍一下文件系统。 正文 文件系统,主要是下面3个接口组成: IFileProvider IFileInfo IDirectoryContents 那么他们的实现是: physicalFileProvider 物理文件提供程序 enbeddedFileProvider 嵌入式文件提供程序
阅读全文
摘要:前言 简单整理一下静态中间件。 正文 我们使用静态文件调用: app.UseStaticFiles(); 那么这个默认会将我们根目录下的wwwroot作为静态目录。 这个就比较值得注意的,可能刚开始学.net core 的小伙伴,会直接把脚本写在更目录script这样是访问不到的。 当然了,你可以配
阅读全文
摘要:前言 简单介绍一下异常中间件的使用。 正文 if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } 这样写入中间件哈,那么在env环境下就会去执行UseDeveloperExceptionPage。 public static IA
阅读全文
摘要:前言 简单介绍一下.net core的中间件。 正文 官方文档已经给出了中间件的概念图: 和其密切相关的是下面这两个东西: IApplicationBuilder 和 RequestDelegate(HttpContext context) IApplicationBuilder : public
阅读全文
摘要:前言 什么是结构化呢? 结构化,就是将原本没有规律的东西进行有规律话。 就比如我们学习数据结构,需要学习排序然后又要学习查询,说白了这就是一套,没有排序,谈如何查询是没有意义的,因为查询算法就是根据某种规律得到最佳的效果。 同样日志结构话,能够让我们得到一些好处。如果说容易检索,容易分析,总的来说就
阅读全文
摘要:前言 前面介绍了服务与日志之间的配置,那么我们服务会遇到下面的场景会被遇到一些打log的问题。 前面我提及到我们的log,其实是在一个队列里面,而我们的请求是在并发的,多个用户同时发送请求这个时候我们的日志是错乱的。 如果有一个错误,那么我们只能过知道这个错误是哪里报错了,但是我们不知道触发的流程是
阅读全文
摘要:前言 前文介绍了一些基本思路,那么这里介绍一下,服务如何与配置文件配合。 正文 服务: public interface ISelfService { void ShowLog(); } public class SelfService : ISelfService { public ILogger
阅读全文
摘要:前言 本节开始整理日志相关的东西。先整理一下日志的基本原理。 正文 首先介绍一下包: Microsoft.Extengsion.Logging.Abstrations 这个是接口包。 Microsoft.Extengsion.Logging 这个是实现包 Microsoft.Extengsion.L
阅读全文
摘要:前言 简单整理一些配置的验证。 正文 配置的验证大概分为3类: 直接注册验证函数 实现IValidteOptions 使用Microsoft.Extensions.Options.DataAnnotations 直接注册验证函数 服务: public class SelfService : ISel
阅读全文
摘要:前言 前文讲述了,服务和配置直接的配合,这一节写一下,当配置文件修改了,每个服务如何感知自己的配置。 正文 服务感知到自己的配置发生变化,这就牵扯出两个东西: IoptionsMonitor<out TOptions> IoptionSnapshot<out TOptions> 在作用域范围使用Io
阅读全文
摘要:前言 前面基本介绍了,官方对于asp .net core 设计配置和设计服务的框架的一些思路。看下服务和配置之间是如何联系的吧。 正文 服务: public interface ISelfService { string ShowOptionName(); } public class SelfSe
阅读全文
摘要:前言 市面上已经有很多配置中心集成工具了,故此不会去实践某个框架。 下面链接是apollo 官网的教程,实在太详细了,本文介绍一下扩展数据源,和简单翻翻阅一下apollo 关键部分。 apollo 服务配置: https://github.com/ctripcorp/apollo/wiki/.Net
阅读全文
摘要:前言 前文中我们去获取value值的时候,都是通过configurationRoot 来获取的,如configurationRoot["key"],这种形式。 这种形式有一个不好的地方,那就是不方便。那么看下.net core如何将其转换为强类型。 正文 引入:Microsoft.extension
阅读全文
摘要:前言 在当今在互联网微服务比较适用的情况下,docker 可以说一个利器。每次我们打包docker的时候都是适用docker 的配置文件,那么配置文件里面会设置环境变量,这个时候需要我们的应用能够识别到这些环境变量并作出相应的选择。 适用场景: docker 运行环境 k8s 运行环境 因为他们都是
阅读全文
摘要:前言 前文提及到了当我们的配置文件修改了,那么从 configurationRoot 在此读取会读取到新的数据,本文进行扩展,并从源码方面简单介绍一下,下面内容和前面几节息息相关。 正文 先看一下,如果文件修改,那么是否有一个回调函数,可以回调呢? 答案是有的: IChangeToken IConf
阅读全文
摘要:前言 介绍一下配置系统中的配置文件,很多服务的配置都写在配置文件中,也是配置系统的大头。 正文 在asp .net core 提供了下面几种配置文件格式的读取方式。 Microsoft.extensions.configuration.Ini Microsoft.extensions.configu
阅读全文