使用ASP.NET Core Web应用程序(.NET Core)与net461设置为唯一框架并使用(.NET Framework)模板之间的区别
随着.NET Core RC2的发布,微软使得现在有3个Web应用程序模板:
ASP.NET Web应用程序(.NET Framework) – 旧的
ASP.NET核心Web应用程序(.NET Framework) – 新的,只能在Windows上托pipe
ASP.NET核心Web应用程序(.NET核心) – Linux,OSX,Windows
我试图使用新的核心Web应用程序模板,但没有试图针对Linux,OSX,Windows,所以它看起来像ASP.NET核心Web应用程序(.NET Framework)是完美的。 我花了一段时间,但我了解到,为了添加一个类库,将使用这个项目types,您需要添加一个类库(.NET Core),并将框架部分更改为只有net461以匹配Web应用程序。
"frameworks": { "net461": { } }
我的问题:
创buildASP.NET Core Web应用程序(.NET Core)和project.json之间的区别是使net461成为唯一的目标框架
和
只是创build一个默认只包含net461的ASP.NET Core Web Application(.NET Framework)项目。
还有没有其他的差别,我不知道像项目发布的方式等…?
创buildASP.NET Core Web应用程序(.NET Core)和project.json之间的区别是使.NET461成为唯一的目标框架
这与制作ASP.NET Core Web Application
( .NET Framework
)项目是一样的。 两者之间的项目types由project.json
确定,并且在project.json
中将其从.NET Core
定位到面向.NET Framework
。 在以前的ASP.NET Core
发行版/testing版中,可以在project.json
同时使用Frameworks,但只能发布到一个。 不知道这是否仍然有可能。
只是创build一个默认只包含.NET461的ASP.NET Core Web应用程序(.NET Framework)项目。
还有其他的区别,我不知道像项目发布的方式等如果你的目标.NET框架,而不是.NET Core你的应用程序不能跨平台,你的应用程序只能在Windows上运行,而不是Linux /苹果电脑。
有独立的ASP.NET Core
Web应用程序( .NET Core
)和ASP.NET Core
Web应用程序( .NET Framework
)的原因是因为后者允许您使用依赖于的函数,包或第三方库Windows和相同的.NET Framework
或更高版本将需要安装在机器上。
前者没有.NET Framework
要求,但允许你的应用程序跨平台,当你发布你的应用程序时,它将所有依赖的.NET Core
dll文件发布到发布目录,以这种方式绕过了.NET Framework
安装要求。
它也将影响编译,如果你的目标是.NET Core
,并使用Windows特定的函数或包,你将得到一个编译错误。
您可以轻松地通过调整您的project.json
来定位这两者之间的切换。
Microsoft Docs
在以下情况下,应该使用.NET Core作为服务器应用程序
你有跨平台的需求。
您的目标是微服务。
您正在使用Docker容器。
您需要高性能和可扩展的系统。
您需要通过应用程序并行.NET版本。
在下列情况下,您应该为您的服务
- 您的应用程序当前使用.NET Framework(build议扩展而不是迁移)
- 您需要使用不可用于.NET Core的第三方.NET库或NuGet软件包。
- 您需要使用不可用于.NET Core的.NET技术。
- 您需要使用不支持.NET Core的平台。
首先在创build针对不同框架的ASP.NET Core Web应用程序时,在project.json文件中看到不同之处。
根据你的问题,如果你改变ASP.NET核心Web应用程序(.NET核心)project.json框架只有net461
和保存,它会恢复包,并会给出以下错误。
如果您删除了Microsoft.NETCore.App依赖项并保存该文件,它将再次恢复依赖关系,并不会给出任何错误。
如果您注意到第一个图像,那么这个图像最终会成为一个带有.NET Framework的ASP.NET核心Web应用程序。
起初我也感到困惑。 主要区别在于ASP.NET Web应用程序(.NET Framework)是我们一直使用的正常的asp.net。 它包含App_Start文件夹web.config,Global.asax等。(就像MVC5,你明白了..)。
而ASP.NET核心Web应用程序(.NET Framework)是一个核心框架(MVC6)。 (不依赖于System.Web)。 全新的project.json .. startup.cs和program.cs等等。它也支持.net框架的所有旧库。