ASP.NET CORE
POURQUOI, COMMENT
DevDay 28 novembre 2017@epo
Copyright Arnaud Weil 2011-2017
Pourquoi .NET Core ?
 <troll>Parce qu’il y a Node.JS</troll>
 .NET 4.6: l’historique (WPF, Windows Forms,
ASP.NET)
 .NET Core: moderne, versatile
 Cross-platform: Linux, Windows, Docker, OSX
 Léger
 Compatible avec .NET sous Windows
Copyright Arnaud Weil 2011-2017
Pourquoi ASP.NET Core?
Front-end
• Angular
• React
• Vue
• Knockout
• …
Back-end
• ASP.NET
Core
• Node.JS
• Ruby on
Rails
• …
Données
• Services
(API)
• SQL
Server
• NoSQL
• …
Copyright Arnaud Weil 2011-2017
Le rôle du back-end
 Serveur HTTP
 Ecouter sur un port
 Accepter une requête entrante
 Faire son travail côté serveur
 Retourner une réponse (HTML, JSON, contenu)
Copyright Arnaud Weil 2011-2017
ASP.NET Core au plus simple
public class Program
{
public static void Main(string[] args)
{
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.Build()
.Run();
}
}
public class Startup
{
public void Configure(IApplicationBuilder app)
{
app.UseWelcomePage();
}
}
Copyright Arnaud Weil 2011-2017
ASP.NET Core middleware
public class Program
{
public static void Main(string[] args)
{
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.Build()
.Run();
}
}
using Microsoft.AspNetCore.Http;
public class Startup
{
public void Configure(IApplicationBuilder app)
{
app.Run(async (context) => {
await context.Response.WriteAsync(
"Hello World!");
});
}
}
Copyright Arnaud Weil 2011-2017
ASP.NET Core MVC
public class Program
{
public static void Main(string[] args)
{
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.Build()
.Run();
}
}
public class Startup
{
public void ConfigureServices(
IServiceCollection services)
{
services.AddMvc();
}
public void Configure(IApplicationBuilder app)
{
app.UseMvc();
}
}
Copyright Arnaud Weil 2011-2017
ASP.NET MVC ?
 Model, View, Controller
 Testabilité
 Répartition des rôles
 Structure claire et connue
Copyright Arnaud Weil 2011-2017
ASP.NET MVC en un schéma
URL • Détermination de
la route
Action d’un
Contrôleur
• Récupère les
données à passer
à la vue
• Si POST, traite les
données
remontantes
Vue • Produit
le HTML
Copyright Arnaud Weil 2011-2017
Démo: construire et comprendre
Copyright Arnaud Weil 2011-2017
.NET Core 2
 Conteneur léger: Linux Alpine
Copyright Arnaud Weil 2011-2017
Learn Collection
Copyright Arnaud Weil 2011-2017
Learn ASP.NET Core MVC
 Apprendre en quelques
jours
 Prérequis faibles
 ebook et papier
 https://leanpub.com/netc
ore
Copyright Arnaud Weil 2011-2017
Questions-réponses
contact@aweil.fr
@epo
Slides: http://bit.ly/devday2017

ASP.NET Core: Pourquoi, comment

  • 1.
  • 2.
    Copyright Arnaud Weil2011-2017 Pourquoi .NET Core ?  <troll>Parce qu’il y a Node.JS</troll>  .NET 4.6: l’historique (WPF, Windows Forms, ASP.NET)  .NET Core: moderne, versatile  Cross-platform: Linux, Windows, Docker, OSX  Léger  Compatible avec .NET sous Windows
  • 3.
    Copyright Arnaud Weil2011-2017 Pourquoi ASP.NET Core? Front-end • Angular • React • Vue • Knockout • … Back-end • ASP.NET Core • Node.JS • Ruby on Rails • … Données • Services (API) • SQL Server • NoSQL • …
  • 4.
    Copyright Arnaud Weil2011-2017 Le rôle du back-end  Serveur HTTP  Ecouter sur un port  Accepter une requête entrante  Faire son travail côté serveur  Retourner une réponse (HTML, JSON, contenu)
  • 5.
    Copyright Arnaud Weil2011-2017 ASP.NET Core au plus simple public class Program { public static void Main(string[] args) { WebHost.CreateDefaultBuilder(args) .UseStartup<Startup>() .Build() .Run(); } } public class Startup { public void Configure(IApplicationBuilder app) { app.UseWelcomePage(); } }
  • 6.
    Copyright Arnaud Weil2011-2017 ASP.NET Core middleware public class Program { public static void Main(string[] args) { WebHost.CreateDefaultBuilder(args) .UseStartup<Startup>() .Build() .Run(); } } using Microsoft.AspNetCore.Http; public class Startup { public void Configure(IApplicationBuilder app) { app.Run(async (context) => { await context.Response.WriteAsync( "Hello World!"); }); } }
  • 7.
    Copyright Arnaud Weil2011-2017 ASP.NET Core MVC public class Program { public static void Main(string[] args) { WebHost.CreateDefaultBuilder(args) .UseStartup<Startup>() .Build() .Run(); } } public class Startup { public void ConfigureServices( IServiceCollection services) { services.AddMvc(); } public void Configure(IApplicationBuilder app) { app.UseMvc(); } }
  • 8.
    Copyright Arnaud Weil2011-2017 ASP.NET MVC ?  Model, View, Controller  Testabilité  Répartition des rôles  Structure claire et connue
  • 9.
    Copyright Arnaud Weil2011-2017 ASP.NET MVC en un schéma URL • Détermination de la route Action d’un Contrôleur • Récupère les données à passer à la vue • Si POST, traite les données remontantes Vue • Produit le HTML
  • 10.
    Copyright Arnaud Weil2011-2017 Démo: construire et comprendre
  • 11.
    Copyright Arnaud Weil2011-2017 .NET Core 2  Conteneur léger: Linux Alpine
  • 12.
    Copyright Arnaud Weil2011-2017 Learn Collection
  • 13.
    Copyright Arnaud Weil2011-2017 Learn ASP.NET Core MVC  Apprendre en quelques jours  Prérequis faibles  ebook et papier  https://leanpub.com/netc ore
  • 14.
    Copyright Arnaud Weil2011-2017 Questions-réponses contact@aweil.fr @epo Slides: http://bit.ly/devday2017