【Linux上 发布.Net Core】教程文章相关的互联网学习教程文章

.Net Core Api 使用版本控制详解【图】

Api的版本控制是Api开发中经常遇到的问题, 在大部分中大型项目都需要使用到Api的版本控制 在本篇博客中,我们将说明一下如何在.Net Core Api项目中使用Api版本控制。 本篇博客中测试项目的开发环境: Visual Studio 2017.Net Core 2.1 SDK1,安装Microsoft.AspNetCore.Mvc.Versioning NET Core Mvc中,微软官方提供了一个可用的Api版本控制库Microsoft.AspNetCore.Mvc.Versioning。2,修改Startup类 这里我们需要在Startup类的Conf...

详解.NET Core中的数据保护组件

背景介绍 在 OWASP(开放式 Web 应用程序安全项目) 2013 年发布的报告中,将不安全的直接对象引用(Insecure Direct Object Reference)标记为 十大 Web 应用程序风险之一, 其表现形式是对象的引用(例如数据库主键)被各种恶意攻击利用, 所以对于Api返回的各种主键外键ID, 我们需要进行加密。.NET Core 的数据保护组件 .NET Core 中内置了一个IDataProtectionProvider接口和一个IDataProtector接口。其中IDataProtectionProvider是创建...

Asp.Net Core控制器如何接收原始请求正文内容详解【图】

主要目标在Asp.net Core控制器中,通过自定义格式化程序来映射自定义处理控制器中的“未知”内容。本文将给大家详细介绍关于Asp.Net Core控制器接收原始请求正文内容的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧 简单案例为了演示这个问题,我们用VS2017创建一个默认的Asp.net Core Web Api项目。 [Route("api/[controller]")][ApiController]public class ValuesController : ControllerBase{[Ht...

c# .Net Core静态文件服务器的新人入门教程【图】

概要: 本文通过示例,讲解了 NET Core2.0 静态文件目录的相关知识,并附带解析,适合新手,并附带了完整的项目代码。(项目通过 vs2017 初始化的 ASP.NET Core 应用程序,之后选择***空项目***)示例代码 项目结构program.cs文件using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore; using Microsoft.AspNetCore.Hosting; using Micro...

.NET Core/Framework如何创建委托大幅度提高反射调用的性能详解【图】

前言 大家都知道反射伤性能,但不得不反射的时候又怎么办呢?当真的被问题逼迫的时候还是能找到解决办法的。 反射是一种很重要的技术,然而它与直接调用相比性能要慢很多,因此如何优化反射性能也就成为一个不得不面对的问题。 目前最常见的优化反射性能的方法就是采用委托:用委托的方式调用需要反射调用的方法(或者属性、字段)。 为反射得到的方法创建一个委托,此后调用此委托将能够提高近乎直接调用方法本身的性能。(当然 E...

ASP.NET Core 2.1 使用Docker运行的方法步骤【图】

1.新建一个 ASP.NET Core 2.1 项目然后运行一下项目,确保我们刚刚建立的项目可以正常运行。2.编写 Dockerfile 新建一个文本文件,命名为 Dockerfile FROM microsoft/dotnet:2.1-aspnetcore-runtime WORKDIR /app COPY . . EXPOSE 80 ENTRYPOINT ["dotnet", "AspNetCore.Docker.dll"]这里我们需要用到官方的镜像:microsoft/dotnet:2.1-aspnetcore-runtime 如果要尝试更小的镜像,可以试试 microsoft/dotnet:2.1-aspnetcore-runtim...

Asp.net Core中如何使用中间件来管理websocket

介绍我喜欢.NET CORE 这个东西,其实不仅仅源于它性能很高,可以跨平台,还因为它的设计模式确实令人着迷。以前没.NET CORE 的时候,.NET用websocket必须跑在windows server 2012上,但我一般不会这么干,都把websocket架在nodejs的服务器上。这么分出来,麻烦肯定是麻烦的,而且js这东西,写复杂和几年后再看都是头疼的问题。那么,如果.NET CORE是以kestrel运行的,那么就不再需要考虑服务器的版本运行,任何一个地方都可以用web...

.Net Core中间件之静态文件(StaticFiles)示例详解【图】

一、介绍 静态文件(static files),诸如 HTML、CSS、图片和 JavaScript 之类的资源会被 ASP.NET Core 应用直接提供给客户端。 在介绍静态文件中间件之前,先介绍 ContentRoot和WebRoot概念。 ContentRoot:指web的项目的文件夹,包括bin和webroot文件夹。 WebRoot:一般指ContentRoot路径下的wwwroot文件夹。 介绍这个两个概念是因为静态资源文件一般存放在WebRoot路径下,也就是wwwroot。下面为这两个路径的配置,如下所示: pu...

.Net Core中使用Quartz.Net实践记录【图】

一、介绍Quartz.NET是一个强大、开源、轻量的作业调度框架,是 OpenSymphony 的 Quartz API 的.NET移植,用C#改写,可用于winform和asp.net应用中。它灵活而不复杂。你能够用它来为执行一个作业而创建简单的或复杂的作业调度。它有很多特征,如:数据库支持,集群,插件,支持cron-like表达式等等。 通俗说它的功能是:比如说我想每天晚上2点让程序或网站执行某些代码,或者每隔5秒种我想查看是否有新的任务要处理等。 Quartz.Net是...

asp.net core webapi项目配置全局路由的方法示例【图】

一、前言 在开发项目的过程中,我新创建了一个controller,发现vs会给我们直接在controller头添加前缀,比如[Route("api/[controller]")],即在访问接口的时候会变成http://localhost:8000/api/values,但是如果控制器有很多个,或者要进行版本迭代时,我们会发现痛苦的时刻降临了,要一个一个的修改。 如果在这个时候可以进行全局配置前缀那真是福利呀,修改一处即可。为了能达到此目的我们就来运用一下吧。 二、配置 0、在配置前我...

.NET Core中使用HttpClient的正确姿势

前言 为了更方便在服务端调用 HTTP 请求,微软在 .NET Framework 4.x 的时候引入了 HttpClient。但 HttpClient 有很多严重问题,一直饱受诟病,比如 InfoQ 的这篇文章 t.cn/Evzy80y,吐槽了 HttpClient 不能立即关闭连接、性能消耗严重等的问题。 Http协议的重要性相信不用我多说了,HttpClient相比传统JDK自带的URLConnection,增加了易用性和灵活性,它不仅是客户端发送Http请求变得容易,而且也方便了开发人员测试接口(基于Htt...

.net core 读取本地指定目录下的文件的实例代码【图】

项目需求 asp.net core 读取log目录下的.log文件,.log文件的内容如下: xxx.log ------------------------------------------begin--------------------------------- 写入时间:2018-09-11 17:01:48 userid=1000 golds=10 -------------------------------------------end--------------------------------- 一个 begin end 为一组,同一个.log文件里 userid 相同的,取写入时间最大一组值,所需结果如下:UserID Golds Re...

.NET Core中Object Pool的多种用法详解【图】

前言 复用,是一个重要的话题,也是我们日常开发中经常遇到的,不可避免的问题。 举个最为简单,大家最为熟悉的例子,数据库连接池,就是复用数据库连接。 那么复用的意义在那里呢? 简单来说就是减少不必要的资源损耗。 除了数据库连接,可能在不同的情景或需求下,还会有很多其他对象需要进行复用,这个时候就会有所谓的 Object Pool(对象池)。 小伙伴们应该也自己实现过类似的功能,或用ConcurrentBag,或用ConcurrentQueue,或...

.NET Core控制台应用程序如何使用异步(Async)Main方法详解【图】

前言 C# 7.1 及以上的版本允许我们使用异步的Main方法。下面话不多说了,来随着小编一起看看详细的介绍吧。 一.新建一个控制台应用程序二.异步Main方法 我们直接将Main方法改为如下: static async Task Main(string[] args) 可以看到报错了,提示我们是C# 7.1 的特性。我们有两种方法可以解决,其实最后都是殊途同归,只是操作不一样而已。 1.第一种方法-修改csproj文件 打开项目的csproj文件,添加如下代码:<PropertyGroup Cond...

.NET core高性能对象转换示例代码【图】

前言 NET Core(开放源代码,跨平台,x-copy可部署等)有许多令人兴奋的方面,其中最值得称赞的就是其性能了。关于对象转换已经有不少轮子(AutoMapper,TinyMapper) .出于项目需要,手动造一个简单轮子。下面话不多说了,来一起看看详细的介绍吧。 示例代码 g>1.采用静态泛型类缓存,避免了拆箱装箱操作。 2.对于转换对象中有,字段名一样但是类型不一样的类时仍可以用 public static class Mapper<TSource, TTarget> where TSource : cl...