2016-05-01 8 views
58

मैंने देखा है कि NuGet हाल ही में कई नए नेट कोर से संबंधित TFMs के लिए समर्थन जोड़ा गया है जिसमें शामिल है:नए नेटस्टैन्डैप और नेटकोरैप टीएफएम के बीच क्या अंतर है?

  • netstandard (1.0-1.5)
  • netstandardapp (1,5)
  • netcoreapp (1,0)

मेरे सर्वोत्तम ज्ञान के लिए, netstandard एक पोर्टेबल प्रोफाइल के .NET कोर समतुल्य है; यह आपको एक ही मोनिकर का उपयोग करके कई प्लेटफार्मों को लक्षित करने की अनुमति देता है, बजाय आपके द्वारा समर्थित प्रत्येक प्लेटफॉर्म को स्पष्ट रूप से वर्तनी करने के बजाय, उदाहरण के लिए portable-net45+netcore45+wp81

इस बीच, this document के अनुसार netstandardapp अधिक नेट कोर में एक सांत्वना आवेदन की तरह है; यह किसी भी .NET कोर रनटाइम (उदा। कोरसीएलआर, कोरआरटी) का प्रतिनिधित्व करता है।

क्या, तो वास्तव में netcoreapp होना चाहिए? मैं के लिए यह here, जो नीचे थोड़े बताते हैं कि क्या अंतर है पर एक टिप्पणी भी शामिल है पर नज़र रखने मुद्दा मिल गया है, लेकिन मैं नहीं मिलता है क्या

NETStandard.Library + एप्लिकेशन मेजबान

के बीच का अंतर

और

नेट कोर आधार स्थापित

है। क्या कोई इसे मुझे समझा सकता है?

उत्तर

32

.NET मानक लाइब्रेरी (नेटस्टैंड) ऐप मॉडल में एक सतत लाइब्रेरी है। .NET कोर (नेटकोरैप) .NET मानक लाइब्रेरी के शीर्ष पर चलता है और एक ऐपमोडेल है। GitHub पृष्ठ से वे का जवाब क्या एक .NET स्टैंडर्ड अनुप्रयोग है और क्या फर्क नेट कोर (https://github.com/dotnet/corefx/blob/master/Documentation/architecture/net-standard-applications.md) और (https://github.com/dotnet/corefx/blob/master/Documentation/architecture/net-platform-standard.md)

अद्यतन के साथ है: .NETStandardapp अप्रचलित है। नेटकोर ऐप इसे बदलता है (https://github.com/NuGet/Home/issues/2524)

प्रश्न: .NET मानक एप्लिकेशन क्या है? ए: एक .NET मानक एप्लिकेशन एक ऐसा एप्लिकेशन है जो किसी भी .NET कोर रनटाइम पर चला सकता है: कोरसीएलआर (वर्तमान), .NETNative (भविष्य)। यह कई .NET कोर प्लेटफ़ॉर्म (विंडोज़, ओएसएक्स, लिनक्स) में से एक पर चल सकता है। यह दिए गए रनटाइम द्वारा प्रदान किए गए मेजबान पर निर्भर करता है। यह संकुल से बनाया गया एक मिश्रित ढांचा है जिस पर एप्लिकेशन निर्भर करता है। इसकी असेंबली लोडिंग नीति किसी भी अनुप्रयोग कॉन्फ़िगरेशन के बिना निर्भरताओं के नए संस्करणों की अनुमति देती है (उदाहरण: बाइंडिंग रीडायरेक्ट की आवश्यकता नहीं है)।

प्रश्न: यह .NETCore से अलग कैसे है? ए: .NETCore लक्ष्य ढांचा विंडोज 8, विंडोज 8.1, और यूनिवर्सल विंडोज प्लेटफार्म अनुप्रयोगों का प्रतिनिधित्व करता है। संगतता उद्देश्यों के लिए यह moniker ".NET कोर अनुप्रयोगों" के लिए पुन: उपयोग नहीं किया जा सकता है। ब्रांडिंग ओवरलैप दुर्भाग्यपूर्ण है।

प्रश्न: यह .NETStandard से अलग कैसे है? ए: नेटस्टैन्डर्ड लक्ष्य ढांचा एक अमूर्त लक्ष्य ढांचा है जो कई ढांचे और प्लेटफार्मों की एपीआई सतह का प्रतिनिधित्व करता है। चूंकि ऐसी नेटवर्क्स असेंबली किसी भी मंच पर चल सकती हैं जो कि उस असेंबली द्वारा लक्षित नेटस्टैंड का समर्थन करती है, उदाहरण के लिए: .NET डेस्कटॉप, विंडोज फोन, यूनिवर्सल विंडोज प्लेटफ़ॉर्म एप्लिकेशन, .NET मानक अनुप्रयोग आदि। नेट मानक मानक एक ठोस लक्ष्य ढांचा है जो एकल का प्रतिनिधित्व करता है एपीआई सतह और कार्यान्वयन दोनों के साथ मंच। .NET मानक अनुप्रयोग स्वयं पर चलने योग्य हैं। .NETStandard पुस्तकालयों को उस प्रकार के आवेदन में उपयोग करने के लिए एक विशिष्ट ठोस लक्ष्य ढांचे द्वारा प्रकाशित या उपभोग किया जाना चाहिए।

Overview of .NET Future innovation

+4

में बड़ा परिवर्तन आप अपने जवाब हटा सकते हैं या कम से कम इसे संशोधित पता चलता है? netstandardapp मर चुका है। दूसरा जवाब देखें। – Thomas

+1

ने उत्तर दिया कि .NETStandardapp अप्रचलित है और नेटकोरैप इसे बदल देता है। धन्यवाद –

+1

तो जब मैं 'क्लास लाइब्रेरी (.NET कोर)' प्रोजेक्ट बनाता हूं तो पृथ्वी पर क्यों मुझे '.NETStandard' का संदर्भ मिलता है? –

17

नई netstandardapp और netcoreapp TFMs के बीच क्या अंतर है?

netstandardapp अप्रचलित है, netcoreapp इसे बदल देता है।

फिर, नेटकोरैप वास्तव में क्या होना चाहिए?

netcoreapp नेट कोर प्लेटफार्म के लिए लक्ष्य ढांचे उपनाम है। यदि आप अपने प्रोजेक्ट.जेसन के फ्रेमवर्क अनुभाग में netcoreapp जोड़ते हैं, तो आपके ऐप का निर्माण .NET कोर पर चलाया जाएगा।

मैं क्या NETStandard.Library + एप्लिकेशन मेजबान और नेट कोर आधार के बीच अंतर स्थापित है नहीं मिलता है। क्या कोई इसे मुझे समझा सकता है?

NETStandard.Library + एप्लिकेशन मेजबान NetStandard.App पैकेज है। इसका उपयोग न करें - यह मर चुका है। इसमें तीन ऐप होस्ट पैकेज और मानक लाइब्रेरी शामिल है।

  • Microsoft.NETCore.DotNetHostPolicy
  • Microsoft.NETCore.Platforms
  • Microsoft.NETCore.Runtime
  • NETStandard.Library

नेट कोर आधार स्थापित Microsoft.NetCore.App पैकेज है। इसके बजाए इसका इस्तेमाल करें। यह उपरोक्त दो पैकेजों को रखता है, उनमें से दो को स्क्रैप करता है, और इसमें 37 अतिरिक्त Microsoft.* और System.* पैकेज शामिल हैं।

  • अतिरिक्त Microsoft.* विधानसभाओं
  • Microsoft.NETCore.DotNetHostPolicy
  • Microsoft.NETCore.Platforms<----- अप्रैल 2016 में, इन दो NETStandard.Library की
  • Microsoft.NETCore.Runtime<------- हिस्सा बन गया।
  • NETStandard.Library
  • अतिरिक्त System.* विधानसभाओं

संदर्भ

https://github.com/NuGet/Home/issues/2524> कहा गया है कि netstandardapp लक्ष्य ढांचे उपनाम है "अब वैध नहीं।"

https://github.com/dotnet/cli/issues/2482> राज्यों "NetStandardApp को लक्षित करने वाली परियोजनाओं को NetCoreApp पर पोर्ट करने की आवश्यकता है। NetStandardApp को सीएलआई 1.0.0 आरसी 2 द्वारा समर्थित नहीं किया जा रहा है।"

https://www.myget.org/feed/aspnetvnext/package/nuget/NETStandard.Library> पैकेज इतिहास अप्रैल 2016

+9

पर जब आप स्रोत कोड में चीजों को विज़ुअलाइज़ करना पसंद करते हैं, तो आप इससे खुश होंगे: https://gist.github.com/davidfowl/ 8939f305567e1755412d6dc0b8baf1b7। यह जिस्ट एएसपी.नेट कोर के आर्किटेक्ट द्वारा बनाया गया था। – Thomas

+0

@ थॉमस: बेहद अच्छा लिंक। लघु लेकिन बहुत ही जानकारीपूर्ण। –

संबंधित मुद्दे