我将我的应用程序从VS2015移植到VS2017,并试图找出正确的移植路径。我还将我的Web服务迁移到.NET Core,以充分利用部署到Linux或Windows服务器的优势。我发现我可以选择在.NET Standard或.NET Core中创建基本库。 .NET Core库有没有优势,或者我应该默认在.NET Standard中创建基础库?.NET标准库的.NET Core库有没有优势?
回答
实际上,.NET Standard 2.0是.NET Framework 4.6.2(-ish)和.NET Core 2.0的交集。
如果您构建一个面向.NET标准2.0的库,那么您的库可以被.NET Framework库和应用程序以及.NET Core库和应用程序使用。这是Standard的优势。
但是有几种类型/成员已被添加到.NET Core中,其中不是 .NET标准的一部分。如果你想使用类似新的CertificateRequest类,你需要明确的目标.NET核心。因为一般的折衷将总是“.NET标准=>更多地方; .NET核心=>更新的东西”。因此,.NET核心允许新的东西比.NET框架更快地到达用户。
.Net Standard
只是封装接口与可用于提供跨.Net Framework
,.Net Core
和others
谢谢,但我有一个大致的想法是什么。鉴于这一点,是否有任何**的优势**选择.NET标准的库类型的.NET核心?鉴于.NET标准的普遍性,在什么条件下你想选择基本库的.NET Core? –
如果你知道它是什么,你应该知道什么是最适合你的。如果你选择'.Net Standard',那么你需要提供这个iterfaces的实现(例如'.Net Core'或'.Net Framework'),并且可以使用Nuget包作为'.Net Standard',但记住 - 只有'。 Net Core的实现是完全多平台的。因此,如果你想将你的应用程序部署到'Linux或Windows',那么只选择'.Net Core'或'.Net Standard',只需要'.Net Core' –
我不会选择一个.NET核心库的兼容性。差异是在引用的库:
- 的.NET标准库引用netstandardX.X的NuGet元包
- 的.NET核心库引用netcoreappX.X的NuGet元包
netcoreapp软件包还包括一些.NET标准软件包,但也包括一堆.NET Core应用程序特定软件包(包括libuv。不知道库为什么需要libuv)。
因此,.NET标准库适用于跨平台和.NET核心库仅用于.NET Core
- 1. .Net的鼠标手势库?
- 2. .NET Core有没有Rx.NET?
- 3. 有没有.NET FastCGI库?
- 4. .NET Core SDK如何与.NET Framework项目中的.NET标准库相关联?
- 5. .NET中的System.Runtime.CompilerServices标准库
- 6. .NET核心与标准.NET库性能
- 7. msbuild builderror for .net标准库
- 8. 类库.NET标准和mscorlib.dll
- 9. NET标准库引用.NETCore
- 10. 构建.NET标准库1.4使用.NET Framework 4.6.1没有视觉工作室
- 11. .NET Core和.NET Framework的C#库
- 12. 问题,而在标准的.Net类库引用.net库中
- 13. 有没有像.NET的“选项”库?
- 14. 使用.NET Framework 4.0 dll而不是2.0 dll有没有优势?
- 15. C#7,.Net标准,PCL,.Net Core和.Net之间的差异4.7
- 16. 汇编版本不匹配? (.Net Core 2.0与.NET标准2类库)
- 17. 在.net Core中引用.net 4.6.1库
- 18. .NET Core中有没有替换AssemblyBuilder.DefineDynamicAssembly?
- 19. .NET 3.5与.NET 3.0的用户优势
- 20. 使用标准的.NET库与VBA
- 21. Spring Dot Net Remoting的优势
- 22. 单元测试.NET标准1.6库
- 23. Microsoft.AspNetCore.TestHosts不能在.NET 1.6标准类库
- 24. .Net Core是否会生成与标准.Net相同的IL?
- 25. 对CRC有没有优势?
- 26. 图像裁剪C#没有.net库
- 27. 没有标准库的语言引擎
- 28. NDK没有找到标准的C++库
- 29. 使用依赖注入与.NET核心类库(.NET标准)
- 30. .net core - 数据库url解析器
我同意这一点。看起来有些软件包只能用于.NET Core,所以如果你的库需要使用这些软件包中的一个,那么你就有理由使用.NET Core。否则,它看起来像.NET标准是我们应该用于共享库的。 –