从浅入深了解.NET Core MVC 2.x全面教程【第二章】

这篇具有很好参考价值的文章主要介绍了从浅入深了解.NET Core MVC 2.x全面教程【第二章】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

章节

第一章:https://www.cnblogs.com/kimiliucn/p/17611047.html
第二章:https://www.cnblogs.com/kimiliucn/p/17616708.html

二、Logging

1.诊断中间件

  • 命名空间:Microsoft.AspNetCore.Diagnostics
  • 报告信息并处理异常

2.诊断中间件

  • UseDeveloperExceptionPage:开发时使用的异常页面,异常信息
  • UseStatusCodePages:返回状态码:400-600
  • UserExceptionHandler:指定异常处理器
  • UseWelcome:当网站还在建设中

3.ASP.NET Core里的Log系统

  • EventSource
  • ILogger
  • DiagnosticSource

4.ILogger

  • 基于Providers
    • 内置
    • 可扩展使用其他的,或自己构件

5.内置的Log Providers

  • Console:控制台
  • Debug:VSDebug窗口
  • EventSource
  • EventLog:写到Windows事件中
  • TraceSource:只能应用于完整的.NET Frameword
  • Azure App Service

6.Log等级(低级——>高级)

  • Trace
  • Debug
  • Information
  • Warning
  • Error
  • Cirtical

7.添加日志信息

第一个参数是EventID,写一个常量就行;
从浅入深了解.NET Core MVC 2.x全面教程【第二章】
第二个参数是要记录的日志信息;如果有2个参数就继续往后写就行了;
从浅入深了解.NET Core MVC 2.x全面教程【第二章】
不建议这么写,写在一起就提出不来了;
从浅入深了解.NET Core MVC 2.x全面教程【第二章】


8.第三方 Log Provider

  • Serilog
  • Nlog
  • Elmah

9.怎么在ASP.NET Core中使用Serilog?

  • 在NuGet中安装【Servilog.AspNetCore】

从浅入深了解.NET Core MVC 2.x全面教程【第二章】
//如果需要输出到控制台
从浅入深了解.NET Core MVC 2.x全面教程【第二章】
//输出到文件
从浅入深了解.NET Core MVC 2.x全面教程【第二章】

  • 在【Program.cs】文件中Main方法中进行配置。

从浅入深了解.NET Core MVC 2.x全面教程【第二章】

  • 在【Program.cs】文件中CreateWebHostBuilder方法中进行使用。

从浅入深了解.NET Core MVC 2.x全面教程【第二章】


三、Filter

1.Filter

  • 用于MVC
  • 可以在MVC的请求管道里添加逻辑
    • 之前、之后
  • Cross-cutting concerns:灌穿特性
    • 避免代码重复
  • 常用场景
    • 授权
    • 需要Https

2.MVC管道

从浅入深了解.NET Core MVC 2.x全面教程【第二章】


3.Filter种类

  • AuthorizationFilter:鉴权授权
  • ResourceFilter:资源过滤器
  • ActionFilter:行为方法过滤器
  • ExceptionFilter:异常过滤器
  • ResultFilter:结果过滤器

4.实现Filter

  • IFilterMetadata
    • IAtuorizationFilter,IAsyncAuthorizationFilter
    • IResourceFilter
    • IActionFilter
    • IExceptionFilter
    • IRestleFilter

5.应用Filter

  • Action
  • Controller
  • 全局

从浅入深了解.NET Core MVC 2.x全面教程【第二章】


四、缓存

1.缓存的优点?

  • 提高网站的访问速度
  • 适用于不易改变的数据

2.缓存的缺点?

  • 仔细规划
  • 奇怪的副作用

3.缓存的地点?

  • 服务器
  • 缓存服务器
  • 客户端

4.In-Memory缓存

  • 内存缓存
  • IMemoryCache
  • 适用于Sticky Seesion(使用单机服务)
  • 适用于任何类型的对象

5.MemoryCacheEntryOptions

  • Absolute expiration time:绝对过期时间
  • Sliding expiration time:可调的过期时间
  • 缓存优先级
  • PostEvictionDelegate

6.怎么使用缓存?

  • 现在【Sartup.cs】的【ConfigureServices】方法中注册缓存:

从浅入深了解.NET Core MVC 2.x全面教程【第二章】

  • 定义一个常量,用来做Key

从浅入深了解.NET Core MVC 2.x全面教程【第二章】

  • 构造函数依赖注入缓存

从浅入深了解.NET Core MVC 2.x全面教程【第二章】

  • 使用缓存

从浅入深了解.NET Core MVC 2.x全面教程【第二章】


7.Cache Tag Helper

  • @await Component.IncokeAsync("xxx")
  • 服务器端
  • 使用IMemoryCache
    • Sticky Session

8.Cache Tag Helper属性

  • Enabled:是否启用
  • expires-on:绝对的过期时间
  • expires-after:时间长度
  • expires-sliding:可调的过期时间
  • vary-by-header:请求
  • vary-by-query
  • vary-by-cookie
  • vary-by-user
  • vary-by
  • priority:优先级设置

9.分布式缓存_1

从浅入深了解.NET Core MVC 2.x全面教程【第二章】


10.分布式缓存_2

  • 无需Sticky Seesion
  • 可扩展
  • 服务器重启不会缓存
  • 性能更好

11.分布式缓存的接口名、方法?

  • IDistributedCache
  • Get,GetAsync
  • Set,SetAsync
  • Refresh,RefreshAsync
  • Remove,RemoveAsync

12.分布式缓存有哪几种?

  • 分布式Memory Cache:只适合开发时应用
  • 分布式 Sql Server Cache
  • 分布式 Redis Cache:实际中使用这个最多

13.怎么使用Readis分布式缓存?

  • 安装Redis(使用Docker安装)

从浅入深了解.NET Core MVC 2.x全面教程【第二章】
从浅入深了解.NET Core MVC 2.x全面教程【第二章】
连接、运行Redis
从浅入深了解.NET Core MVC 2.x全面教程【第二章】

  • 在VS项目中安装Redis

从浅入深了解.NET Core MVC 2.x全面教程【第二章】

  • 在【Startup.cs】的【ConfigureService】方法中进行注入。

从浅入深了解.NET Core MVC 2.x全面教程【第二章】

  • 在Controller中构造函数依赖注入

从浅入深了解.NET Core MVC 2.x全面教程【第二章】

  • 使用分布式缓存

从浅入深了解.NET Core MVC 2.x全面教程【第二章】


14.Response缓存(响应缓存、客户端缓存)

  • 基于Header
  • 客户端缓存
  • 使用ResponseCache这个Attribute

15.Reponse缓存参数?

  • Location:设置缓存在哪
  • Duration:设置缓存时间的长短
  • NoStore:不应该设为缓存
  • VaryByHeader:设置通过检查哪个Header的值决定缓存

16.如何使用Reponse缓存?

  • 在【Startup.cs】注册Reponse缓存

从浅入深了解.NET Core MVC 2.x全面教程【第二章】

  • 在控制器中写代码;

从浅入深了解.NET Core MVC 2.x全面教程【第二章】
也可以使用之前注册的
从浅入深了解.NET Core MVC 2.x全面教程【第二章】


17.压缩

  • 压缩传输的数据:1k以上的数据,如CSS、JS等可以进行压缩;

如何使用呢?
(1)在【Program.cs】中【ConfigureServices】方法中注册服务
从浅入深了解.NET Core MVC 2.x全面教程【第二章】
(2)在【Program.cs】中【Configure】使用服务
从浅入深了解.NET Core MVC 2.x全面教程【第二章】
没介绍完,看文档...


五、VSTS(后改名:Azure DevOps)

1.Azure DevOps

  • Saas
  • 完整的DevOps的解决方案
  • 与技术无关
  • 基于Azure
  • 集成开发团队的环境

2.Azure DevOps组件

  • 源码控制
  • 计划
  • CI
  • 发布管理
  • 测试
  • ...

3.CI-Continuouts Integeration(持续集成)


4.Azure Devops -CI

  • Build连接到测试,工作项...
  • 宿主代理
  • 针对报告
  • 支持多种语言凭他

上一章节:https://www.cnblogs.com/kimiliucn/p/17611047.html
原文链接:https://www.cnblogs.com/kimiliucn/p/17616708.html文章来源地址https://www.toymoban.com/news/detail-635177.html

到了这里,关于从浅入深了解.NET Core MVC 2.x全面教程【第二章】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 从浅入深理解序列化和反序列化

    什么是java序列化 序列化:把对象转换为字节序列的过程 反序列:把字节序列恢复为对象的过程 对象序列化机制(object serialization)是java语言内建的一种对象持久化方式,通过对象序列化,可以将对象的状态信息保存为字节数组,并且可以在有需要的时候将这个字节数组通过

    2024年02月06日
    浏览(41)
  • Golang面试题从浅入深高频必刷「2023版」

    大家好,我是阳哥。 专注Go语言的学习经验分享和就业辅导。 Go语言相比C++/Java等语言是优雅且简洁的,是我最喜爱的编程语言之一,它既保留了C++的高性能,又可以像Java,Python优雅的调用三方库和管理项目,同时还有接口,自动垃圾回收和goroutine等让人拍案叫绝的设计。

    2024年02月05日
    浏览(38)
  • # 从浅入深 学习 SpringCloud 微服务架构(三)注册中心 Eureka(3)

    段子手168 Eureka Server 可以通过运行多个实例并相互注册的方式实现高可用部署, Eureka Server 实例会彼此增量地同步信息,从而确保所有节点数据一致。 事实上,节点之间相互注册是 Eureka Server 的默认行为。 1)修改 eureka_server 子工程(子模块)中的 application.yml 文件 模拟两个

    2024年04月26日
    浏览(41)
  • # 从浅入深 学习 SpringCloud 微服务架构(二)模拟微服务环境(1)

    段子手168 创建 artifactId 名为 spring_cloud_demo 的 maven 工程。 1)创建 子工程(子模块) — 创建数据库: create database shop; — 使用数据库: use shop; — 创建数据表: — 插入数据: insert into tb_product ( id , product_name , status , price , product_desc , caption , inventory ) values (1,‘iPhone 15 Pron’

    2024年04月25日
    浏览(39)
  • 数据结构 | 单链表SingleList【带你从浅入深真正搞懂链表】

    写在前面 很多粉丝经常私信问我有关 指针、链表 相关的问题,也非常希望我出一篇有关链表的教学,最近刚好也在整理有关单链表相关的知识点,便作了此文,为大家讲解有关单链表方面的各块知识点。 本文考虑到阅读者的水平和能力,内容有深有浅,总体讲解主要是 从

    2024年01月17日
    浏览(44)
  • this 之谜揭底:从浅入深理解 JavaScript 中的 this 关键字(二)

    系列首发于公众号『前端进阶圈』 ,若不想错过更多精彩内容,请“星标”一下,敬请关注公众号最新消息。 调用位置 在理解 this 的绑定过程之前,首先要理解 调用位置 : 调用位置就是函数在代码中被调用的位置(而不是声明的位置) 。 通常来说,寻找调用位置就是寻找

    2024年02月08日
    浏览(48)
  • 由浅入深了解HashMap源码

           由经典面试题引入,讲解一下HashMap的底层数据结构?这个面试题你当然可以只答,HashMap底层的数据结构是由(数组+链表+红黑树)实现的,但是显然面试官不太满意这个答案,毕竟这里有一个坑需要你去填,那就是在回答HashMap的底层数据结构时需要考虑JDK的版本,因

    2023年04月13日
    浏览(46)
  • 由浅入深了解机器学习和GPT原理

    我不是一个机器学习专家,本来是一名软件工程师,与人工智能的互动很少。我一直渴望深入了解机器学习,但一直没有找到适合自己的入门方式。这就是为什么,当谷歌在2015年11月开源TensorFlow时,我非常兴奋,知道是时候开始学习之旅了。不想过于夸张,但对我来说,这就

    2024年02月09日
    浏览(34)
  • 由浅入深一步步了解什么是哈希(概念向)

    我们来重新认识一下数据查找的过程: 在顺序结构以及平衡树 中, 记录的关键码与其存储位置之间没有对应的关系 ,因此在 查找一个元素时,必须要经过关键码的多次比较 。顺序查找时间复杂度为O(N),平衡树中为树的高度,即O( l o g 2 N log_2 N l o g 2 ​ N ),搜索的效率取决

    2024年04月16日
    浏览(43)
  • 由浅入深带你了解数据结构中的二叉树

    1.树的概念及结构 1.1树的概念   树是一种非线性的数据结构,它是由n(n=0)个有限节点组成一个具有层次关系的集合。它的形状像一颗倒挂的树,因此我们把它叫做树 。其特点如下所示:   1.有一个特殊的节点,称为根节点,根节点没有前驱节点   2.除根节点外,其余节点被

    2024年04月26日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包