webform tutorial net mvc entre ejemplos diferencias asp asp.net-mvc asp.net-mvc-4 nuget .net-assembly

tutorial - ¿Por qué ASP.NET MVC 4 tiene tantos paquetes NuGet y cuáles son realmente importantes?



webform mvc (2)

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

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

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

ACTUALIZAR

Para aclarar, no estoy teniendo problemas, bueno, a menos que cuente la confusión básica como tal. 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.

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


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

  • Actualiza a los componentes entregados a través de NuGet - MVC y otros componentes asociados (Razor, API web) sin esperar una nueva versión "grande" 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.

Notarás que en un proyecto de la plantilla básica, obtendrás 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.WebPages
  • Microsoft.Net.Http
  • Microsoft.Web.Infraestructura
  • Newtonsoft.Json

Cinco de los nueve se utilizan para Web Api, que ha sido altamente componente para permitir a los desarrolladores mucha flexibilidad sobre dónde y cómo pueden usarlos. Si quiere minimizar sus paquetes NuGet, puede usar la plantilla Básica.

A medida que avanzas en las plantillas básicas e Internet, verás 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, Actualiza automáticamente jQuery por ti.