Prenons l’exemple d’un exercice tout simple ou l’on veut un petit programme qui fasse appelle à une fonction. Si on revient à .NET Core 3 (C# 8) , voilà ce qu’il fallait écrire :
Code : Tout sélectionner
using System;
namespace ConsoleApp1
{
class Program
{
void Main(string[] args)
{
Console.WriteLine("Resultat : " + AddOne(5));
}
int AddOne( int x)
{
return x + 1;
}
}
}
Qu’à cela ne tienne, avec C# 9 (.NET 5) il avait été introduit ce que l’on appelle les ‘Top Level Statements’ (Instructions de Niveau Supérieur). Avec cette nouvelle fonctionnalité, on pouvait désormais s’affranchir de devoir créer un point d’entrée (Main) qui forcément devait se trouver dans une class elle-même contenue dans un espace de nom. Voilà donc comment on pouvait écrire la même chose avec .NET 5
Code : Tout sélectionner
using System;
Console.WriteLine("Resultat : " + AddOne(5));
int AddOne(int x)
{
return x + 1;
}
Avec .NET 6 et C# 10, ils en ont encore remis une couche sur la simplification avec une nouvelle directive qui s’appelle ImplicitUsings. Cette directive est par défaut activée dans tous les template de projets vide .NET 6. Elle permet de définir les références (using) de manière globale pour tout le programme. Un fichier NomDuProgramme.GlobalUsing.g.cs est créé automatiquement par le template (dans le sous répertoire obj/*/net6/). Ce fichier contient déjà les using standard pour le type de projet choisi. C’est ce qui explique pourquoi on peut maintenant ne plus avoir besoin d’écrire using system ;
Code : Tout sélectionner
Console.WriteLine("Resultat : " + AddOne(5));
int AddOne(int x)
{
return x + 1;
}
Code : Tout sélectionner
int AddOne(int x)
{
return x + 1;
}
Console.WriteLine("Resultat : " + AddOne(5));
Alors bien sûr, ces petites choses n’ont que peu d’intérêt pour ceux qui avaient déjà une certaine maitrise du langage C# mais pour ceux qui débute ça simplifie énormément les choses.
J'écris ca parce que je suis tombé sur un billet ou l’auteur fais la comparaison du Template ASP.NET 6 vide avec l’ancienne version de .NET et avec NodeJs. On constate que Template ASP.NET 6 créé un mini serveur web qui retourne une page ‘’hello word’’ et ca avec avec 4 lignes de code.
https://lee-jdale.medium.com/net-6-mini ... 2f00644230
Intéressant non ?