Ricerca…


Osservazioni

Questa sezione fornisce una panoramica di ciò che asp.net-core-mvc è, e perché uno sviluppatore potrebbe voler usarlo.

Dovrebbe anche menzionare qualsiasi argomento di grandi dimensioni all'interno di asp.net-core-mvc e collegarsi agli argomenti correlati. Poiché la documentazione di asp.net-core-mvc è nuova, potrebbe essere necessario creare versioni iniziali di tali argomenti correlati.

Installazione o configurazione

Installazione di Visual Studio

Se non hai installato Visual Studio, puoi scaricare qui la versione gratuita di Visual Studio Community . Se l'hai già installato, puoi procedere al passaggio successivo.

Creazione di un'applicazione ASP.NET Core MVC.

  1. Apri Visual Studio.
  2. Seleziona File> Nuovo progetto.
  3. Seleziona Web nella lingua desiderata nella sezione Modelli a sinistra.
  4. Scegli un tipo di progetto preferito all'interno della finestra di dialogo.
  5. Opzionale: scegli un .NET Framework che desideri utilizzare come target
  6. Assegna un nome al tuo progetto e indica se vuoi creare una soluzione per il progetto.
  7. Fare clic su OK per creare il progetto.

inserisci la descrizione dell'immagine qui

Ti verrà presentata un'altra finestra di dialogo per selezionare il modello che desideri utilizzare per il progetto:

inserisci la descrizione dell'immagine qui

Ciascuna descrizione è autoesplicativa. Per questo primo progetto, selezionare Applicazione Web , che conterrà tutte le configurazioni predefinite, l'autenticazione e alcuni contenuti esistenti.

Poiché questa è un'applicazione di introduzione e non richiede alcuna protezione o autenticazione, è possibile modificare l'opzione di autenticazione su Nessuna autenticazione sul lato destro della finestra di dialogo e fare clic su OK per creare il progetto .

Dovresti quindi vedere il nuovo progetto all'interno di Solution Explorer:

inserisci la descrizione dell'immagine qui

Premere il tasto F5 per eseguire l'applicazione e iniziare una sessione di debug, che avvierà l'applicazione all'interno del browser predefinito:

inserisci la descrizione dell'immagine qui

Ora puoi vedere che il tuo progetto è attivo e funzionante a livello locale ed è pronto come punto di partenza per costruire la tua applicazione.

PS: Usato Iniziato con asp.net-core topic dalla documentazione di asp.net-core .

Aggiungi MVC Middleware

Se hai creato un progetto vuoto o non hai ancora configurato mvc nell'applicazione, puoi aggiungere dipendenza:

"Microsoft.AspNetCore.Mvc": "1.0.1"

Per il tuo file project.json in "dependencies" .

E registra il middleware MVC nella tua classe di avvio:

public void ConfigureServices(IServiceCollection services)
{
    ...
    services.AddMvc();
}

Si noti che abbiamo entrambi i services.AddMvc() e services.AddMvcCore() . Se stai iniziando con asp.net core , o lo vuoi così com'è, dovresti continuare con services.AddMvc() . Ma se si desidera un'esperienza avanzata, è possibile iniziare con una pipeline MVC minima e aggiungere funzionalità per ottenere un framework personalizzato utilizzando i services.AddMvcCore() . services.AddMvcCore() . Vedi questa discussione per ulteriori informazioni su AddMvcCore

public void ConfigureServices(IServiceCollection services)
{
    services
        .AddMvcCore()
        .AddAuthorization()
        .AddJsonFormatters(j => j.Formatting = Formatting.Indented);
}

Ora puoi dire al tuo costruttore di applicazioni di usare il mvc:

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
    ...
    app.UseMvc();
}

o con il routing predefinito:

app.UseMvc(routes =>
{
    routes.MapRoute(
        name: "default",
        template: "{controller=Home}/{action=Index}/{id?}");
});

Nozioni di base sull'iniezione di dipendenza

Quasi tutti i controller richiedono alcune dipendenze esterne per funzionare. Ecco un modo per configurare un oggetto di dipendenza (o il suo factory) e passarlo a un controller. Fare ciò contribuirà a sostenere una separazione delle preoccupazioni , mantenere il codice chiaro e verificabile.

Diciamo, abbiamo un'interfaccia e la sua implementazione che ha bisogno di alcuni valori da config nel suo costruttore:

public interface ISomeDependency
{
    async Task<IEnumerable<string>> GetItemsAsync(string key);
}

public class SomeDependency : ISomeDependency
{
    public SomeDependency(string connectionString)
    {
        ...
    }
    ...
}

È usato in alcune classi di controller:

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);
}

Si può iniettare questa dipendenza nei services.AddTransient chiamata del costruttore del controller services.AddTransient Startup.ConfigureServices all'interno del metodo 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"]));
    }

    ...
}

Qui Data:ConnectionString è un percorso verso un'impostazione nel file appsettings.json :

{
  ...
  },
  "Data": {
    "ConnectionString": "some connection string"
  }
}

Gestione della vita

Per gestire una vita dell'oggetto iniettato, insieme a AddTransient esistono altre due opzioni: AddSingleton e AddScoped . L'ultimo indica che la durata dell'oggetto è portata a una richiesta HTTP.

versioni

Roadmap ufficiale @ Github

Versione Annunci Data di rilascio
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

* I riferimenti ai trimestri annuali (Q1, Q2, Q3, Q4) sono basati sul calendario



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow