ASP.NET Core

ASP.NET Core MVC如何上传文件及处理大文件上传

纵然是瞬间 提交于 2020-07-27 02:52:31
用文件模型绑定接口:IFormFile (小文件上传) 当你使用IFormFile接口来上传文件的时候,一定要注意,IFormFile会将一个Http请求中的所有文件都读取到服务器内存后,才会触发ASP.NET Core MVC的Controller中的Action方法。这种情况下,如果上传一些小文件是没问题的,但是如果上传大文件,势必会造成服务器内存大量被占用甚至溢出,所以IFormFile接口只适合小文件上传。 一个文件上传页面的Html代码一般如下所示: < form method ="post" enctype ="multipart/form-data" action ="/Upload" > < div > < p > Upload one or more files using this form: </ p > < input type ="file" name ="files" /> </ div > < div > < input type ="submit" value ="Upload" /> </ div > </ form > 为了支持文件上传,form标签上一定要记得声明属性enctype="multipart/form-data",否则你会发现ASP.NET Core MVC的Controller中死活都读不到任何文件。Input type=

造轮子-AgileConfig基于.NetCore的一个轻量级配置中心

生来就可爱ヽ(ⅴ<●) 提交于 2020-07-26 23:50:22
微服务确实是行业的一个趋势,我自己也在把一些项目往微服务架构迁移。玩微服务架构配置中心是一个绕不过去的东西,有很多大牌的可以选,比如spring-cloud-config,apoll,disconf等等。而我为什么还要造一个轮子呢?一来这些都不是.net实现的,我就想试试用.net core实现一个,而且他们也对.net不太友好,也只有apoll提供了官方的.net客户端。二来这些组件都太重量级了,比如apoll,光跑起来就要部署多个节点(admin,portal,meta sevice)还要依赖eureka。很多旧的项目往微服务迁移的时候并不是一下次全部调整完成的,可能是一步步来的,比如先把所有的服务都容器化,并没有使用微服务全家桶。而且有的项目也不需要微服务全家桶,毕竟微服务不是银弹,很多项目单体结构就足够了,有些项目传统的SOA架构也可以了。(唠叨一句,那种毫无流量毫无并发的项目,几人几天就搞完的强上微服务真的好吗?)但是这些项目也可能是分布式的,容器化部署的,那么这些项目我觉得也是需要配置中心的,因为在分布式、容器化环境下更改配置实在是太麻烦了。可以说配置中心并不是微服务独有的。基于以上原因我提炼了一些配置中心必备的功能,做的尽量简单(陋),开发了AgileConfig,为.net core的生态尽一份绵薄之力。 Github求star: AgileConfig

ASP.NET Core MVC如何上传文件及处理大文件上传

丶灬走出姿态 提交于 2020-07-26 23:36:10
用文件模型绑定接口:IFormFile (小文件上传) 当你使用IFormFile接口来上传文件的时候,一定要注意,IFormFile会将一个Http请求中的所有文件都读取到服务器内存后,才会触发ASP.NET Core MVC的Controller中的Action方法。这种情况下,如果上传一些小文件是没问题的,但是如果上传大文件,势必会造成服务器内存大量被占用甚至溢出,所以IFormFile接口只适合小文件上传。 一个文件上传页面的Html代码一般如下所示: < form method ="post" enctype ="multipart/form-data" action ="/Upload" > < div > < p > Upload one or more files using this form: </ p > < input type ="file" name ="files" /> </ div > < div > < input type ="submit" value ="Upload" /> </ div > </ form > 为了支持文件上传,form标签上一定要记得声明属性enctype="multipart/form-data",否则你会发现ASP.NET Core MVC的Controller中死活都读不到任何文件。Input type=

TechEmpower Web 框架性能第19轮测试结果正式发布,ASP.NET Core在主流框架中拔得头筹

…衆ロ難τιáo~ 提交于 2020-07-26 23:30:30
TechEmpower 第19轮编程语言框架性能排行榜2020年5月28日正式发布,详见官方博客: https://www.techempower.com/blog/2020/05/28/framework-benchmarks-round-19/ ,TechEmpower基准测试有许多场景(也称为测试类型),此次评测多了一个综合评分选项,把拥有完整测试覆盖的框架现在将具有综合 分数 ,这反映了测试项目类型的总体性能得分:JSON serialization, Single-query, Multi-query, Updates, Fortunes 和 Plaintext. 。对于每一轮,我们使每个测试类型的结果规范化,然后为每个测试类型应用主观权重(例如,Fortunes的权重比 Plaintext 高,因为Fortunes 是一种更现实的测试类型)。asp.net core排第6名,asp.net 排名倒数第二,第103名, 微软从倒数一路追赶到第一。 表上前缀T标签表示精选的主流编程语言 第1名 C++的drogon 9676分 第2名 Rust的actix 9064分 第6名 C#的ASP.NET Core 5659分 第29名 Go的Chi 2229分 第34名 Java的Spring 1867分 第73名 Nodejs的Express 821分 第94名

ASP.NET Core WebAPI实现本地化(单资源文件)

一曲冷凌霜 提交于 2020-07-26 13:48:18
在Startup ConfigureServices 注册本地化所需要的服务 AddLocalization 和 Configure<RequestLocalizationOptions> public void ConfigureServices(IServiceCollection services) { services.AddLocalization(); services.Configure<RequestLocalizationOptions>(options => { var supportedCultures = new List<CultureInfo> { new CultureInfo("en-us"), new CultureInfo("zh-cn") }; options.DefaultRequestCulture = new RequestCulture(culture: "en-us", uiCulture: "en-us"); options.SupportedCultures = supportedCultures; options.SupportedUICultures = supportedCultures; options.RequestCultureProviders = new IRequestCultureProvider[] {

TechEmpower Web 框架性能第19轮测试结果正式发布,ASP.NET Core在主流框架中拔得头筹

微笑、不失礼 提交于 2020-07-26 03:41:29
TechEmpower 第19轮编程语言框架性能排行榜2020年5月28日正式发布,详见官方博客: https://www.techempower.com/blog/2020/05/28/framework-benchmarks-round-19/ ,TechEmpower基准测试有许多场景(也称为测试类型),此次评测多了一个综合评分选项,把拥有完整测试覆盖的框架现在将具有综合 分数 ,这反映了测试项目类型的总体性能得分:JSON serialization, Single-query, Multi-query, Updates, Fortunes 和 Plaintext. 。对于每一轮,我们使每个测试类型的结果规范化,然后为每个测试类型应用主观权重(例如,Fortunes的权重比 Plaintext 高,因为Fortunes 是一种更现实的测试类型)。asp.net core排第6名,asp.net 排名倒数第二,第103名, 微软从倒数一路追赶到第一。 表上前缀T标签表示精选的主流编程语言 第1名 C++的drogon 9676分 第2名 Rust的actix 9064分 第6名 C#的ASP.NET Core 5659分 第29名 Go的Chi 2229分 第34名 Java的Spring 1867分 第73名 Nodejs的Express 821分 第94名

.NET 5.0预览版6发布:支持Windows ARM64设备

爱⌒轻易说出口 提交于 2020-07-24 23:12:59
2020年6月25日,微软dotnet团队在博客宣布了第六个 .NET 5.0 的预览版: https://devblogs.microsoft.com/dotnet/announcing-net-5-0-preview-6/ ,在改进性能的同时增加了一些新的功能。 ASP.NET Core 和 EF Core 也将于今日发布了。注意:EF Core 5.0 不支持 .NET Standard 2.0 或 .NET Framework,但是EF Core 5.0是支持.NET Core 3.1。 将所有内容组合在一起的里程碑式版本离预览版 8 中完成功能只有两步之遥,最终的 GA 版本定于 11 月发布,2019年Build大会上宣布.NET 5时,微软就明确说了,"未来将只有一个.NET,您将能够使用它来定位Windows、Linux、macOS、iOS、Android、tvOS、watchOS和WebAssembly等等。 微软在 4 月份宣布预览版 2 时宣布,它已经处理了其 .NET 站点上 50% 的流量。 自那时以来,一系列稳定的预览版本一直在逐步修复Issue,完善现有功能和添加新的功能,虽然通常是一个小范围,不断敏捷迭代,小步快跑。 今天的预览版 6 依然如此,Microsoft 将其描述为包含"一小组新功能和性能改进"。 本次更新的主要功能是在 Windows

C# 数据操作系列

我与影子孤独终老i 提交于 2020-07-24 19:38:56
0. 前言 继上一篇,以及上上篇,我们对SqlSugar有了一个大概的认识,但是这并不完美,因为那些都是理论知识,无法描述我们工程开发中实际情况。而这一篇,将带领小伙伴们一起试着写一个能在工程中使用的模板类。 1. 创建一个Client SqlSugar在操作的时候需要一个Client,用来管理数据库连接,并操作数据库。所以我们写一个DbContext用来创建Client: public class DefaultContext { public SqlSugarClient Client { get; } public DefaultContext(string connectionString, DbType dbType) { Client = new SqlSugarClient(new ConnectionConfig { ConnectionString = connectionString,//"Data Source=./demo.db", DbType = dbType, IsAutoCloseConnection = true, InitKeyType = InitKeyType.Attribute }); Client.CodeFirst.InitTables(typeof(Dept), typeof(Person), typeof(Employee));

asp.net core与.net core

会有一股神秘感。 提交于 2020-07-24 14:32:26
基于.net core的应用程序能够运行在不同的操作系统平台。Asp.net core是基于.net core平台的Web开发框架。 .NET Core简介 CoreCLR 基类库 Roslyn编译器 .NET Cire CLI工具 Asp.net core具有以下有点: 跨平台 统一Web UI与Web API开发 基于环境配置以及云就绪配置 内置依赖注入 轻型的高性能模块化HTTP请求管道 能够在IIS、Nginx、Apache和Docker上进行托管或者在当前进程内自托管 基于 .net core的框架 简化新式Web开发工具,命令行或者Visual Studio Code、Visual Studio 在Visual Studio Code上的开发插件:vscode-solution-explorer、c#、vscode-icon、NuGet Package Manager、C# XML Documentation Comments, vscode-drawio(做图插件) 创建一个web应用,命名为demo 然后点击运行项目 在浏览器里面输入http://localhost:5000 来源: oschina 链接: https://my.oschina.net/it110/blog/4326341

手动造轮子——基于.NetCore的RPC框架DotNetCoreRpc

旧街凉风 提交于 2020-07-24 13:19:19
前言 一直以来对内部服务间使用RPC的方式调用都比较赞同,因为内部间没有这么多限制,最简单明了的方式就是最合适的方式。个人比较喜欢类似Dubbo的那种使用方式,把接口层单独出来,作为服务的契约,服务端以这套契约提供服务,客户端使用这套契约调用服务,和使用本地方法的方式是一样的。.Net平台上类似Dubbo这种相对比较完善的RPC框架还是比较少的,GRPC确实是一款非常优秀的RPC框架,能夸语言调用,但是从个人的角度上来说每次还得编写proto文件感觉还是比较麻烦的。如今服务拆分,微服务架构比较盛行的潮流下,一个简单实用的RPC框架确实可以提升很多开发效率。 简介 随着.Net Core逐渐成熟稳定,为我一直以来想实现的这个目标提供了便利的方式。于是利用闲暇时间本人手写了一套基于Asp.Net Core的RPC框架,算是实现了一个自己的小目标。大致的实现方式,Server端依赖Asp.Net Core,采用的是中间件的方式拦截处理请求比较方便。Client端可以是任何可承载.Net Core的宿主程序。通信方式是HTTP协议,使用的是HttpClientFactory。至于为什么使用HttpClientFactory,因为HttpClientFactory可以更轻松的实现服务发现,而且可以很好的集成Polly,很方便的实现,超时重试,熔断降级这些,给开发过程中提供了很多便利