asp.net-core-mvc Tutorial
Empezando con asp.net-core-mvc
Buscar..
Observaciones
Esta sección proporciona una descripción general de qué es asp.net-core-mvc, y por qué un desarrollador puede querer usarlo.
También debe mencionar cualquier tema grande dentro de asp.net-core-mvc, y vincular a los temas relacionados. Dado que la Documentación para asp.net-core-mvc es nueva, es posible que deba crear versiones iniciales de esos temas relacionados.
Instalación o configuración
Instalando Visual Studio
Si no tiene instalado Visual Studio, puede descargar la Edición de comunidad de Visual Studio gratis aquí . Si ya lo tiene instalado, puede continuar con el siguiente paso.
Creando una aplicación ASP.NET Core MVC.
- Abra 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 diálogo.
- Opcional: elija un .NET Framework al que le gustaría apuntar
- Nombre su proyecto e indique si desea 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 algunos contenidos existentes.
Dado que se trata de una aplicación de introducción y no requiere seguridad ni 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 .
Entonces debería ver el nuevo proyecto dentro del Explorador de soluciones:
Presione la tecla F5 para ejecutar la aplicación y comenzar una sesión de depuración, que iniciará la aplicación dentro de su navegador predeterminado:
Ahora puede ver que su proyecto está funcionando y funcionando localmente y está listo como un punto de partida para que construya su aplicación.
PS: Usado Comenzando con el tema asp.net-core de la documentación de asp.net-core .
Añadir MVC Middleware
Si creó un proyecto vacío, o aún no tiene mvc configurado en su aplicación, puede agregar dependencia:
"Microsoft.AspNetCore.Mvc": "1.0.1"
A su archivo project.json
bajo "dependencies"
.
Y registre el middleware MVC en su clase de inicio:
public void ConfigureServices(IServiceCollection services)
{
...
services.AddMvc();
}
Tenga en cuenta que tenemos tanto services.AddMvc()
como services.AddMvcCore()
. Si está comenzando con el asp.net core
, o quiere que sea como es, debe seguir con services.AddMvc()
. Pero si desea una experiencia avanzada, puede comenzar con un pipeline MVC mínimo y agregar características para obtener un marco personalizado utilizando 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 generador de aplicaciones que use el mvc:
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
...
app.UseMvc();
}
o con enrutamiento por defecto:
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
Fundamentos 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 , mantenga el código claro y verificable.
Digamos que tenemos una interfaz y su implementación que necesita algunos valores de config 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);
}
Uno puede inyectar esta dependencia en el constructor del controlador que llama a los services.AddTransient
Startup.ConfigureServices
método de Startup.ConfigureServices
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 administrar la vida útil del objeto inyectado, junto con AddTransient
, existen otras dos opciones: AddSingleton
y AddScoped
. El último significa que el tiempo de vida del objeto está sujeto 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 | Q4 2016 / Q1 2017 |
1.2 | 1.2.0 | Q1 2017 / Q2 2017 |
* Las referencias a los trimestres anuales (Q1, Q2, Q3, Q4) están basadas en el calendario