Primeros pasos con asp.net-core-mvc
Agregar software intermedio MVC
Si creó un proyecto vacío o aún no tiene mvc configurado en su aplicación, puede agregar la dependencia:
"Microsoft.AspNetCore.Mvc": "1.0.1"
A su archivo project.json
en "dependencies"
.
Y registre el middleware MVC en su clase de inicio:
public void ConfigureServices(IServiceCollection services)
{
...
services.AddMvc();
}
Tenga en cuenta que tenemos services.AddMvc()
y services.AddMvcCore()
. Si está comenzando con asp.net core
, o lo quiere tal como está, debe continuar con services.AddMvc()
. Pero si desea una experiencia avanzada, puede comenzar con una canalización MVC mínima y agregar funciones para obtener un marco personalizado usando services.AddMvcCore()
. Consulte esta discusión para obtener más información sobre AddMvcCore
public void ConfigureServices(IServiceCollection services)
{
services
.AddMvcCore()
.AddAuthorization()
.AddJsonFormatters(j => j.Formatting = Formatting.Indented);
}
Ahora puede decirle a su creador de aplicaciones que use el mvc:
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
...
app.UseMvc();
}
o con enrutamiento predeterminado:
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
Instalación o configuración
Instalación de Visual Studio
Si no tiene instalado Visual Studio, puede descargar la edición gratuita de Visual Studio Community Edition aquí. Si ya lo tiene instalado, puede continuar con el siguiente paso.
Creación de una aplicación ASP.NET Core MVC.
- Abrir Visual Studio.
- Seleccione Archivo > Nuevo proyecto.
- Seleccione Web en el idioma de su elección dentro de la sección Plantillas a la izquierda.
- Elija un tipo de proyecto preferido dentro del cuadro de diálogo.
- Opcional: Elija un .NET Framework al que le gustaría apuntar
- Nombra tu proyecto e indica si deseas crear una Solución para el proyecto.
- Haga clic en Aceptar para crear el proyecto.
Se le presentará otro cuadro de diálogo para seleccionar la plantilla que desea utilizar para el proyecto:
Cada una de las descripciones se explica por sí misma. Para este primer proyecto, seleccione Aplicación web, que contendrá todas las configuraciones predeterminadas, la autenticación y parte del contenido existente.
Dado que esta es una aplicación de introducción y no requiere ningún tipo de seguridad o autenticación, puede cambiar la opción de autenticación a Sin autenticación en el lado derecho del cuadro de diálogo y hacer clic en Aceptar para crear el proyecto.
A continuación, debería ver el nuevo proyecto en el Explorador de soluciones:
Presione la tecla F5 para ejecutar la aplicación y comience una sesión de depuración, que iniciará la aplicación dentro de su navegador predeterminado:
Ahora puede ver que su proyecto está funcionando localmente y está listo como punto de partida para que pueda crear su aplicación.
PD: Utilicé el tema Introducción a asp.net-core de la documentación asp.net-core.
Conceptos básicos de inyección de dependencia
Casi cualquier controlador necesita algunas dependencias externas para funcionar. Aquí hay una forma de configurar un objeto de dependencia (o su fábrica) y pasarlo a un controlador. Si lo hace, ayudará a mantener una [separación de preocupaciones] 1, mantener el código claro y comprobable.
Digamos que tenemos una interfaz y su implementación que necesita algunos valores de configuración en su constructor:
public interface ISomeDependency
{
async Task<IEnumerable<string>> GetItemsAsync(string key);
}
public class SomeDependency : ISomeDependency
{
public SomeDependency(string connectionString)
{
...
}
...
}
Se usa en alguna clase de controlador:
public class SomeController : Controller
{
private reanonly ISomeDependency dependency;
public SomeController(ISomeDependency dependency)
{
...
this.dependency = dependency;
}
...
public async Task<IEnumerable<string>> Get(string key) =>
await dependency.GetItemsAsync(key);
}
Se puede inyectar esta dependencia en el constructor del controlador llamando a services.AddTransient
dentro del método Startup.ConfigureServices
:
public class Startup
{
public Startup(IHostingEnvironment env)
{
var builder = new ConfigurationBuilder().
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
...
Configuration = builder.Build();
}
public IConfigurationRoot Configuration { get; }
public void ConfigureServices(IServiceCollection services)
{
...
services.AddTransient(serviceProvider =>
new MyDependency(Configuration["Data:ConnectionString"]));
}
...
}
Aquí Data:ConnectionString
es una ruta a una configuración en el archivo appsettings.json
:
{
...
},
"Data": {
"ConnectionString": "some connection string"
}
}
Gestión de por vida
Para gestionar la vida útil del objeto inyectado, junto con AddTransient
existen otras dos opciones: AddSingleton
y AddScoped
. El último significa que la vida útil del objeto se limita a una solicitud HTTP.
Versiones
Versión | Anuncios | Fecha de lanzamiento |
---|---|---|
RC1* | 1.0.0-rc1 | 2015-11-01 |
RC2* | 1.0.0-rc2 | 2016-05-16 |
1.0.0 | 1.0.0 | 2016-06-27 |
1.0.1 | 1.0.1 | 2016-09-13 |
1.0.1 | 1.0.1 | 2016-09-13 |
1.1 | 1.1.0 | 4T 2016 / 1T 2017 |
1.2 | 1.2.0 | 1T 2017 / 2T 2017 |
* Las referencias a los trimestres anuales (Q1, Q2, Q3, Q4) se basan en el calendario