2012-08-16 17 views
37

Como dice el título, ¿por qué los proyectos ASP.NET MVC 4 tienen tantos paquetes NuGet? ¿El marco completo está dividido en paquetes ahora? ¿Cuáles son realmente importantes para un proyecto vacío que será un sitio web, sin API, etc.?¿Por qué ASP.NET MVC 4 tiene tantos paquetes NuGet y cuáles son realmente importantes?

ACTUALIZACIÓN

Para aclarar, no estoy teniendo problema, así, a menos que cuente confusión básica como uno. Solo quiero saber por qué los nuevos proyectos MVC 4 tienen tantos paquetes instalados por defecto. Un proyecto vacío tiene una página completa de paquetes. Un proyecto de Internet tiene tres páginas completas de paquetes.

Tengo curiosidad por saber por qué esto se debe a que mis proyectos actuales de MVC 3 usan como máximo cinco paquetes.

+0

Tengo curiosidad, ¿por qué es un problema tener muchos paquetes NuGet? ¿Que problema estas tratando de resolver? – neontapir

+3

No dije que había un problema. Simplemente instalé MVC 4 y creé un nuevo proyecto y busqué para ver qué era diferente. Un proyecto vacío tiene una página llena de paquetes y el proyecto de Internet tiene tres páginas completas de paquetes. Simplemente quiero saber por qué es porque mis proyectos de MVC 3 utilizan, como máximo, alrededor de cinco paquetes. Solo siendo curioso. – Gup3rSuR4c

+0

Le hice la pregunta porque podría colorear el tipo de respuestas que recibe. – neontapir

Respuesta

26

Como dice el título, ¿por qué los proyectos ASP.NET MVC 4 tienen tantos paquetes NuGet?

Esa es una pregunta que debe formularse a los diseñadores del marco.

¿Cuáles son realmente importantes para un proyecto vacío que será un sitio web, sin API, etc.?

Aquí es el mínimo estricto que le permitirá configurar el enrutamiento y definir un controlador con una acción de representación vistas 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 si lo prefiere sólo 1/2 de una página:

enter image description here

+0

. Supongo que es bastante. Gracias por la info. – Gup3rSuR4c

+0

¿Qué pasa con las páginas web ASP.NET 2 Datos web, datos y administración? Entiendo que ASP.NET Web PAges 2 (Core) contiene funciones compartidas de MVC y WebForms, pero ¿qué hay de esos tres? ¿Son necesarios o mejores? ¿Qué contienen exactamente? – mare

+0

oh lo siento, ahora veo que ASP.NET Web Helpers los introdujo, no están en la plantilla básica predeterminada. – mare

22

ASP.NET MVC se ha entregado cada vez más a través de paquetes NuGet desde la actualización de herramientas ASP.NET MVC 3. Esto ofrece varias ventajas:

  • actualizaciones a los componentes entregados a través de NuGet - sí MVC y otros componentes asociados (Razor, Web API) sin esperar a una nueva versión "grande" de cualquiera de ASP.NET MVC, .NET, o Visual Studio.
  • Esto también significa que puede usar partes individuales como lo desee fuera de MVC; por ejemplo, Web API puede usarse fuera de ASP.NET.
  • Cada vez más, los componentes se comparten entre las capas de la interfaz de usuario y otras partes de ASP.NET. Algunos ejemplos: el enrutamiento se comparte con formularios web y páginas web, Razor se comparte con páginas web, las nuevas partes de OAuth se comparten con formularios web.

Se dará cuenta de que en un proyecto de la plantilla básica, obtendrá los siguientes paquetes:

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

Cinco de los nueve se utilizan para la Web API, que ha sido muy por componentes para permitir a los desarrolladores una gran cantidad de flexibilidad sobre dónde y cómo pueden usarlos. Si quiere minimizar sus paquetes NuGet, puede usar la plantilla Básica.

A medida que avanza en las plantillas básicas e Internet, verá más paquetes para admitir las características adicionales que ofrecen los proyectos. Internet trae varios paquetes de código abierto, que no son de Microsoft, como las bibliotecas OAuth y JavaScript.

Hay muchos paquetes de JavaScript, lo cual es realmente bueno cuando lo piensas, ya que esto significa que NuGet está manejando automáticamente las dependencias de JavaScript por ti, si deseas actualizar jQueryUI, que a su vez requiere una nueva versión de jQuery, actualizará automáticamente jQuery por ti.

+0

¿Significa que ya no tengo que instalar la infraestructura ASP.NET MVC4 a través de Web Platform Installer? – Nigiri

+1

Visual Studio 2012 incluye MVC 4. Si usa 2010, le recomiendo usar Web PI para la mayoría de los casos. Podrías crear un sitio MVC 4 usando una aplicación web vacía y paquetes NuGet, pero también necesitarías jugar con web.config, no tendrías soporte VS completo para cosas como fragmentos, etc. –

+3

No estoy de acuerdo en todo el Javascript Los paquetes Nuget metidos en los proyectos MVC "vacíos" son algo bueno. No quiero esperar para actualizar al último nivel de parche de jquery hasta que se emita en Nuget, que puede tardar hasta un año. Lo actualizaré yo mismo, es un archivo único, y Nuget solo está en el medio. –

Cuestiones relacionadas