Skip to content

14. Pour aller plus loin

En 2008, le cours se terminait par une liste de thèmes importants qu'il ne couvrait pas : LINQ, le traitement des documents XML, la programmation web avec ASP.NET et .NET Remoting. Le paysage a changé :

  • LINQ est maintenant présenté au chapitre 5, et sa traduction en SQL par Entity Framework Core au chapitre 11 ;
  • la programmation web est abordée au chapitre 13 avec ASP.NET Core ;
  • .NET Remoting, le protocole propriétaire de client / serveur de .NET, n'existe plus dans .NET (depuis .NET Core) ; il a été remplacé par les services web REST (chapitre 13), par gRPC (appels de procédures distantes efficaces sur HTTP/2, avec des contrats décrits en Protocol Buffers) et par SignalR (communication bidirectionnelle en temps réel entre un serveur et des navigateurs).

Voici les principaux thèmes qui prolongent ce document.

14.1. Le traitement des documents XML

Le JSON a largement remplacé XML pour les échanges de données, mais XML reste présent (fichiers de configuration, formats de documents, services SOAP existants). .NET offre deux API :

  • LINQ to XML ([System.Xml.Linq] : classes [XDocument], [XElement], [XAttribute]) : la plus simple, qui permet de construire et d'interroger un document XML avec LINQ ;
  • les classes de [System.Xml] ([XmlReader], [XmlWriter], [XmlDocument]) et la sérialisation XML ([XmlSerializer]).

14.2. Les applications web

Le chapitre 13 ne présente que les services web (des applications qui produisent des données). Pour les applications web qui produisent des pages HTML, ASP.NET Core propose :

  • ASP.NET Core MVC et Razor Pages : des pages générées côté serveur ; l'auteur a écrit le cours Introduction étape par étape au framework ASP.NET Core MVC (septembre 2026) ;
  • Blazor : des interfaces web interactives écrites en C# plutôt qu'en JavaScript, exécutées sur le serveur ou dans le navigateur (WebAssembly).

14.3. Les applications de bureau et mobiles

Le chapitre sur les interfaces graphiques Windows Forms a été retiré de ce document. Windows Forms existe toujours dans .NET 10 (pour Windows), ainsi que WPF ; .NET MAUI permet d'écrire une même application pour Windows, macOS, Android et iOS. Les notions des chapitres 7 (événements) et 9 (programmation asynchrone) s'y appliquent directement.

14.4. Les tests

Le chapitre 6 présente MSTest. Deux autres frameworks de tests sont très utilisés : xUnit et NUnit (dont la version 2.4 était utilisée par le cours de 2008, et qui a beaucoup évolué depuis). On complète souvent les tests unitaires par des bibliothèques de « doublures » (objets simulés) et par des tests d'intégration des applications ASP.NET Core ([WebApplicationFactory]).

14.5. Les performances

.NET a fait de la performance un objectif majeur depuis .NET Core. Parmi les outils correspondants :

  • les types [Span<T>] et [Memory<T>], qui manipulent des portions de tableaux ou de chaînes sans copie (chapitre 5) ;
  • la compilation anticipée en code natif (Native AOT, [dotnet publish -p:PublishAot=true]) : un exécutable autonome qui démarre très vite, au prix de restrictions sur la réflexion (nous les avons rencontrées avec la sérialisation JSON au chapitre 5) ;
  • les générateurs de source, qui produisent du code à la compilation (expressions régulières générées au chapitre 5, contexte JSON généré au chapitre 6) ;
  • l'outil BenchmarkDotNet pour mesurer précisément les performances d'un code.

14.6. Le déploiement

Un programme .NET se déploie de plusieurs façons : avec la plateforme .NET installée sur le poste ([dotnet publish]), sous forme d'exécutable autonome qui embarque la plateforme ([--self-contained]), ou dans un conteneur ([dotnet publish -t:PublishContainer] produit directement une image de conteneur, sans fichier [Dockerfile]).

14.7. Les ressources