2012-08-16 13 views
37

Come dice il titolo, perché i progetti ASP.NET MVC 4 hanno così tanti pacchetti NuGet? L'intero quadro è suddiviso in pacchetti ora? Quali sono veramente importanti per un progetto vuoto che sarà un sito Web, nessuna API, ecc.?Perché ASP.NET MVC 4 ha così tanti pacchetti NuGet e quali sono veramente importanti?

UPDATE

Per chiarire, non sto avendo problema, bene, se non si considera la confusione di base come uno. Voglio solo sapere perché i nuovi progetti MVC 4 hanno così tanti pacchetti installati di default? Un progetto vuoto ha una pagina intera di pacchetti. Un progetto internet ha tre pagine complete di pacchetti.

Sono curioso di sapere perché questo è dovuto al fatto che i miei attuali progetti MVC 3 utilizzano al massimo cinque pacchetti.

+0

Sono curioso, perché avere un sacco di pacchetti NuGet è un problema? Che problema stai cercando di risolvere? – neontapir

+3

Non ho detto che c'era un problema. Ho semplicemente installato MVC 4 e creato un nuovo progetto e ho cercato di capire cosa fosse diverso. Un progetto vuoto ha una pagina piena di pacchetti e il progetto Internet ha tre pagine complete di pacchetti. Voglio semplicemente sapere perché è perché i miei progetti MVC 3 utilizzano al meglio circa cinque pacchetti. Essere curioso. – Gup3rSuR4c

+0

Ho fatto la domanda perché potrebbe colorare il tipo di risposte che ricevi. – neontapir

risposta

26

Come dice il titolo, perché i progetti ASP.NET MVC 4 hanno così tanti pacchetti NuGet?

Questa è una domanda che devi chiedere ai progettisti del framework.

Quali sono veramente importanti per un progetto vuoto che sarà un sito Web, nessuna API, ecc.?

Ecco il minimo indispensabile che vi permetterà di configurare il routing e definire un controller con un'azione rendering di una vista Razor:

<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> 

o se si preferisce solo 1/2 di una pagina:

enter image description here

+0

Abbastanza equo suppongo. Grazie per le informazioni. – Gup3rSuR4c

+0

E le pagine Web ASP.NET 2 Dati Web, dati e amministrazione? Ho capito che ASP.NET Web PAges 2 (Core) contiene funzionalità MVC e WebForms condivise, ma che dire di queste tre? Sono richiesti o migliori, cosa contengono esattamente? – mare

+0

oh scusa, ora vedo che gli helper Web di ASP.NET li hanno inseriti, non sono nel modello di base predefinito. – mare

22

ASP.NET MVC è stato sempre più distribuito tramite i pacchetti NuGet dall'Aggiornamento Strumenti ASP.NET MVC 3. Questo offre diversi vantaggi:

  • aggiornamenti per i componenti consegnati tramite NuGet - MVC stesso e altri componenti associati (Razor, Web API) senza attendere una nuova release "grande" di entrambi ASP.NET MVC, .NET, o Visual Studio.
  • Ciò significa anche che è possibile utilizzare singole parti come preferisci al di fuori di MVC, ad esempio, l'API Web può essere utilizzata al di fuori di ASP.NET.
  • Sempre più componenti vengono condivisi tra i livelli dell'interfaccia utente e altre parti di ASP.NET. Alcuni esempi: il routing è condiviso con Web Form e pagine Web, Razor è condiviso con pagine Web, le nuove parti di OAuth sono condivise con Web Forms.

Si noterà che in un progetto dal modello di base, otterrai i seguenti pacchetti:

  • Microsoft.AspNet.Mvc
  • Microsoft.AspNet.Razor
  • Microsoft .AspNet.WebApi
  • Microsoft.AspNet.WebApi.Client
  • Microsoft.AspNet.WebApi.Core
  • Microsoft.AspNet.WebApi.WebHost
  • Microsoft.AspNet.Pagine web
  • Microsoft.Net.Http
  • Microsoft.Web.Infrastructure
  • Newtonsoft.Json

Cinque dei nove sono utilizzati per Api Web, che è stato fortemente in componenti per consentire agli sviluppatori un sacco di flessibilità su dove e come possono usarli. Se si desidera ridurre a icona i pacchetti NuGet, è possibile utilizzare il modello di base.

Mentre ci si sposta nei modelli di base e Internet, verranno visualizzati altri pacchetti per supportare le funzionalità aggiuntive fornite dai progetti. Internet introduce diversi pacchetti di codice open source, non Microsoft, come le librerie OAuth e JavaScript.

Ci sono molti pacchetti JavaScript, il che è davvero una buona cosa quando ci pensi, poiché questo significa che NuGet gestisce automaticamente le dipendenze JavaScript per te - se vuoi aggiornare jQueryUI che a sua volta richiede una nuova versione di jQuery, aggiornerà automaticamente jQuery per te.

+0

Significa che non devo più installare il framework ASP.NET MVC4 tramite il Platform Installer? – Nigiri

+1

Visual Studio 2012 include MVC 4. Se si utilizza il 2010, si consiglia di utilizzare PI Web per la maggior parte dei casi. Potresti creare un sito MVC 4 usando un'applicazione web vuota e pacchetti NuGet, ma dovresti anche giocare con web.config, non avresti supporto VS completo per cose come snippet, ecc. –

+3

Non sono d'accordo su tutti i Javascript I pacchetti Nuget bloccati nei progetti MVC "vuoti" sono una buona cosa. Non voglio aspettare l'aggiornamento all'ultima patch di jquery finché non viene rilasciato su Nuget, che può essere indietro di un anno. Lo aggiorno da solo - è un singolo file, e Nuget si sta solo intromettendo. –

Problemi correlati