2012-08-16 16 views
37

जैसा कि शीर्षक कहता है, एएसपी.नेट एमवीसी 4 परियोजनाओं में इतने सारे NuGet पैकेज क्यों हैं? क्या संपूर्ण ढांचा अब संकुल में विभाजित है? एक खाली परियोजना के लिए कौन सा वास्तव में महत्वपूर्ण है जो एक वेबसाइट, कोई एपीआई आदि नहीं होगा?एएसपी.नेट एमवीसी 4 में इतने सारे NuGet पैकेज क्यों हैं और जो वास्तव में महत्वपूर्ण हैं?

अद्यतन

स्पष्ट करने के लिए, मैं नहीं आ रही है इस मुद्दे को, ठीक है, जब तक आप बुनियादी भ्रम एक के रूप में गिनती। मैं सिर्फ यह जानना चाहता हूं कि क्यों नई एमवीसी 4 परियोजनाओं में डिफ़ॉल्ट रूप से इतने सारे पैकेज स्थापित किए गए हैं? एक खाली परियोजना में संकुल का एक पूरा पृष्ठ है। एक इंटरनेट प्रोजेक्ट में पैकेज के तीन पूर्ण पृष्ठ हैं।

मैं सिर्फ उत्सुक हूं क्योंकि ऐसा क्यों है क्योंकि मेरी वर्तमान एमवीसी 3 परियोजनाएं अधिकतम पांच पैकेजों पर उपयोग करती हैं।

+0

मैं उत्सुक हूं, बहुत सारे NuGet पैकेजों को एक समस्या क्यों है? आप कौनसी समस्याएं हल करने की कोशिश कर रहे हैं? – neontapir

+3

मैंने यह नहीं कहा कि कोई समस्या थी। मैंने बस एमवीसी 4 स्थापित किया और एक नई परियोजना बनाई और यह देखने के लिए चारों ओर पोक किया कि क्या अलग था। एक खाली प्रोजेक्ट में संकुल से भरा एक पृष्ठ है, और इंटरनेट प्रोजेक्ट में पैकेज के तीन पूर्ण पृष्ठ हैं। मैं बस यह जानना चाहता हूं कि ऐसा क्यों है क्योंकि मेरी एमवीसी 3 परियोजनाएं लगभग पांच पैकेजों का सबसे अच्छा उपयोग करती हैं। बस उत्सुक होना। – Gup3rSuR4c

+0

मैंने सवाल पूछा क्योंकि यह आपके द्वारा प्राप्त प्रतिक्रियाओं को रंग सकता है। – neontapir

उत्तर

26

जैसा कि शीर्षक कहता है, एएसपी.नेट एमवीसी 4 परियोजनाओं में इतने सारे NuGet पैकेज क्यों हैं?

यह एक सवाल है जिसे आपको ढांचे के डिजाइनरों से पूछने की आवश्यकता है।

कौन सी खाली परियोजना के लिए वास्तव में महत्वपूर्ण है जो एक वेबसाइट, कोई एपीआई आदि नहीं होगी?

यहाँ सख्त न्यूनतम है कि आप रूटिंग कॉन्फ़िगर और एक कार्य एक उस्तरा दृश्य प्रतिपादन के साथ एक नियंत्रक को परिभाषित करने की अनुमति देगा है:

<packages> 
    <package id="Microsoft.AspNet.Mvc" version="4.0.20710.0" targetFramework="net40" /> 
    <package id="Microsoft.AspNet.Razor" version="2.0.20710.0" targetFramework="net40" /> 
    <package id="Microsoft.AspNet.WebPages" version="2.0.20710.0" targetFramework="net40" /> 
    <package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net40" /> 
</packages> 

या आप केवल 1/2 एक पेज के पसंद करते हैं:

enter image description here

+0

पर्याप्त मेला लगता है। जानकारी के लिए धन्यवाद। – Gup3rSuR4c

+0

एएसपी.नेट वेब पेज 2 वेब डेटा, डेटा और प्रशासन के बारे में क्या? मुझे लगता है कि एएसपी.नेट वेब पेज 2 (कोर) में साझा एमवीसी और वेबफॉर्म कार्यक्षमता है लेकिन उन तीनों के बारे में क्या है? क्या वे आवश्यक या बेहतर हैं, उनमें वास्तव में क्या शामिल है? – mare

+0

ओह क्षमा करें, अब मैं देखता हूं कि एएसपी.नेट वेब हेल्पर्स ने उन्हें लाया, वे डिफ़ॉल्ट मूल टेम्पलेट में नहीं हैं। – mare

22

ASP.NET MVC तेजी के बाद से ASP.NET MVC 3 उपकरण अद्यतन NuGet पैकेज के माध्यम से वितरित किया गया है। या तो ASP.NET MVC, नेट की एक नई "बड़ी" रिहाई का इंतजार किए बिना ही MVC और अन्य संबद्ध घटकों (उस्तरा, जाल एपीआई), - के माध्यम से NuGet वितरित घटकों के लिए करने के लिए

  • उन्नयन: यह कई लाभ प्रदान करता या विजुअल स्टूडियो।
  • इसका यह भी अर्थ है कि आप व्यक्तिगत भागों का उपयोग कर सकते हैं जैसे आप एमवीसी के बाहर चाहते हैं - उदाहरण के लिए, वेब एपीआई का उपयोग एएसपी.नेट के बाहर किया जा सकता है।
  • अधिक से अधिक, यूआई परतों और एएसपी.NET के अन्य भागों के बीच घटक साझा किए जा रहे हैं। कुछ उदाहरण: रूटिंग वेब फॉर्म और वेब पेजों के साथ साझा की जाती है, रेजर को वेब पेजों के साथ साझा किया जाता है, नए ओएथ भागों को वेब फॉर्म के साथ साझा किया जाता है।

आप मूल टेम्पलेट से एक परियोजना, तो आपको निम्न संकुल मिलेगा में पता चलेगा कि:

  • Microsoft.AspNet.Mvc
  • Microsoft.AspNet.Razor
  • माइक्रोसॉफ्ट .AspNet.WebApi
  • Microsoft.AspNet.WebApi.Client
  • Microsoft.AspNet.WebApi.Core
  • माइक्रोसॉफ्ट.एस्पनेट.एबएपीआई। वेबहोस्ट
  • माइक्रोसॉफ्ट.एस्पनेट।वेबपेजों
  • Microsoft.Net.Http
  • Microsoft.Web.Infrastructure
  • Newtonsoft.Json

नौ में से पांच जाल एपीआई, जो बहुत componentized किया गया है डेवलपर्स के एक बहुत अनुमति देने के लिए के लिए उपयोग किया जाता है इस बारे में लचीलापन कि वे कहां और कैसे उपयोग कर सकते हैं। यदि आप अपने NuGet पैकेज को कम करना चाहते हैं, तो आप मूल टेम्पलेट का उपयोग कर सकते हैं।

जैसे ही आप मूल और इंटरनेट टेम्पलेट्स में जाते हैं, आप परियोजनाओं को प्रदान की जाने वाली अतिरिक्त सुविधाओं का समर्थन करने के लिए और अधिक पैकेज देखेंगे। इंटरनेट ओपन-स्रोत, गैर-माइक्रोसॉफ्ट कोड जैसे ओएथ और जावास्क्रिप्ट पुस्तकालयों के कई पैकेज लाता है।

बहुत सारे जावास्क्रिप्ट पैकेज हैं, जो वास्तव में अच्छी बात है जब आप इसके बारे में सोचते हैं, क्योंकि इसका मतलब है कि NuGet स्वचालित रूप से आपके लिए जावास्क्रिप्ट निर्भरताओं को संभालने में सक्षम है - अगर आप jQueryUI को अपग्रेड करना चाहते हैं जिसके बदले में एक नया संस्करण चाहिए jQuery का, यह स्वचालित रूप से आपके लिए jQuery को अपग्रेड कर देगा।

+0

क्या इसका मतलब यह है कि मुझे अब वेब प्लेटफार्म इंस्टालर के माध्यम से एएसपी.नेट एमवीसी 4 फ्रेमवर्क स्थापित करने की आवश्यकता नहीं है? – Nigiri

+1

विजुअल स्टूडियो 2012 में एमवीसी 4 शामिल है। यदि आप 2010 का उपयोग कर रहे हैं, तो मैं ज्यादातर मामलों के लिए वेब पीआई का उपयोग करने की सलाह दूंगा। आप एक खाली वेब एप्लिकेशन और NuGet संकुल का उपयोग कर एक एमवीसी 4 साइट बना सकते हैं, लेकिन आपको web.config के साथ भी बेवकूफ़ बनाना होगा, आपके पास स्निपेट इत्यादि जैसी चीजों के लिए पूर्ण वीएस समर्थन नहीं होगा। –

+3

सभी जावास्क्रिप्ट पर असहमत Nuget संकुल "खाली" एमवीसी परियोजनाओं में एक अच्छी बात है। मैं jquery के नवीनतम पैच स्तर तक अपग्रेड करने के लिए इंतजार नहीं करना चाहता, जब तक यह Nuget पर जारी नहीं हो जाता है, जो एक वर्ष के बराबर हो सकता है। मैं इसे स्वयं अपडेट कर दूंगा - यह एक ही फाइल है, और Nuget बस रास्ते में हो रही है। –

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