#author("2023-11-21T17:28:29+08:00","default:Admin","Admin") #author("2023-11-21T17:28:47+08:00","default:Admin","Admin") [[ASP.NET Core Web]] #contents * 概要 [#na126855] 我们首先来看看ASP.NET Core有哪些优势? - 跨平台:可以部署到Linux服务器上 - 内置一套对云和部署环境非常友好的配置模块 - 内置依赖注入 - IIS或者Kestrel(或者其它自定义) - 轻量级、高性能、模块化的Http处理管线 - .NET Core 是开源的,并且基于nuget发布。 这让我们有了更大的空间去改造和扩展它 - 更易于现代化的项目开发,比如面向容器,微服务架构,对DevOps更友好 &ref(netcore.png); 公司的决策层为什么要做这样的选择? - 降低成本,提升效率 - 提升公司的技术品牌 - 更好的留住和培养现有的开发团队,以及招募到更好的开发者 * 区别 [#xea6de5f] ASP.NET Core Web 应用和 ASP.NET Web 应用有一些相似之处,但也有一些重要的区别。 ** 相似之处 [#r8f04d0f] + ASP.NET Core Web 应用和 ASP.NET Web 应用都是用于创建 Web 应用程序的框架。 + 它们都支持多种语言,包括 C#、VB.NET 和 F#。 + 它们都可以使用 Visual Studio 进行开发。 ** 区别 [#l990a11b] + ASP.NET Core Web 应用是跨平台的,可以在 Windows、Linux 和 macOS 上运行,而 ASP.NET Web 应用只能在 Windows 上运行。 + ASP.NET Core Web 应用使用 .NET Core 运行时,而 ASP.NET Web 应用使用 .NET Framework 运行时。 + ASP.NET Core Web 应用提供了更轻量级的框架,可以更快地启动和运行,而 ASP.NET Web 应用则更加重型。 + ASP.NET Core Web 应用使用了新的中间件架构,可以更加灵活地配置和定制请求管道处理流程。 总之,ASP.NET Core Web 应用和 ASP.NET Web 应用都是用于创建 Web 应用程序的框架,它们有一些相似之处,但也有一些重要的区别。 * Microsoft.AspNetCore.Http [#q5177fa6] 比如最常用的Microsoft.AspNetCore.Http这个类库,提示已弃用,我以为是换其他包了 最后我们在微软官网文档里找到了答案: https://learn.microsoft.com/en-us/aspnet/core/fundamentals/target-aspnetcore?view=aspnetcore-7.0&tabs=visual-studio 随着 .NET Core 3.0 发布,许多 ASP.NET Core 程序集不再作为包发布到 NuGet。 而是改为将这些程序集包含在通过 .NET Core SDK 和运行时安装程序安装的 Microsoft.AspNetCore.App 共享框架中。 若要查看不再发布的包列表,请参阅删除过时的包引用。 自 .NET Core 3.0 起,使用 Microsoft.NET.Sdk.Web MSBuild SDK 的项目隐式引用此共享框架。 使用 Microsoft.NET.Sdk 或 Microsoft.NET.Sdk.Razor SDK 的项目必须引用 ASP.NET Core,才能使用共享框架中的 ASP.NET Core API。 若要引用 ASP.NET Core,请将以下 <FrameworkReference> 元素添加到项目文件: #codeprettify{{ <Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFramework>netcoreapp3.1</TargetFramework> </PropertyGroup> <ItemGroup> <FrameworkReference Include="Microsoft.AspNetCore.App" /> </ItemGroup> </Project> }} &color(red){所以类库也需要加上}; #codeprettify{{ <FrameworkReference Include="Microsoft.AspNetCore.App" /> }} 这样所有aspnetcore相关的都会引用上了。