Looking for asp.net-core-mvc Answers? Try Ask4KnowledgeBase
Looking for asp.net-core-mvc Keywords? Try Ask4Keywords

asp.net-core-mvcEmpezando con asp.net-core-mvc


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.

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.

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.

  1. Abra 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 diálogo.
  5. Opcional: elija un .NET Framework al que le gustaría apuntar
  6. Nombre su proyecto e indique si desea crear una solución para el proyecto.
  7. Haga clic en Aceptar para crear el proyecto.

introduzca 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:

introduzca 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 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:

introduzca la descripción de la imagen aquí

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:

introduzca la descripción de la imagen aquí

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 .

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