Où en sommes-nous ?
Framework .NET (4.5)
ASP.NET
Présentation
WebForms Dynamic
MVC 4 Ajax Web Pages 2
4.5 ? Data
Une intro rapide à ASP.Net MVC
En WebFoms, la page est le point de départ de votre
applicaton
En MVC, le code est le point de départ de votre application
Quel code ?
On reprend les principes REST :
L’URL représente ce qu’on veut faire
Par exemple /Clients/Affiche/Dupont
.. Démo ?
Du neuf à tous les étages
Dans ASP.NET Core
Dans ASP.NET WebForms
Dans ASP.NET MVC
…
Minification et bundles
<script src=“Scripts/js"></script>
Packaging des scripts
<link href="styles/css" rel="stylesheet" />
Packaging des css
Ordre : alphabétique + bon sens
(js connus placés en tête, ainsi que
reset.css et normalize.css)
Validation des requêtes
La validation des requêtes change dans ASP.Net 4.5
<httpRuntime requestValidationMode="4.5" ... />
Les champs ne sont validés qu’à la première utilisation
var s = context.Request.Unvalidated.Form["forum_post"];
Et on peut choisir de ne pas les valider.
WCF Web API
[ServiceContract]
public class ContactsApi
{
[WebGet(UriTemplate = "")]
public IQueryable<Contact> Get()
{
var contacts = new List<Contact>()
{
new Contact {ContactId = 1, Name = "Phil Haack"},
new Contact {ContactId = 2, Name = "HongMei Ge"},
new Contact {ContactId = 3, Name = "Glenn Block"},
new Contact {ContactId = 4, Name = "Howard Dierking"},
new Contact {ContactId = 5, Name = "Jeff Handley"},
new Contact {ContactId = 6, Name = "Yavor Georgiev"}
};
return contacts.AsQueryable();
}
}
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.Add(new ServiceRoute("api/contacts",
new HttpServiceHostFactory(), typeof(ContactsApi)));
WCF Web API
IQueryable permet de
passer des requêtes
LINQ
L’API renvoie au choix
XML ou JSON
(entête http Accept:)
Un client de test est
disponible
var config = new HttpConfiguration() { EnableTestClient = true };
routes.Add(new ServiceRoute("api/contacts",
new HttpServiceHostFactory() { Configuration = config},
typeof(ContactsApi)));
Arrivée des rendus mobiles
Trois grandes façons de procéder
CSS media queries
Vues spécialisées
Projets dédiés
« adaptive rendering »
E.g., on s’appuie sur les CSS Media Queries
Pour
Optimisé pour le type de navigateur
Pas de duplication
Contre
On ne peut pas vraiment spécialiser la version mobile vs.
Desktop
Utilisation excessive de la bande passante
Rendu côté serveur
E.g. les vues sont différentes en fonction du client
Pour
Flexibilité maximale
Efficacité en bande passante
Contre
On peut avoir de la répétition
La détection fine des devices n’est pas triviale
En conclusion
Microsoft a réussi à décorréler les évolutions d’ASP.Net et de VS
Proprement et par projet, grâce à NuGet
MVC prend du galon
Nettement plus productif tous les ans
Doté d’un arsenal pour le dev mobile
Epaulé par NuGet / EF / Scaffolders / etc
Il y a sur Internet 30 fois plus de WebForms que de MVC
Les proportions sont meilleures en entreprise
L’investissement de Microsoft dans WebForms est important
Adaptation de toutes les nouveautés intéressantes
Alors, MVC ou WebForms ?
Il est temps de prendre des compétences MVC, même si le cœur
de votre activité reste WebForms