asp.net-core-mvc Tutoriel
Démarrer avec asp.net-core-mvc
Recherche…
Remarques
Cette section fournit une vue d'ensemble de ce qu'est asp.net-core-mvc et pourquoi un développeur peut vouloir l'utiliser.
Il devrait également mentionner tous les grands sujets dans asp.net-core-mvc, et établir un lien vers les sujets connexes. La documentation de asp.net-core-mvc étant nouvelle, vous devrez peut-être créer des versions initiales de ces rubriques connexes.
Installation ou configuration
Installation de Visual Studio
Si Visual Studio n'est pas installé, vous pouvez télécharger gratuitement Visual Studio Community Edition ici . Si vous l'avez déjà installé, vous pouvez passer à l'étape suivante.
Création d'une application ASP.NET Core MVC.
- Ouvrez Visual Studio.
- Sélectionnez Fichier> Nouveau projet.
- Sélectionnez Web dans la langue de votre choix dans la section Modèles à gauche.
- Choisissez un type de projet préféré dans la boîte de dialogue.
- Facultatif: Choisissez un framework .NET que vous souhaitez cibler
- Nommez votre projet et indiquez si vous souhaitez créer une solution pour le projet.
- Cliquez sur OK pour créer le projet.
Une autre boîte de dialogue vous sera proposée pour sélectionner le modèle que vous souhaitez utiliser pour le projet:
Chacune des descriptions est explicite. Pour ce premier projet, sélectionnez Application Web , qui contiendra toutes les configurations par défaut, l'authentification et certains contenus existants.
Comme il s'agit d'une application d'introduction ne nécessitant aucune sécurité ou authentification, vous pouvez modifier l'option d'authentification sur Aucune authentification du côté droit de la boîte de dialogue et cliquer sur OK pour créer le projet .
Vous devriez alors voir le nouveau projet dans l'Explorateur de solutions:
Appuyez sur la touche F5 pour exécuter l'application et lancer une session de débogage, qui lancera l'application dans votre navigateur par défaut:
Vous pouvez maintenant voir que votre projet est opérationnel localement et que vous êtes prêt à créer votre application.
PS: Utilisé Initiation à la rubrique asp.net-core à partir de la documentation asp.net-core .
Ajouter un middleware MVC
Si vous avez créé un projet vide ou que mvc n’est toujours pas configuré dans votre application, vous pouvez ajouter une dépendance:
"Microsoft.AspNetCore.Mvc": "1.0.1"
Dans votre fichier project.json
sous "dependencies"
.
Et enregistrez votre middleware MVC dans votre classe de démarrage:
public void ConfigureServices(IServiceCollection services)
{
...
services.AddMvc();
}
Notez que nous avons à la fois services.AddMvc()
et services.AddMvcCore()
. Si vous commencez avec le asp.net core
, ou si vous le voulez tel quel, vous devriez garder avec services.AddMvc()
. Mais si vous voulez une expérience avancée, vous pouvez commencer avec un pipeline MVC minimal et ajouter des fonctionnalités pour obtenir une infrastructure personnalisée à l'aide de services.AddMvcCore()
. Voir cette discussion pour plus d'informations sur AddMvcCore
public void ConfigureServices(IServiceCollection services)
{
services
.AddMvcCore()
.AddAuthorization()
.AddJsonFormatters(j => j.Formatting = Formatting.Indented);
}
Maintenant, vous pouvez demander au constructeur de votre application d'utiliser le mvc:
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
...
app.UseMvc();
}
ou avec le routage par défaut:
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
Bases d'injection de dépendance
Presque tous les contrôleurs ont besoin de dépendances externes pour fonctionner. Voici un moyen de configurer un objet de dépendance (ou sa fabrique) et de le transmettre à un contrôleur. Cela vous aidera à maintenir une séparation des préoccupations , à garder le code clair et à pouvoir être testé.
Disons que nous avons une interface et son implémentation qui nécessite des valeurs de config dans son constructeur:
public interface ISomeDependency
{
async Task<IEnumerable<string>> GetItemsAsync(string key);
}
public class SomeDependency : ISomeDependency
{
public SomeDependency(string connectionString)
{
...
}
...
}
Il est utilisé dans certaines classes de contrôleurs:
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);
}
On peut injecter cette dépendance dans le constructeur du contrôleur appelant services.AddTransient
dans la méthode 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"]));
}
...
}
Ici Data:ConnectionString
est un chemin d'accès à un paramètre dans le fichier appsettings.json
:
{
...
},
"Data": {
"ConnectionString": "some connection string"
}
}
Gestion à vie
Pour gérer une durée de vie de l'objet injecté, avec AddTransient
deux autres options existent: AddSingleton
et AddScoped
. Le dernier signifie que la durée de vie de l'objet est définie sur une requête HTTP.
Des versions
Feuille de route officielle @ Github
Version | Annonces | Date de sortie |
---|---|---|
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 | T4 2016 / T1 2017 |
1.2 | 1.2.0 | T1 2017 / T2 2017 |
* Les références aux trimestres annuels (T1, T2, T3, Q4) sont basées sur un calendrier