大部分东西是和Asp net core2.x相同的,不同的地方是:app作为一个IHostService运行的基础设施、端点路由和ForwardedHeadersStartupFilter ,其中端点路由在3.0是全局启用的(不再像2.X局限于MVC/Razor页面了)
ForwardedHeadersStartupFilter 在1.0已经出现了,当你的app运行在代理后面会用到它,是为了确保你的应用能处理SSL-负载和生成正确的URL。这么设计的目的是你能仅仅通过设置一个环境变量去配置一个使用 X-Forwarded-For 和 X-Forwarded-Proto 请求头的中间件。
***
在这篇博客中我深挖了从Asp Net Core2.X到3.0中的仅仅两个文件——.csproj文件和Program.cs文件的变化。从表面上看,者仅仅是一些细微的变化,所有从2.X移植到3.0应该不会太难。这是天真地掩盖了其中的巨大的变化——共享框架的明显的变化,以及Asp Net core 已经在通用Host上重建了。
我认为大家遇到的最大的问题是Nuget 程序包的差异——一些app将要必须移除Asp Net Core 程序包的引用,同时要明确地引用其他的程序包。尽管解决这个问题是不太难,但是它会对不熟悉这个变化的用户带来困惑,所以应该第一时间审查这些变化