【如何给ASP.NET Core Web发布包做减法详解】教程文章相关的互联网学习教程文章

Asp.Net Core WebAPI使用Swagger时API隐藏和分组详解【图】

1、前言 为什么我们要隐藏部分接口? 因为我们在用swagger代替接口的时候,难免有些接口会直观的暴露出来,比如我们结合Consul一起使用的时候,会将健康检查接口以及报警通知接口暴露出来,这些接口有时候会出于方便考虑,没有进行加密,这个时候我们就需要把接口隐藏起来,只有内部的开发者知道。 为什么要分组? 通常当我们写前后端分离的项目的时候,难免会遇到编写很多接口供前端页面进行调用,当接口达到几百个的时候就需要区...

ASP.NET Core利用Jaeger实现分布式追踪详解【图】

前言最近我们公司的部分.NET Core的项目接入了Jaeger,也算是稍微完善了一下.NET团队的技术栈。 至于为什么选择Jaeger而不是Skywalking,这个问题我只能回答,大佬们说了算。 前段时间也在CSharpCorner写过一篇类似的介绍 Exploring Distributed Tracing Using ASP.NET Core And Jaeger。 下面回到正题,我们先看一下Jaeger的简介 Jaeger的简单介绍Jaeger是Uber开源的一个分布式追踪的工具,主要为基于微服务的分布式系统提供监测和...

详解ASP.Net Core 中如何借助CSRedis实现一个安全高效的分布式锁【图】

引言:最近回头看了看开发的.Net Core 2.1项目的复盘总结,其中在多处用到Redis实现的分布式锁,虽然在OnResultExecuting方法中做了防止死锁的处理,但在某些场景下还是会发生死锁的问题,下面我只展示部分代码:问题: (1)这里setnx设置的值“1”,我想问,你最后del的这个值一定是你自己创建的吗? (2)图中标注的步骤1和步骤2不是原子操作,会有死锁的概率吗? 大家可以思考一下先,下面让我们带着这两个问题往下看,下面介绍...

详解使用DotNet CLI创建自定义的WPF项目模板【图】

本文主要介绍了使用DotNet CLI创建自定义的WPF项目模板,分享给大家,具体如下:描述 当我们安装完 DotNetCore 3.0 版本的 SDK 后,我们就可以创建基于 DotNetCore 的 WPF 项目模板,通过如下 CLI 可以方便快捷的创建并运行我们的项目: dotnet new wpf -n WpfApp cd WpfApp dotnet restore dotnet run做过 WPF 开发的朋友都知道,这个项目模板肯定不符合我们的预期,我们希望我们的项目模板能够加入 MVVM 的默认代码段,并且能够和...

详解asp.net core重新加载应用配置【图】

asp.net core重新加载应用配置Intro 我把配置放在了数据库或者是Redis里,配置需要修改的时候我要直接修改数据库,然后调用一个接口去重新加载应用配置,于是就尝试写一个运行时重新加载配置的接口。 Configuration 重新加载实现 重新加载配置的接口其实很简单,经过看 Configuration 的源码可以知道,如果想要重新加载应用配置,需要一个 IConfigurationRoot 对象,而 IConfigurationRoot 其实可以直接拿注入服务中的 IConfigurat...

详解log4net的使用

程序中只需要引用log4net.dll文件即可 配置的引用 log4net.Config.XmlConfigurator.Configure();首先添加以上代码。 CS程序:在Main方法中添加; BS程序:Application_Start方法中添加; 或是两者都可以在AssemblyInfo.cs(Properties中)文件里添加以下的语句: //设置独立配置文件,log4net.config [assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config" , Watch = true )] //或是默认的配置文件 [assembly:...

win7-vs2012下安装.net frame work 的过程图文详解【图】

第一, vs和.net的对应关系大致如下 vs2010----.net framework 4.0 vs2012----.net framework 4.5 vs2015----.net framework 4.6.1 vs2017----.net framework 4.6.2 第二,在win7上安装vs2010之后会有.net4.5 frame work已经安装好了。 vs2012 update5 也可以安装,但不是必须的。 第三,如果以后的开发不需要用到4.5.1 4.5.2 4.6 4.6.1 那么是可以直接安装4.6.2的。但是如果会用到的话,就安装上,需要依次安装运行库,否则会因为...

如何使用Rotativa在ASP.NET Core MVC中创建PDF详解【图】

前言 在本文中,我们将学习如何使用Rotativa.AspNetCore工具从ASP.NET Core中的视图创建PDF。如果您使用ASP.NET MVC,那么Rot??ativa工具已经可用,我们可以使用它来生成pdf。 创建一个MVC项目,无论您是core或不core,都可以nuget下包.命令如下: Install-Package Rotativa #或者 Install-Package Rotativa.AspNetCore这个工具由意大利人Giorgio Bozio创建。他需要在ASP.NET MVC中生成pdf,并且重复的任务是设置一种方法来创建PDF...

ASP.NET Core实现单体程序的事件发布/订阅详解【图】

背景事件发布/订阅是一种非常强大的模式,它可以帮助业务组件间实现完全解耦,不同的业务组件只依赖事件,只关注哪些事件是需要自己处理的,而不用关注谁来处理自己发布事件,事件追溯(Event Sourcing)也是基于事件发布/订阅的。在微服务架构中,事件发布/订阅有非常多的应用场景。今天我给大家分享一个基于ASP.NET Core的单体程序使用事件发布/订阅的例子,针对分布式项目的事件发布/订阅比较复杂,难点是事务处理,后续我会另写一...

ASP.NET Core 2.2中的Endpoint路由详解

Endpoint路由在ASP.NET Core 2.2中,新增了一种路由,叫做 Endpoint (终结点)路由。本文将以往的路由系统称为 传统路由 。 本文通过源码的方式介绍传统路由和 Endpoint 路由部分核心功能和实现方法,具体功能上的差异见 官方文档 。 在升级到ASP.NET Core 2.2后,会自动启用 Endpoint 路由。如果要恢复以往的实现逻辑,需要加入以下代码: services.AddMvc(options => options.EnableEndpointRouting = false).SetCompatibilityV...

ASP.NET CORE学习教程之自定义异常处理详解【图】

为什么异常处理选择中间件? 传统的ASP.NET可以采用异常过滤器的方式处理异常,在ASP.NET CORE中,是以多个中间件连接而成的管道形式处理请求的,不过常用的五大过滤器得以保留,同样可以采用异常过滤器处理异常,但是异常过滤器不能处理MVC中间件以外的异常,为了全局统一考虑,采用中间件处理异常更为合适 为什么选择自定义异常中间件? 先来看看ASP.NET CORE 内置的三个异常处理中间件 DeveloperExceptionPageMiddleware, Except...

Asp.Net Core利用文件监视进行快速测试开发详解【图】

前言 在进行 Asp.Net Core 应用程序开发过程中,通常的做法是先把业务代码开发完成,然后建立单元测试,最后进入本地系统集成测试;在这个过程中,程序员的大部分时间几乎都花费在开发、运行、调试上,而且一再的重复这个过程,我称这个过程为“程序员开发螺旋”,并且在这个步骤中,重复率最高且没有创造力的工作就是启动、测试,作为程序员,努力提高生产力我们追求的目标,我们的工作就是尽量消灭重复劳动,解放生产力,提高产出...

Asp.Net Core利用xUnit进行主机级别的网络集成测试详解【图】

前言 在开发 Asp.Net Core 应用程序的过程中,我们常常需要对业务代码编写单元测试,这种方法既快速又有效,利用单元测试做代码覆盖测试,也是非常必要的事情;但是,但我们需要对系统进行集成测试的时候,需要启动服务主机,利用浏览器或者Postman 等网络工具对接口进行集成测试,这就非常的不方便,同时浪费了大量的时间在重复启动应用程序上;今天要介绍就是如何在不启动应用程序的情况下,对 Asp.Net Core WebApi 项目进行网络...

asp.net在Repeater嵌套的Repeater中使用复选框详解

.aspx文件中: <%--顶层Repeater--%><asp:Repeater ID="rptChannel" runat="server"><itemtemplate><br /><b><%# Eval("ChannelName")%></b><%--嵌套的Repeater,指定使用后台创建的Releation来获取数据源--%><asp:Repeater ID="rptClassify" DataSource=<%# Eval("myrelation") %> runat="server"><itemtemplate><input type="checkbox" id="chk_FlagID" value=<%# Eval("FlagID")%> runat="server" /><asp:Label ID="lbl_FlagName...

ASP.NET Core针对一个使用HttpClient对象的类编写单元测试详解

介绍几年前,微软引入了HttpClient类来替代HttpWebRequest来发送Web请求。这个新的类更易于使用,更加简洁,更具有异步性,且易于扩展。 HttpClient类有一个可以接受HttpMessageHandler类对象的构造函数。HttpMessageHandler类对象可以接受一个请求(HttpRequestMessage), 并返回响应(HttpResponseMessage)。它的功能完全取决于它的实现。默认情况下HttpClient使用的是HttpClientHandler,HttpClientHandler是一个处理程序,它向网络...