ASP.NET 5 क्लास लाइब्रेरी प्रोजेक्ट क्यों बनाएं?


98

मैं यह पता लगाने की कोशिश कर रहा हूं कि "ASP.NET 5 क्लास लाइब्रेरी" (vNext) C # प्रोजेक्ट का ASP.NET के साथ क्या संबंध है। केवल नियमित सी # "क्लास लाइब्रेरी" प्रोजेक्ट के बजाय इस टेम्पलेट के साथ एक प्रोजेक्ट क्यों बनाएं?

मुझे नई सुविधाएँ पसंद हैं, जैसे प्रोजेक्ट .json फ़ाइल .csproj फ़ाइल आदि के बजाय, लेकिन यह प्रोजेक्ट ASP.NET या IIS आदि के साथ कुछ भी नहीं होने पर "ASP.NET" क्लास लाइब्रेरी बनाने के लिए सही नहीं लगता है। यह व्यापार तर्क परत के लिए सिर्फ एक परियोजना है। एक नई WebApi ASP.NET वेब साइट अंततः इस परियोजना को संदर्भित करेगी, लेकिन इस बिंदु पर यह प्रासंगिक नहीं है।

क्या यह सिर्फ बुरी तरह से नामित है? क्या इसे केवल "vNext क्लास लाइब्रेरी" कहा जाना चाहिए और वेब ऐप की तरह दिखने वाले आइकन का उपयोग नहीं करना चाहिए?


क्या कोई अनुमान है कि जब उन्हें लगता है कि पुरानी पुरानी लाइब्रेरी की मौजूदा परियोजना को जोड़ना संभव है? यह वह आखिरी सोच है जो मैंने अपने MVC 5 को ASP.NET 5 MVC 6 माइग्रेशन में लाने के लिए बढ़ा दी है।
मूलांक

"ASP.NET 5 क्लास लाइब्रेरी" में ASP .NET कोर की तुलना में अलग फ्रेमवर्क है, लेकिन कोर की अपनी कोर क्लास लाइब्रेरी है , इसके बजाय इसका उपयोग करें।
जैदर

जवाबों:


100

ASP.NET 5 क्लास लाइब्रेरी प्रोजेक्ट क्यों बनाएं?

ASP.NET 5 क्लास लाइब्रेरी प्रोजेक्ट्स ( .csproj) पर ASP.NET 5 क्लास लाइब्रेरी प्रोजेक्ट्स ( .kproj) के कई लाभ हैं :

  1. ASP.NET 5 वर्ग पुस्तकालयों आसानी से इस तरह के रूप कई लक्ष्यों को पार संकलन परियोजनाओं, समर्थन aspnet50, aspnetcore50, net45, और विभिन्न अन्य पोर्टेबल वर्ग पुस्तकालय रूपों। इसमें Intellisense के लिए समृद्ध Visual Studio समर्थन शामिल है जो आपको सूचित करता है कि कौन से API किस लक्ष्य के लिए उपलब्ध हैं।
  2. NuGet पैकेज स्वचालित रूप से बनाए जाते हैं, जो कक्षा पुस्तकालयों के साथ करने के लिए एक बहुत ही सामान्य बात है।
  3. बेहतर उत्पादकता जब यह फ़ाइल सिस्टम में परिवर्तन होने पर समाधान एक्सप्लोरर को स्वचालित रूप से ताज़ा करने जैसी चीजों की बात आती है। * .Csproj फ़ाइल में परस्पर विरोधी परिवर्तनों को मर्ज करने का प्रयास करते समय स्रोत नियंत्रण में कम विरोध।
  4. क्रॉस-प्लेटफ़ॉर्म संकलित किया जा सकता है (क्योंकि यह MSBuild पर निर्भर नहीं करता है)

आप एक .ksproj प्रोजेक्ट को एक .kproj प्रोजेक्ट से संदर्भित कर सकते हैं (यह विजुअल स्टूडियो 2015 के नए पूर्वावलोकन के साथ बहुत आसान बना दिया गया था), लेकिन कुछ मैनुअल चरणों के साथ यह हमेशा संभव था।

इसमें "ASP.NET" नाम क्यों है?

जहां तक ​​नाम जाता है, यह इतिहास का अवशेष है जिसे जल्द ही संबोधित किया जाएगा। नया प्रोजेक्ट प्रकार ASP.NET 5 अनुप्रयोगों से कहीं अधिक उपयोगी है। विज़ुअल स्टूडियो के भविष्य के पूर्वावलोकन में नए नाम देखने की उम्मीद:

  • .NET कंसोल एप्लीकेशन (क्रॉस-प्लेटफॉर्म)
  • .NET क्लास लाइब्रेरी (क्रॉस-प्लेटफ़ॉर्म)

अपडेट 5/13/2015

Visual Studio 2015 RC की रिलीज़ के साथ आप अद्यतन प्रोजेक्ट टेम्पलेट नाम देख सकते हैं:

  • कक्षा पुस्तकालय (पैकेज)
  • कंसोल एप्लिकेशन (पैकेज)

project.jsonप्रोजेक्ट बनाने, चलाने और पैकेज (एक NuGet पैकेज में) के लिए ये फ़ाइल और .NET एक्ज़िक्यूशन एनवायरनमेंट (DNX) का उपयोग करते हैं ।

ये प्रोजेक्ट टेम्प्लेट "वेब" नोड के तहत नए प्रोजेक्ट संवाद में दिखाना जारी रखते हैं, लेकिन अब मुख्य "विज़ुअल सी #" नोड में भी दिखाते हैं।

VS2015 RC क्लास लिब / कंसोल ऐप टेम्प्लेट


क्या आप # 2 पर विस्तार कर सकते हैं - क्या आपका मतलब है कि intellisense एक एपीआई का सुझाव देता है और फिर आपके लिए नगेट पैकेज डाउनलोड करता है? मैं JQuery टाइप करता हूँ और यह मुझे दे देंगे?
सिमोन_विवर

3
@Simon_Weaver मेरा मतलब है कि जबकि नियमित कक्षा पुस्तकालय परियोजना सिर्फ एक DLL और PDB का उत्पादन करती है, नया एक NUPKG (NuGet पैकेज) उत्पन्न करता है जिसे nuget.org पर अपलोड किया जा सकता है।
ईलोन

2
.kproj तब से इसका नाम बदल दिया गया है .xproj
Boris Lipschitz

10

यह एक दिलचस्प अवलोकन है, वर्तमान टेम्पलेट ASP.NET 5 रनटाइम के साथ संगत एक क्लास लाइब्रेरी उत्पन्न करेगा। आपको यह सामान्य C # क्लास लाइब्रेरी से नहीं मिलता है।

मैंने इस डिज़ाइन प्रश्न पर नज़र रखने के लिए निम्नलिखित समस्या दर्ज की - https://github.com/aspnet/Home/issues/281


मैं आपका मुद्दा धन्यवाद देखूंगा। जाहिर है "ASP.NET 5 कंसोल अनुप्रयोग" के साथ एक ही नामकरण मुद्दा। शायद इसे "vNext कंसोल एप्लिकेशन" कहा जाना चाहिए, अन्यथा देवता इसे ASP.NET वेबसाइट पर किसी प्रकार के कंसोल ऐप के साथ भ्रमित कर सकते हैं। हो सकता है कि टेम्प्लेट का स्थान "विज़ुअल C # -> वेब" से "विज़ुअल C # -> vNext"
mkaj

गीथब अंक को बंद कर दिया गया है। बेहतर परियोजना के नाम - धन्यवाद: github.com/aspnet/Home/issues/281
mkaj

3

एक बात जो मुझे समझ में आती है, वह यह है कि ASP.NET 5 क्लास लाइब्रेरी प्रोजेक्ट का अंतिम उत्पाद एक NuGet पैकेज है (बजाय केवल .dll असेंबली का)।

आप Visual Studio 2015 में प्रोजेक्ट को राइट क्लिक करके और "प्रकाशित करें ..." विकल्प चुनकर NuGet पैकेज जनरेट कर सकते हैं। या आप कमांड लाइन पर "KPM पैक" का उपयोग कर सकते हैं।

साथ ही, आपके पास ASP.NET 5 कोर रनटाइम का उपयोग करने की क्षमता है ताकि आपकी लाइब्रेरी क्रॉस-प्लेटफॉर्म चला सके।


क्या यह बुरी तरह से नामित है? ASP.NET से कोई लेना देना नहीं है?
मकाज

1
ASP.NET 5 के प्रमुख लक्ष्यों में से एक इसे क्रॉस प्लेटफॉर्म चलाने की अनुमति देना है। कुछ ने पूछा है "क्या इसे इसके बजाय .NET कोर नहीं कहा जाना चाहिए?" कम से कम अब के लिए Microsoft का बहु-प्लेटफ़ॉर्म दृष्टिकोण केवल वेब (और कंसोल ऐप) के बारे में है और जावा जैसे डेस्कटॉप विकास का समर्थन नहीं करता है। वेब के बारे में जोर देने के लिए वे "ASP.NET 5" नाम से यह सब ब्रांडिंग कर रहे हैं। यदि आप एक पुस्तकालय का निर्माण करना चाहते हैं जो क्रॉस प्लेटफॉर्म चलाता है तो यह ASP.NET 5 क्लास लाइब्रेरी होना चाहिए।
थॉमस कैडलेक

इसका मतलब है कि मैं अपने बॉस को 'हां' बता सकता हूं जब वह पूछता है 'ASP.NET सबसे अच्छी तकनीक है' - यही कारण है कि
साइमन_वेअर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.