asp.net-core-mvc Tutorial
Iniziare con asp.net-core-mvc
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.
- Apri Visual Studio.
- Seleziona File> Nuovo progetto.
- Seleziona Web nella lingua desiderata nella sezione Modelli a sinistra.
- Scegli un tipo di progetto preferito all'interno della finestra di dialogo.
- Opzionale: scegli un .NET Framework che desideri utilizzare come target
- Assegna un nome al tuo progetto e indica se vuoi creare una soluzione per il progetto.
- Fare clic su OK per creare il progetto.
Ti verrà presentata un'altra finestra di dialogo per selezionare il modello che desideri utilizzare per il progetto:
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:
Premere il tasto F5 per eseguire l'applicazione e iniziare una sessione di debug, che avvierà l'applicazione all'interno del browser predefinito:
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
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