Partager via


Feuille de route pour les développeurs JavaScript et TypeScript qui se lancent dans l’apprentissage de C#

C#, TypeScript et JavaScript sont tous membres de la famille des langages C. Grâce aux ressemblances entre les langages, vous pouvez devenir rapidement productif en C#.

  1. Syntaxe similaire : JavaScript, TypeScript et C# font partie de la famille des langages C. Cette équivalence entre les langages signifie que vous êtes déjà capable de lire et de comprendre C#. Certaines différences existent, mais la plupart de la syntaxe est identique à celle de JavaScript et de C. Les accolades et les points-virgules sont communs. Les instructions de contrôle telles que if, else et switch sont identiques. Les instructions de bouclage de for, while et do...while sont identiques. Les mêmes mots clés pour class et interface existent dans C# et dans TypeScript. Les modificateurs d’accès dans TypeScript et C# de public à private sont identiques.
  2. Le =>jeton : tous les langages prennent en charge les définitions de fonction légères. En C#, elles sont appelées expressions lambda. En JavaScript, ils sont généralement appelés fonctions fléchées.
  3. Hiérarchies de fonctions : les trois langages prennent en charge les fonctions locales, qui sont des fonctions définies dans d’autres fonctions.
  4. Async/Await : les trois langages partagent les mêmes mots clés async et await pour la programmation asynchrone.
  5. Nettoyage de la mémoire : les trois langages s’appuient sur un récupérateur de mémoire pour la gestion automatique de la mémoire.
  6. Modèle d’événement : la syntaxe event de C# est similaire au modèle de JavaScript pour les événements DOM (Document Object Model).
  7. Gestionnaire de package : NuGet est le gestionnaire de package le plus courant pour C# et .NET, similaire à npm pour les applications JavaScript. Les bibliothèques C# sont livrées dans des assemblys.

À mesure que vous en apprendrez davantage sur C#, vous découvrirez des concepts qui sont absents de JavaScript. Certains de ces concepts peuvent vous sembler familiers si vous utilisez TypeScript :

  1. Système de types C# : C# est un langage fortement typé. Chaque variable est associée à un type et ce type ne peut pas changer. Vous définissez des types class ou struct. Vous pouvez configurer des définitions interface qui indiquent le comportement mis en œuvre par d’autres types. Bien que TypeScript intègre un grand nombre de ces concepts, le système de type n’y est pas aussi strict, car TypeScript est basé sur JavaScript.
  2. Critères spéciaux : les critères spéciaux permettent de mettre en place des instructions et des expressions conditionnelles concises basées sur la forme de structures de données complexes. L’expression is vérifie si une variable « est » un modèle. L’expression switch basée sur des modèles fournit une syntaxe riche pour inspecter une variable et prendre des décisions en fonction de ses caractéristiques.
  3. Interpolation de chaîne et littéraux de chaînes brutes : l’interpolation de chaîne vous permet d’insérer des expressions évaluées dans une chaîne, plutôt que d’utiliser des identificateurs de position. Les littéraux de chaînes brutes permettent de réduire la présence de séquences d’échappement dans le texte.
  4. Types Nullables et types non-nullables : C# prend en charge les types valeur Nullables et les types référence Nullables via l’ajout du suffixe ? à un type. Pour les types Nullables, le compilateur vous avertit si vous ne vérifiez pas null avant de déréférencer l’expression. Pour les types non-nullables, le compilateur vous avertit si vous êtes sur le point d’affecter une valeur potentiellement null à cette variable. Ces fonctionnalités peuvent réduire le risque que votre application génère une System.NullReferenceException. La syntaxe pourrait vous sembler familière avec l'utilisation de ? par TypeScript pour les propriétés optionnelles.
  5. LINQ : Language Integrated Query (LINQ) fournit une syntaxe commune pour interroger et transformer des données, quel que soit leur emplacement de stockage.

À mesure que vous en apprendrez davantage, vous découvrirez d’autres différences, mais bon nombre de ces différences sont de moindre envergure.

Certaines fonctionnalités et expressions familières de JavaScript et TypeScript ne sont pas disponibles en C# :

  1. Types dynamiques : C# utilise le typage statique. Une déclaration de variable inclut le type,qui ne peut pas changer. Il existe un type dynamic en C# qui fournit une liaison au moment de l’exécution.
  2. Héritage prototypage : l’héritage C# fait partie de la déclaration de type. Une déclaration C# class déclare n’importe quelle classe de base. En JavaScript, vous pouvez configurer la propriété __proto__ pour définir le type de base sur n’importe quelle instance.
  3. Langage interprété : le code C# doit être compilé avant que vous puissiez l’exécuter. Le code JavaScript peut être exécuté directement dans le navigateur.

De plus, quelques fonctionnalités supplémentaires de TypeScript ne sont pas disponibles en C# :

  1. Types union : C# ne prend pas en charge les types union. Toutefois, des propositions de conception sont en cours.
  2. Éléments décoratifs : C# n’inclut pas d’éléments décoratifs. Certains éléments décoratifs courants, tels que @sealed, sont des mots clés réservés en C#. D’autres éléments décoratifs courants peuvent présenter des attributs correspondants. Pour les autres éléments décoratifs, vous pouvez créer vos propres attributs.
  3. Syntaxe plus tolérante : le compilateur C# analyse le code de manière plus stricte que JavaScript.

Si vous concevez une application web, vous devez envisager d’utiliser Blazor. Blazor est un framework web de pile complète conçu pour .NET et C#. Les composants Blazor peuvent s’exécuter sur le serveur en tant qu’assemblys .NET ou sur le client à l’aide de WebAssembly. Blazor prend en charge l’interopérabilité avec vos bibliothèques JavaScript ou TypeScript préférées.