Avec la version .NET 6 RC 2, les développeurs repoussent les modifications C# — Visual Studio Magazine

Nouvelles

Avec la version .NET 6 RC 2, les développeurs repoussent les modifications C#

Avec la version .NET 6 RC 2, les développeurs repoussent les modifications C# — Visual Studio Magazine

Microsoft a livré la deuxième Release Candidate prête pour la production pour sa version révolutionnaire .NET 6, qui unifie divers composants en une offre globale pouvant être utilisée pour tous les types de développement pour tous les types de cibles et de plates-formes.

Pourtant, avec seulement un mois avant le statut de disponibilité générale, certains développeurs repoussent les nouvelles fonctionnalités et fonctionnalités dans les commentaires de la publication d’annonce, accumulant les commentaires négatifs précédents fournis à l’équipe de développement.

Le message a été rédigé par Richard Lander, responsable de programme, équipe .NET, qui s’est concentré sur les nouveautés de .NET 6 pour C# 10 en général, car toutes les principales nouvelles fonctionnalités ont déjà été introduites et expliquées. Dans des articles récents, il s’est concentré sur un sujet majeur, c’est-à-dire C# maintenant. Cependant, la publication a généré plus de 50 commentaires de développeurs, dont plusieurs se sont plaints des changements liés à C#, notamment concernant un nouveau using schéma d’instructions et instructions de niveau supérieur désormais utilisés dans les modèles générés.

Les fonctionnalités linguistiques utilisées dans les nouveaux modèles incluent :

  • principal asynchrone
  • Déclarations de niveau supérieur
  • Nouvelles expressions de type cible
  • Directives d’utilisation globales
  • Espaces de noms à portée de fichier
  • Types de référence Nullable

En plus des commentaires susmentionnés (52 au moment d’écrire ces lignes), Lander a laissé entendre que l’équipe de développement avait entendu d’autres personnes ayant exprimé des préoccupations similaires.

“Nous avons modernisé les modèles de SDK .NET avec Preview 7, en utilisant les dernières fonctionnalités et modèles C#”, a déclaré Lander. “Il y a eu des retours importants sur ces changements, en partie parce que les builds ont commencé à échouer.” Ces commentaires ont été résolus en créant de nouvelles fonctionnalités telles que l’utilisation implicite de l’opt-in au lieu d’être par défaut, mais d’autres critiques ont été notées.

“Il y a également eu des commentaires selon lesquels certaines personnes n’aimaient pas le nouveau fichier Program.cs simplifié, avec des instructions de niveau supérieur. Nous avons apporté des améliorations aux instructions de niveau supérieur en réponse et avons continué à l’utiliser pour les modèles. Nous nous attendons à ce que la plupart les développeurs qui préfèrent l’approche traditionnelle peuvent directement ajouter eux-mêmes la cérémonie supplémentaire.”

Mais cela n’a pas plu à un commentateur, qui a répondu: “Ce n’est qu’un mensonge, aucune amélioration n’a été apportée au contrecoup, vous avez juste continué à défendre ce qui n’était pas aimé. La deuxième phrase est un gros f… y .. à tous ceux qui ont exprimé des préoccupations valables à ce sujet.”

La documentation Microsoft indique que “les instructions de niveau supérieur vous permettent d’éviter la cérémonie supplémentaire requise en plaçant le point d’entrée de votre programme dans une méthode statique d’une classe”.

De nouvelles instructions sur “Les nouveaux modèles C# génèrent des instructions de niveau supérieur” montrent comment les modèles générés sont réduits :

Un modèle de console généré traditionnel
[Click on image for larger view.] Un modèle de console généré traditionnel (source : Microsoft).

pour ça:

Le modèle de console généré dans .NET 6
[Click on image for larger view.] Le modèle de console généré dans .NET 6 (source : Microsoft).

Pourtant, cette simplification s’est accompagnée d’autres changements que certains développeurs n’approuvent pas pour diverses raisons techniques. En termes plus faciles à comprendre, un développeur a fait valoir que les modèles générés plus anciens et plus volumineux facilitaient la compréhension de ce qui se passait.

Un autre a déclaré : « Je ne comprends pas pourquoi Microsoft et les personnes qui contribuent à C# et .NET créent des “fonctionnalités” qui ne sont pas nécessaires. Les débutants et les professionnels n’ont pas besoin d’instructions de niveau supérieur et de ces nouveaux modèles par défaut avec une classe de programme masquée. ”

Cependant, plusieurs développeurs ont pesé positivement les changements apportés par Microsoft, avec des commentaires tels que :

  • 1. J’adore ces fonctionnalités. 2. Vous n’êtes pas obligé de les utiliser.
  • J’aime les déclarations de haut niveau dans la plupart des cas !
  • Je suis un grand fan des déclarations de haut niveau

À bien des égards, le débat a fait écho aux concessions qui ont suivi avec .NET 6 Preview 7 en août, où les déclarations de haut niveau ont suscité des commentaires à la fois négatifs et positifs. Lander a expliqué et défendu les mouvements de l’équipe de développement à l’époque et dans le nouveau message.

En réponse au développeur qui préférait les grands modèles générés traditionnels parce qu’ils facilitaient la compréhension de ce qui se passait, Lander a répondu :

Je peux seulement dire que l’équipe de conception n’est pas d’accord. Nous ne pensons pas que les débutants aient besoin d’apprendre ces choses. Ils ne le font pas pour beaucoup d’autres langues populaires. Le modèle que vous avez montré est le modèle du langage C. Il existe d’autres modèles. Rust, Go et Swift le font tous différemment de C#.

Je me souviens d’avoir essayé d’enseigner le C# à mes enfants quand ils étaient jeunes. C’était beaucoup trop d’informations pour commencer. J’ai presque changé pour leur enseigner JavaScript à la place afin de pouvoir commencer avec une seule ligne de code.

Sinon, au-delà du débat renouvelé sur les déclarations de haut niveau et d’autres plaintes, Lander a noté d’autres commentaires positifs des développeurs qui ont mis RC 1 à l’épreuve, affirmant qu’il s’attend à ce que cela continue.

“Nous avons entendu des utilisateurs dire que la mise à niveau des sites de production vers .NET 6 RC1 a été à la fois” ennuyeuse “(non événement) et” passionnante “(améliorations significatives des performances)”, a-t-il déclaré. “Nous sommes convaincus que RC2 poursuivra cette tendance à ne pas avoir de surprises et à obtenir des résultats passionnants.”

.NET 6 sera une version de support à long terme (LTS), bénéficiant d’un support complet pendant trois ans :

La cadence de publication de .NET
[Click on image for larger view.] La cadence de publication de .NET (source : Microsoft).

Un aperçu de haut niveau de la direction que prend .NET est fourni dans le site Thèmes de .NET :

Thèmes de .NET
[Click on image for larger view.] Thèmes de .NET (source : Microsoft).

Lander a déclaré que de nombreuses nouvelles fonctionnalités de .NET 6 ne sont pleinement intégrées que vers la fin du cycle de développement, l’équipe validant désormais principalement les flux de travail de bout en bout pour détecter tout problème ou problème. “Cela a conduit les équipes à resserrer les tuyaux qui fuient et à paver les chemins jusqu’à leur destination”, a-t-il déclaré.

Quelques autres points à noter de Lander :

  • .NET 6 RC2 a été testé et est pris en charge avec Visual Studio 2022 Preview 5, également publié aujourd’hui [Oct. 12].
  • .NET 6 sera lancé lors de la .NET Conf du 9 au 11 novembre.
  • Certaines équipes Microsoft sont passées en production sur RC1 et nous en attendons beaucoup d’autres sur RC2. Cela inclut le site Web .NET.
  • Visual Studio 2022 pour Mac n’est actuellement PAS compatible avec .NET 6 RC2. Nous sommes en train de résoudre cela.

Le long article décrit également en détail d’autres modifications de modèles et de nombreux autres sujets, y compris un aperçu des problèmes auxquels l’équipe de développement a été confrontée lors de la prise en charge de macOS et Windows arm64, qui a mis plus d’un an à se préparer et est maintenant “presque fait” .”

Que pensez-vous des modifications que Microsoft apporte à .NET 6, en particulier concernant les instructions de niveau supérieur, les modèles remaniés et les autres sujets de la publication ? S’il vous plaît partagez vos pensées dans la section des commentaires!

A propos de l’auteur

David Ramel est éditeur et rédacteur pour Converge360.

.

Leave a Comment