我將我的應用程序從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 2.0類庫轉換爲.NET標準
- 3. .NET Core有沒有Rx.NET?
- 4. .NET Core SDK如何與.NET Framework項目中的.NET標準庫相關聯?
- 5. 有沒有.NET FastCGI庫?
- 6. .NET中的System.Runtime.CompilerServices標準庫
- 7. .NET核心與標準.NET庫性能
- 8. 類庫.NET標準和mscorlib.dll
- 9. msbuild builderror for .net標準庫
- 10. NET標準庫引用.NETCore
- 11. .NET Core和.NET Framework的C#庫
- 12. 構建.NET標準庫1.4使用.NET Framework 4.6.1沒有視覺工作室
- 13. 問題,而在標準的.Net類庫引用.net庫中
- 14. 有沒有像.NET的「選項」庫?
- 15. C#7,.Net標準,PCL,.Net Core和.Net之間的差異4.7
- 16. 在.net Core中引用.net 4.6.1庫
- 17. 彙編版本不匹配? (.Net Core 2.0與.NET標準2類庫)
- 18. 從類庫(.NET Core)引用ASP.NET Core Web應用程序(.NET Core)
- 19. 使用.NET Framework 4.0 dll而不是2.0 dll有沒有優勢?
- 20. 優勢和在.net
- 21. .NET Core中有沒有替換AssemblyBuilder.DefineDynamicAssembly?
- 22. 如何打包以.NET Core爲目標的可移植.NET庫?
- 23. .NET 3.5與.NET 3.0的用戶優勢
- 24. 替代SecureString的一個.NET標準庫?
- 25. 使用標準的.NET庫與VBA
- 26. 所有標準.net 4.5庫(dll)的列表
- 27. Spring Dot Net Remoting的優勢
- 28. 搜索.NET Core或標準NuGet包
- 29. .Net Core是否會生成與標準.Net相同的IL?
- 30. Microsoft.AspNetCore.TestHosts不能在.NET 1.6標準類庫
我同意這一點。看起來有些軟件包只能用於.NET Core,所以如果你的庫需要使用這些軟件包中的一個,那麼你就有理由使用.NET Core。否則,它看起來像.NET標準是我們應該用於共享庫的。 –