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.

  1. Abrir Visual Studio.
  2. Seleccione Archivo > Nuevo proyecto.
  3. Seleccione Web en el idioma de su elección dentro de la sección Plantillas a la izquierda.
  4. Elija un tipo de proyecto preferido dentro del cuadro de diálogo.
  5. Opcional: Elija un .NET Framework al que le gustaría apuntar
  6. Nombra tu proyecto e indica si deseas crear una Solución para el proyecto.
  7. Haga clic en Aceptar para crear el proyecto.

ingrese la descripción de la imagen aquí

Se le presentará otro cuadro de diálogo para seleccionar la plantilla que desea utilizar para el proyecto:

ingrese la descripción de la imagen aquí

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:

ingrese la descripción de la imagen aquí

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:

ingrese la descripción de la imagen aquí

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

Hoja de ruta oficial @ Github

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