IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Chroniqueur Actualités

    Homme Profil pro
    Rédacteur technique
    Inscrit en
    juin 2016
    Messages
    1 670
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Rédacteur technique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : juin 2016
    Messages : 1 670
    Points : 39 773
    Points
    39 773
    Par défaut Microsoft annonce qu'il a apporté quelques améliorations importantes à Visual Studio 2019 16.8
    Microsoft annonce qu'il a apporté quelques améliorations importantes à Visual Studio 2019 16.8
    afin de faciliter la migration de projets d'envergure depuis .NET Framework vers .NET 5

    Environ 4 mois après la publication de .NET 5, Microsoft a annoncé jeudi dans un billet de blogue qu'il a constaté que les développeurs et les entreprises sont nombreux à migrer vers la première version de sa plateforme unifiée .NET 5. Cette vague de migration concernerait essentiellement de grandes solutions écrites avec .NET Framework. Pour faciliter la tâche aux développeurs, Microsoft a annoncé qu'il a optimisé l'EDI Visual Studio 2019 16.8 sur cinq différents points pour qu'il puisse traiter des solutions contenant un grand nombre de projets .NET 5 et .NET Core. Voici ci-dessous un aperçu des différentes mises à jour.

    .NET 5 : une unification des différents outils de la plateforme .NET

    Microsoft annonçait en 2019 l'arrivée de .NET 5, qui, selon l'entreprise, sera son premier grand produit sur la voie de l'unification de la plateforme .NET. Après près de deux ans de développement, Microsoft a publié .NET 5 en novembre dernier. .NET 5 représente la première version de cet effort d'unification des différentes variantes de .NET à travers les systèmes d'exploitation, le Web et une variété de facteurs de forme. .NET 5 succède ainsi à .NET Core 3.X. Microsoft a rassuré que le .NET Framework existant reste un produit qu'il continuera de mettre à jour avec chaque nouvelle version de Windows.

    Nom : dotnet5_platform.png
Affichages : 7963
Taille : 111,0 Ko

    Rappelons qu'en 2020, il a cessé d'ajouter de nouvelles fonctionnalités à .NET Framework à partir de la version 4.8 et a aussi fini d'ajouter les API du .NET Framework au .NET Core. Il ne prévoit pas non plus de publier une nouvelle version de .NET Standard. L'entreprise a annoncé la fin de .NET Standard pendant l'été 2020, mais elle a aussi précisé que .NET 5 et toutes les versions futures continueront à prendre en charge le .NET Standard 2.1 et les versions antérieures. .NET 5 fournit aux développeurs des outils, des interfaces de programmation, des fonctionnalités d'exécution et de nouveaux langages.

    C'est ce que Microsoft préconise aux développeurs d'utiliser pour créer des interfaces utilisateur Web et des services de backend. « Nous avions l'intention de réaliser l'intégralité de la vision d'unification avec .NET 5.0, mais dans le sillage de la pandémie mondiale, nous avons dû nous adapter à l'évolution des besoins de nos clients », ont déclaré les responsables dans le billet de blogue annonçant la sortie de .NET 5. Les développeurs semblent avoir suivi les recommandations de l'entreprise, car elle a annoncé jeudi que beaucoup d'entre eux migrent déjà vers .NET 5. Elle veut donc faciliter cela à travers une optimisation de Visual Studio.

    Exécution du compilateur C# et VB en dehors du processus

    Selon Paul Vick, ingénieur logiciel principal de l'équipe de développement de Visual Studio, Roslyn, le compilateur C# et Visual Basic, analyse la solution complète pour alimenter des services tels qu'IntelliSense, "Go to Definition", et les diagnostics/erreurs. Ainsi, Roslyn a tendance à consommer des ressources qui augmentent proportionnellement à la taille de la solution ouverte, ce qui peut devenir assez important pour les grandes solutions. Il estime qu'un travail a déjà été fait sur Roslyn pour minimiser cet impact en mettant en cache de manière agressive sur le disque des informations qui ne sont pas immédiatement nécessaires.

    Cependant, même avec cette mise en cache, elle ne peut pas échapper à la nécessité de conserver les données en mémoire. De ce fait, Vick a déclaré qu'afin de réduire son impact sur les solutions Visual Studio de plus grande envergure, l'équipe Roslyn a déployé des efforts considérables pour sortir le compilateur Roslyn du processus Visual Studio et l'intégrer à son propre processus. L'utilisation de Roslyn dans son propre processus libère des ressources au sein de Visual Studio lui-même et permet au compilateur Roslyn d'avoir plus de place pour faire son travail.

    D'après ce qu'il dit, pour les solutions de grande taille, cela peut permettre d'économiser jusqu'à un tiers de la mémoire consommée par Visual Studio lorsque vous ouvrez une solution de grande taille.

    Rationalisation du nœud Dependencies

    La deuxième optimisation apportée par l'équipe à Visual Studio consiste en la rationalisation du nœud "Dependencies" (Dependencies node). En effet, Vick a expliqué que chaque projet .NET 5 et .NET Core possède un nœud dans l'explorateur de solutions appelé "Dépendances" qui affiche toutes les choses dont le projet dépend : autres projets, assemblages, paquets NuGet, etc. En plus de montrer les dépendances immédiates du projet, le nœud montre également les dépendances transitives du projet, c'est-à-dire toutes les choses dont chaque dépendance dépend, etc.

    D'après l'ingénieur, l'inconvénient qui en résulte est qu'avec un projet de toute taille raisonnable, cette liste de dépendances transitives peut devenir assez grande. Mais ce n'est pas tout, Vick note également un deuxième inconvénient à la manière dont ce noeud fonctionne. Il estime que la mise en œuvre initiale du nœud "Dépendances" n'était pas particulièrement efficace dans la manière dont elle stockait les informations sur les dépendances transitives en mémoire. Elle conservait beaucoup plus d'informations que nécessaire et la plupart des données étaient redondantes.

    Ainsi, pour corriger le tir, l'équipe de développement de l'EDI a réécrit le code pour ne conserver que les informations absolument nécessaires, et a commencé à utiliser les informations existantes sur les dépendances déjà conservées par NuGet. Le porte-parole de l'équipe a annoncé que cette réécriture permet d'économiser jusqu'à 10-15 % de la mémoire consommée par Visual Studio lorsque vous ouvrez une solution de grande envergure.

    Réduire les doublons dans MSBuild

    Selon Vick, Visual Studio s'appuie sur plusieurs outils qui s'avèrent être voraces en mémoire. Outre, Roslyn, il a déclaré que l'un des autres grands consommateurs de ressources dans un processus de studio visuel est MSBuild. En effet, en tant que moteur de construction, une grande partie de l'expérience de l'IDE est alimentée par le modèle objet de MSBuild. Pour résoudre ce problème, l'équipe a rendu les fichiers de projet eux-mêmes beaucoup plus petits dans .NET 5 et .NET Core. Cela dit, il existe un nombre important de fichiers de projet qui sont importés dans les projets via le SDK.

    Nom : download-visual-studio-2019-latest-version.jpg
Affichages : 1729
Taille : 50,6 Ko

    Vick a déclaré que l'évaluation de tous ces fichiers est nécessaire pour comprendre et construire un projet, et peut consommer jusqu'à un autre tiers de la mémoire consommée par Visual Studio lorsque vous ouvrez une grande solution. Il continue en disant que, bien que les fichiers de projet génèrent beaucoup de données, une grande partie de ces données sont répétitives et l'équipe a choisi de les dupliquer en mémoire. Les chaînes de caractères sont l'un des sous-produits les plus courants du système de projet, et elles stockent des informations comme les noms de fichiers, les options et les chemins d'accès.

    Les chemins, en particulier, peuvent être assez longs et peuvent finir par consommer beaucoup de mémoire s'ils sont trop nombreux ou s'ils sont dupliqués trop souvent. En veillant à ne conserver qu'une seule copie d'une chaîne, il est possible d'économiser de 5 à 10 % de la mémoire consommée par Visual Studio lorsqu'on ouvre une grande solution.

    Réduire les copies de projet conservées par le système de projet

    Vick a expliqué que l'un des aspects importants de la conception du système de projet .NET 5 et .NET Core est l'asynchronie (asynchrony). Souvent, le système de projet doit effectuer un travail en réponse à une action de l'utilisateur (par exemple, ajouter une nouvelle référence à un projet). Au lieu de bloquer Visual Studio pendant qu'il termine son travail, le système de projet permet à l'utilisateur de continuer à travailler dans l'EDI et de faire le travail en arrière-plan, par exemple, en ajoutant une nouvelle référence.

    Comme l'utilisateur peut modifier un projet alors que le système de projet traite des modifications précédentes en arrière-plan, le système de projet doit enregistrer des instantanés des données du projet pour s'assurer qu'une action ultérieure n'entre pas en conflit avec une action précédente. Par conséquent, le système de projet peut facilement se retrouver avec plusieurs copies des données d'un projet en mémoire à la fois. Si le système de projet ne prend pas soin de gérer ces copies, elles peuvent être conservées plus longtemps que nécessaire, voire faire l'objet de fuites et être conservées de manière permanente.

    Vick a annoncé que son équipe et lui sont conscients des problèmes que cela peut poser et travaillent donc avec acharnement pour réduire le nombre de copies que le système de projet peut conserver en une fois.

    Amélioration de la charge de solution

    « Avec tout ce travail, nous avons considérablement optimisé l'expérience de travail avec les grandes solutions .NET 5 et .NET Core », a déclaré Vick. « À partir de la version 16.8, nous avons constaté, dans nombre de nos tests, une amélioration de 2,5 fois de la taille de la solution que nous pouvons ouvrir avant de rencontrer des problèmes de ressources. Nous avons également constaté une diminution allant jusqu'à 25 % des pannes signalées en raison de l'épuisement des ressources », a ajouté l'ingénieur.

    Selon lui, les améliorations énumérées ci-dessus ne sont que le début des changements que nous apportons pour améliorer l'expérience de travail avec des solutions de grande taille dans Visual Studio. Toutefois, il note que les performances des solutions individuelles peuvent encore varier, en fonction de la taille de la solution, du type de projets, des extensions chargées, etc. Il invite donc les développeurs qui rencontreront d'autres problèmes à contacter l'équipe pour une assistance.

    Source : Microsoft

    Et vous ?

    Que pensez-vous des optimisations apportées à Visual Studio ?
    Avez-vous déjà migré ou entamé la migration de votre projet vers .NET 5 ?
    Quels sont les problèmes que vous et votre organisation avez rencontrés lors de la migration ?

    Voir aussi

    Microsoft a annoncé la disponibilité générale de .NET 5 qui inclut C# 9, F# 5 et une prise en charge native de Windows Arm64

    Depuis qu'il a effectué une migration vers .NET 5.0, le développeur de la bibliothèque .NET Fusion a constaté une nette amélioration des performances

    Avec .NET 5, Microsoft voudrait produire un environnement d'exécution .NET unique et une infrastructure utilisable partout

    .NET 5 : Benchmark.NET est dorénavant l'outil canonique pour mesurer la performance du code .NET. Voici un aperçu des améliorations de performances à venir dans .NET 5
    Contribuez au club : Corrections, suggestions, critiques, ... : Contactez le service news et Rédigez des actualités

  2. #2
    Membre extrêmement actif
    Homme Profil pro
    Technicien de maintenance / Developpeur PHP
    Inscrit en
    mai 2015
    Messages
    331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien de maintenance / Developpeur PHP
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : mai 2015
    Messages : 331
    Points : 1 192
    Points
    1 192
    Par défaut
    Que pensez-vous des optimisations apportées à Visual Studio ?

    Commencer à optimiser, pour une version 16 d'un IDE, j'ai envie de dire "C'est pas trop tôt" .
    Venir parler d'optimisations pourtant évidente (ça fait longtemps qu'MS en parle quand même) sur le tooling, juste maintenant, .
    Pareille, le coup de Roslyn qui tourne dans l'IDE, ça vient d'où cette idée ?

    Avez-vous déjà migré ou entamé la migration de votre projet vers .NET 5 ?

    Franchement, la migration n'est envisageable que pour des projets à longue durée de vie, sinon aucun intérêts à passer sur .NET 5 pour d'anciens projets, surtout au vue de la consistance qu'a MS à tout "révolutionner" dans l'écosystème .NET ces derniers temps.

    Quels sont les problèmes que vous et votre organisation avez rencontrés lors de la migration ?

    Je n'ai pas eu ce désagrément, mais je compati .

  3. #3
    Membre expérimenté

    Profil pro
    Chef de Projet / Développeur
    Inscrit en
    juin 2002
    Messages
    484
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de Projet / Développeur
    Secteur : Santé

    Informations forums :
    Inscription : juin 2002
    Messages : 484
    Points : 1 352
    Points
    1 352
    Par défaut
    Quand j'ai commencé à travailler sur .Net, c'était déjà la version 16.8

    J'adore VS et la productivité qu'il permet en C#
    Mais punaise, qu'est-ce que cela devait être en .Net 5 avant la 16.8, car VS est devenu incroyablement mou et lent.

    Quand au passage massive de .Net Framework à .Net 5 d'ancien projet, il faudrait que VS est un meilleur support des Winform.
    C'est en béta depuis des mois et de maj en maj, on ne voit absolument aucune amélioration (pas même au niveau des notes de versions), à ce demander si c'est toujours dans les projet de MS d'aller au bout de ce support.
    Or en l'état l'éditeur visuel est quasi inutilisable.
    --
    vanquish

  4. #4
    Membre éprouvé
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    août 2014
    Messages
    465
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : août 2014
    Messages : 465
    Points : 968
    Points
    968
    Par défaut
    Que pensez-vous des optimisations apportées à Visual Studio ?
    Microsoft poussif encore et toujours, meme sur des machines costauds avec SSD on se demande ce que fait l'application. C'est effectivement devenu un monstre.


    Avez-vous déjà migré ou entamé la migration de votre projet vers .NET 5 ?
    Migration planifiée mais pas du tout convaincu des nouveautés apportées par .net5 (passer de web.config a appsettings.json, Pattern option de partout, Injection de dependance a gogo de là a supprimer totalement les classes statiques, utilisation des extensions IOC, Logger génériques Microsoft qui font moins que la plupart des ténors existants etc). Je vois des ayatolas qui reecrivent des pans entiers pour appliquer ces différents elements afin de s'affranchir de toutes dépendances non microsoftienne. Je n'adhere pas tant je ne leur fait plus confiance.
    Razor/webAssembly ca me semble encore prematuré, la plupart de mes collègues dev dans le digital préfèrent se limiter aux technos web traditionnelles (Framework js/ts etc). Echaudés par SL/WPF plus personne ne suit aveuglement M$ dans ma boite.

    J'irai vers cette migration parce que c'est planifié pour dans les prochains mois et j'ai déjà d'ailleurs commencé la migration en tache de fond mais bon les "nouveaux concepts" a la sauce Microsoft j'ai du mal.
    L'impression qu'ils passent plus de temps a revoir l'esthetique de leur langage qu'autre chose (faire en 2 lignes de code ce qu'on faisait en 3). Pas vraiment dans le langage que je les attends. Un Framework cross plateforme .net qui tiendrait la route (pour eviter QT par exemple) serait une bonne idee; Oublions les WPF et autres désormais totalement obsolètes.

  5. #5
    Membre éprouvé
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    août 2014
    Messages
    465
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : août 2014
    Messages : 465
    Points : 968
    Points
    968
    Par défaut
    Citation Envoyé par vanquish Voir le message
    Quand au passage massive de .Net Framework à .Net 5 d'ancien projet, il faudrait que VS est un meilleur support des Winform.
    C'est en béta depuis des mois et de maj en maj, on ne voit absolument aucune amélioration (pas même au niveau des notes de versions), à ce demander si c'est toujours dans les projet de MS d'aller au bout de ce support.
    Or en l'état l'éditeur visuel est quasi inutilisable.
    Tout a fait d'accord, la partie client lourde est devenue la 5eme roue du carosse. Rien qui tiet vraiment la route / perenne et la maintenance/evolutions n'en parlons pas, c'est quasi inexistant, y en a plus que pour le web.

Discussions similaires

  1. Réponses: 0
    Dernier message: 20/05/2020, 16h43
  2. Réponses: 8
    Dernier message: 03/04/2019, 15h57
  3. Microsoft annonce la diffusion de mises à jour cumulatives pour .NET Framework
    Par Stéphane le calme dans le forum Framework .NET
    Réponses: 0
    Dernier message: 22/09/2018, 10h30
  4. Microsoft publie la RC de la première mise à jour de Visual Studio 2013
    Par Hinault Romaric dans le forum Visual Studio
    Réponses: 43
    Dernier message: 16/11/2014, 10h30
  5. Récupérer la dernière mise à jour de Visual Studio 2008
    Par piotrr dans le forum Visual Studio Team System
    Réponses: 1
    Dernier message: 06/08/2009, 19h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo