Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Visual Studio 2019 version 16.3 est disponible et apporte le support de .NET Core 3.0
Microsoft annonce aussi la disponibilité de Visual Studio 2019 version 16.4 Preview 1

Le , par Stéphane le calme

46PARTAGES

14  0 
En parallèle à la disponibilité de .NET Core 3.0, Microsoft a annoncé la disponibilité de Visual Studio 16.3. Jacqueline Widdis, Program Manager Release Team de Microsoft, a écrit :

« Alors que nous continuons à remplir notre mission n'importe quel développeur, n'importe quelle application, n'importe quelle plateforme, c’est toujours une période excitante pour l’équipe de Visual Studio lorsque nous devons lancer des fonctionnalités majeures. Nous publions aujourd'hui la version 16.3 de Visual Studio 2019, qui comprend la prise en charge de la version .NET Core 3.0, d'importantes améliorations du C++ et de superbes mises à jour pour les développeurs Python, ainsi que le support de TypeScript 3.6 ».

Comme à l'accoutumée, Microsoft en a profité pour proposer la première préversion de Visual Studio 16.4.

.NET Core 3.0

Visual Studio version 16.3 inclut la prise en charge de .NET Core 3.0. À propos de .NET Core 3.0, Scott Hanselman fait une description assez intéressante :

« .NET Core est open source et multiplateforme. Vous pouvez utiliser .NET Core pour exécuter des applications serveur sous Windows, Mac, une douzaine de systèmes Linux, iPhone, des dispositifs IdO et plus encore. .NET Core est open source, multiplateforme et rapide.

« En parallèle à la sortie de .NET Core 3.0 figure C# 8.0, disponible en version générale ! Lui aussi est open source. Il s'agit d'un langage que beaucoup d’entre vous utiliseront pour créer vos applications. Visual Studio 16.3 prend en charge C# 8.0 et .NET Core 3.0, ainsi que les outils pour toutes les nouvelles fonctionnalités de .NET Core 3.0. Cela inclut la prise en charge de la création d'applications de bureau avec Windows Forms et WPF, d'applications Web côté client avec Blazor et de microservices back-end utilisant gRPC.

« Bien que .NET Core 3.0 soit multiplateforme, vous pouvez également créer des applications spécifiques à la plateforme ! Cela signifie que vos applications peuvent " s'allumer " avec des fonctionnalités spécifiques au système d'exploitation. Par exemple, si vous souhaitez parler à un capteur de lumière sur un Raspberry Pi avec .NET Core, vous pouvez !

« L'étape suivante est évidente : prenez (si vous le souhaitez) vos apps Windows Forms ou WPF vieilles de 15 ans, permutez leur "moteur" pour tirer parti des nouveaux avantages apportés par .NET Core 3.0. C'est comme une greffe du cerveau qui peut rendre votre application plus rapide, plus facile à déployer et à maintenir, mais il s’agira toujours d’une application Windows utilisant votre code existant.

« Vous pensez peut-être que, étant donné que .NET Core 3.0 prend en charge Windows Forms et WPF, cela pourrait être plus lourd ou prendre plus de place. En fait, cette prise en charge existe dans les packages NuGet facultatifs. Vos applications .NET Core sont plus petites que jamais (et le seront encore plus dans les prochaines versions) et fonctionnent incroyablement bien dans les conteneurs / Docker et dans le cloud où la densité est nécessaire ».


Une application WPF affichée dans le nouveau concepteur

Parmi les autres améliorations apportées par .NET Core 3.0, nous pouvons citer :
  • le support de HTTP/2 dans HttpClient ;
  • les applications .NET Core ont maintenant des exécutables par défaut : dans les versions précédentes, les applications devaient être lancées via la commande dotnet ;
  • la taille de tas par défaut du récupérateur de mémoire a été réduite, aboutissant à une diminution de la quantité de mémoire utilisée par .NET Core. Le récupérateur de mémoire a également été mis à jour afin de mieux utiliser un grand nombre de cœurs sur des machines de plus de 64 cœurs ;
  • .NET Core fonctionne mieux avec Docker, le ramasse-miettes et le pool de threads ont été mis à jour pour fonctionner beaucoup mieux lorsqu'un conteneur a été configuré pour une mémoire ou un processeur limité. Les images docker .NET Core également sont plus petites, en particulier celles du SDK

Prise en charge des applications .NET Core Desktop

En fait, l'une des principales nouveautés de cette version est la prise en charge des applications desktop. Vous pouvez maintenant créer des applications Windows Forms et WPF avec .NET Core, sous Windows. Précisons que pour les applications de bureau de .NET Framework existantes, Microsoft a également veillé à faciliter leur migration vers .NET Core.

Visual Studio 2019 16.3 prend en charge la création d'applications WPF qui ciblent .NET Core. Cela inclut de nouveaux templates, un concepteur XAML (similaire au concepteur XAML existant qui cible .NET Framework) et XAML Hot Reload. Le concepteur Windows Forms est quant à lui toujours en préversion et disponible en téléchargement séparé, en tant qu'extension Visual Studio. Il sera ajouté à Visual Studio dans une version ultérieure. Il ne prend actuellement en charge que les contrôles et les fonctionnalités de bas niveau les plus couramment utilisés. Microsoft ne recommande donc pas de porter vos applications Windows Forms vers .NET Core, en particulier si vous comptez sur le concepteur. Les développeurs sont plus invités à le tester afin de partager leurs avis. Soulignons que vous pouvez également créer et générer des applications de bureau en utilisant la CLI .NET.

Jacqueline indique que :

« .NET Core 3.0 inclut une prise en charge complète des applications Windows Forms et WPF.

« Dans Visual Studio 2019 version 16.3, vous disposez des outils habituels pour la construction et la publication d'applications WPF, notamment le concepteur WPF XAML, des outils de création de packages MSIX pour les applications WPF, etc.

« Nous sommes également heureux d’annoncer que la première préversion des projets Windows Forms Designer pour .NET Core est disponible aujourd’hui ! Nous en sommes encore au début. Aussi, il n'est disponible pour le moment qu'en tant qu’extension Visual Studio («VSIX»). Une fois que vous avez installé .NET Core Designer, Visual Studio choisit automatiquement le concepteur approprié en fonction du framework cible de votre application. Cette préversion de Designer prend en charge un sous-ensemble de contrôles, mais d’autres seront ajoutés chaque mois dans des préversions ultérieures. C’est pourquoi nous ne recommandons pas encore de porter vos applications Windows Forms sur .NET Core si vous devez utiliser le concepteur régulièrement.

« Outre la prise en charge de WPF et de Windows Forms avec .NET Core, nous avons récemment introduit la prise en charge de WPF et de Windows Forms dans Visual Studio App Center en tant que préversion publique ».

Applications NET dans les conteneurs

Depuis Visual Studio 2019 version 16.3 Preview 2, les développeurs qui créent des solutions sans serveur à l'aide des fonctions Azure (v2) peuvent ajouter le support des conteneurs Docker à leurs projets C#. Ces outils de la catégorie « Container Tools » introduisent plusieurs avantages. Entre autres avantages, ils rendent les fonctions Azure beaucoup plus portables, améliorent la productivité en conteneurisant facilement les fonctions Azure dans un conteneur Linux.

Microsoft ne s’est pas arrêté à la portabilité et la productivité avec les outils « Container Tools ». En plus de cela, les outils ajoutent, non seulement, un Dockerfile au projet et construisent automatiquement l'image du Docker, mais également, vous pouvez vous assurer que votre code fonctionne comme prévu avec la possibilité supplémentaire de déboguer les fonctions Azure qui tournent à l'intérieur du conteneur. Microsoft recommande que la cible de débogage soit définie sur Docker afin de pouvoir activer cette fonctionnalité. Comme autres avantages de ces outils, ils vous permettent de définir des points d'arrêt, inspecter des variables et parcourir vos fonctions Azure.


Applications .NET dans Containers

Cette fonctionnalité est donc disponible avec la version générale de Visual Studio et son chemin d'accès reste le même.

Jacqueline avance que : « les développeurs qui se servent d'Azure Functions (v2) peuvent désormais ajouter la prise en charge du conteneur Docker (Linux uniquement) à leurs projets C#. Pour ce faire, cliquez avec le bouton droit de la souris sur le nom du projet dans l'Explorateur de solutions et sélectionnez Ajouter> Support Docker. En plus d'ajouter un fichier Docker à votre projet, la cible de débogage sera définie sur "Docker", ce qui signifie que lorsque vous déboguez votre application Function, cela se fera dans le conteneur en cours d'exécution ».

Productivité .NET

Comme C# 8.0 et .NET Core 3.0 sont désormais disponibles, les outils Visual Studio ont été mis à jour pour vous rendre plus productif lorsque vous utilisez ces nouveaux outils. Voici un aperçu des dizaines de fonctionnalités de refactorisation que Microsoft a ajoutées :

Vous pouvez encapsuler des chaînes avec un refactoring. Pour essayer ceci, placez votre curseur sur une chaîne et appuyez sur Ctrl +. pour ouvrir le menu Actions rapides et refactorisations.


Vous pouvez maintenant renommer un fichier en renommant une interface, une énumération ou une classe. Pour ce faire, placez simplement le curseur dans le nom de la classe et tapez Ctrl + R, R pour ouvrir la boîte de dialogue Renommer et cocher la case Renommer le fichier.


Visual Studio 2019 version 16.4 Preview 1

Si vous êtes un développeur qui souhaite essayer les outils de pointe dans .NET, découvrez les fonctionnalités de Visual Studio 2019 version 16.4 Preview 1.

C++

Visual Studio 2019 version 16.3 apporte de nouvelles fonctionnalités de productivité à tous les développeurs C++ et apporte des améliorations à l'expérience de développement multiplateforme C++.

Au-delà de ces deux aspects, ceux d'entre vous qui suivent les efforts de conformité à la norme C++ Standard de Microsoft seront peut-être heureux d'apprendre que, dans la bibliothèque standard C++ (STL), plusieurs nouvelles fonctionnalités en préversion sont disponibles sous /std:c++, parmi lesquels les C++ Concepts.

Productivité C ++

Il existe plusieurs améliorations pour lesquelles les développeurs C ++ sont enthousiastes. Par exemple, vous pouvez basculer entre les commentaires de ligne à l’aide du raccourci clavier Ctrl + K, Ctrl + / pour facilement mettre de côté le code que vous ne voulez pas compiler pour le moment.


La liste de complétion IntelliSense est plus puissante avec un filtre intégré qui prend en compte les qualificateurs de type. Par exemple, si vous tapez après const std::vector, la liste filtrera désormais les fonctions qui la modifieraient illégalement, telles que push_back.


Ensuite, un nouveau schéma de colorisation sémantique par défaut vous permet de mieux comprendre votre code d’un coup d’œil. Vous remarquerez de nouvelles couleurs dans les zones suivantes: fonctions, variables locales, caractères d'échappement, mot-clé de contrôle (if / else / for / return), caractères d'échappement de chaîne et macros. Il existe également une option permettant de différencier les fonctions et variables globales et membres. Les captures d'écran ci-dessous illustrent la nouvelle colorisation des thèmes bleus et sombres de Visual Studio:


Enfin, Microsoft a activé IntelliCode par défaut pour les développeurs C++, ajouté un moyen de configurer la fenêtre Pile d'appels pour masquer ou afficher les arguments de modèle afin d'améliorer la lisibilité et ajouté de nouvelles règles CppCoreCheck à Visual Studio Code Analysis.

Python

Avec cette version, vous profiterez d’une expérience de test renouvelée pour vos projets Python. Non seulement le support populaire pour le framework pytest est désormais pris en charge, mais le support pour le framework unittest a été amélioré pour vous offrir une expérience de test plus transparente. Passons en revue certaines de ces améliorations, depuis la configuration et l’exécution des tests jusqu’au débogage et enfin la couverture de code.

Configuration et exécution de tests

Voyons comment procéder pour les projets Python, puis pour le scénario Open Folder.

Pour activer l’expérience de test dans les projets Visual Studio for Python, cliquez avec le bouton droit de la souris sur le nom du projet et sélectionnez l’option ‘Propriétés’. Cette option ouvre le concepteur de projet, ce qui vous permet de configurer des tests en cliquant sur l’onglet ‘Test’. Dans l’onglet ‘Test’, cliquez simplement sur la liste déroulante ’Test Framework’ pour sélectionner le framework de test que vous souhaitez utiliser, comme vous pouvez le voir sur cette capture d’écran:


Appuyez sur CTRL + S pour lancer la découverte de test pour la structure de test que vous avez sélectionnée, qu'il s'agisse de pytest ou d'unittest.

Pour les scénarios Open Folder, l'expérience de test repose sur le fichier PythonSettings.json pour la configuration. Ce fichier se trouve dans votre dossier ‘local settings’ comme indiqué ici:


Couverture de code pour les tests

Pour activer la couverture de code pour votre projet / dossier actuellement ouvert, vous devez installer le paquet Python, la couverture, dans votre environnement virtuel actif. Ensuite, vous pouvez analyser la couverture de code en accédant à l'Explorateur de tests et en sélectionnant Analyser la couverture de code pour tous les tests.

Source : Microsoft

Et vous ?

Quelles sont les éléments qui vous intéressent le plus ?

Voir aussi :

Conférence CppCon 2019 : Microsoft libère son implémentation de la STL, la bibliothèque standard de C++ livrée avec Visual C++, sous licence Apache 2.0
Microsoft présente un nouveau Terminal pour Visual Studio qui partage l'essentiel du noyau de Windows Terminal, disponible à partir des préversions de Visual Studio 16.3
Microsoft amorce le support des Concepts apportés par C++ 20 dans Visual Studio 2019 version 16.3 Preview 2, au niveau du compilateur mais aussi de la bibliothèque
Visual Studio Code 1.38 permet de préserver la casse dans "Rechercher et remplacer" et est livré avec TypeScript 3.6.2

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de xarkam
Membre confirmé https://www.developpez.com
Le 25/09/2019 à 14:19
Citation Envoyé par matthius Voir le message
La version 3 de .NET qui sort permet à Microsoft de faire croire temporairement que l'on ne pourrait transférer toutes les applications Windows vers Linux.
Heu... NON!

Depuis l'annonce d'un support winform/wpf dans .Net core 3, Microsoft et la dotnet foundation ont toujours étés très clair et sans ambiguïté, pas de winform/wpf sous linux/mac.
En plus, ils ont même été jusqu'à préciser que c'est en partie à cause de brevets logiciels qu'ils ne peuvent pas le faire.

Malgré tout, il existe un "survey" sur la possible implémentation d'une couche GUI dans les prochaines version de .NET Core (5+) pour linux/mac. J'y ai répondu il y a des mois et n'ai plus le lien.

Si l'ont souhaite transférer des applications client/serveur web (asp), la migration est largement plus simple que dans les versions précédentes et il y a un outils qui génère un un rapport de migration pour aider les développeurs à voir les api qui poseraient problèmes.

La grande convergence est prévu pour novembre 2020 avec .NET Core 5 qui serait la suite logique du framework 4.8.

Après, si certains veulent penser que Microsoft ment, grand bien leur fasse....

Citation Envoyé par kilroyFR Voir le message
Je plussoie. On a tenté le passage a SqlServer sous Linux. On est vite revenu en arriere.
Pas fini comme logiciel. Au dela de la comm il faut savoir lire entre les lignes et ne pas tout prendre pour argent comptant.
Je n'ai jamais testé sql server sous linux (difficile de lâcher postgres ).
Ca serait bien que tu étaie ton propos. Je suis fortement intéressé par ce qui n'a pas fonctionné.
3  0 
Avatar de redcurve
Membre confirmé https://www.developpez.com
Le 25/09/2019 à 16:01
Citation Envoyé par matthius Voir le message
La Poste à Rennes disposait d'un logiciel tournant sur GNU Linux (au vu de l'interface) et l'a donc enfin installé. On a effectivement constaté beaucoup de crashs logiciels sur Rennes.

Paris n'est pas attaqué donc ferait croire au gouvernement que Windows tournerait bien.

Les assurances ne remboursent pas les cartes mères attaquées. L'informatique ne fonctionnait pas pour mon assurance à Rennes quand j'y suis allé.

La version 3 de .NET qui sort permet à Microsoft de faire croire temporairement que l'on ne pourrait transférer toutes les applications Windows vers Linux.

Le seul problème pour tout transférer Windows vers GNU*Linux en ce moment est .NET, nécessitant d'utiliser certaines versions stables des applications .NET.
Je ne vois pas en quoi Microsoft essai de faire croire quoi que ce soit, tout ce qui n'est pas lié spécifiquement à un os est portable donc les applications winform ne le sont pas et wpf pareil. Surtout que Winform n'est qu'une flat Api par dessus les Api de Windows donc impossible à porter.

Pareillement, si tu fais un truc spécifique à un raspberry par exemple bah ça ne fonctionnera pas ailleurs ^^ ce qui est logique... Tu peux pas juste prendre ton code qui tape les gpio du raspberry 4 et le balancer sur un Arduino en espérant que l'ordinateur va réfléchir à ta place.
1  0 
Avatar de redcurve
Membre confirmé https://www.developpez.com
Le 25/09/2019 à 16:06
Citation Envoyé par xarkam Voir le message
Heu... NON!

Depuis l'annonce d'un support winform/wpf dans .Net core 3, Microsoft et la dotnet foundation ont toujours étés très clair et sans ambiguïté, pas de winform/wpf sous linux/mac.
En plus, ils ont même été jusqu'à préciser que c'est en partie à cause de brevets logiciels qu'ils ne peuvent pas le faire.

Malgré tout, il existe un "survey" sur la possible implémentation d'une couche GUI dans les prochaines version de .NET Core (5+) pour linux/mac. J'y ai répondu il y a des mois et n'ai plus le lien.

Si l'ont souhaite transférer des applications client/serveur web (asp), la migration est largement plus simple que dans les versions précédentes et il y a un outils qui génère un un rapport de migration pour aider les développeurs à voir les api qui poseraient problèmes.

La grande convergence est prévu pour novembre 2020 avec .NET Core 5 qui serait la suite logique du framework 4.8.

Après, si certains veulent penser que Microsoft ment, grand bien leur fasse....

Je n'ai jamais testé sql server sous linux (difficile de lâcher postgres ).
Ca serait bien que tu étaie ton propos. Je suis fortement intéressé par ce qui n'a pas fonctionné.
Effectivement y'a débat entre ajouter des targets react native vers GTK#et j'sais plus quoi sur mac, partir sur Xamarin, ou sinon revoir le backend de WPF qui lui n'est lié qu'a DirectX
1  0 
Avatar de xarkam
Membre confirmé https://www.developpez.com
Le 25/09/2019 à 17:34
Citation Envoyé par redcurve Voir le message
Effectivement y'a débat entre ajouter des targets react native vers GTK#et j'sais plus quoi sur mac, partir sur Xamarin, ou sinon revoir le backend de WPF qui lui n'est lié qu'a DirectX
Sache quant même qu'il existe https://avaloniaui.net/
Ils ont abattu un énorme taff et le projet avance bien. D'où le sondage sur un UI dans .NET Core.

J'ai aussi testé leur IDE https://github.com/VitalElement/AvalonStudio
1  0 
Avatar de Pol63
Expert éminent sénior https://www.developpez.com
Le 27/09/2019 à 23:01
Citation Envoyé par youtpout978 Voir le message
Qu'en est-il de Blazor je pensais qu'il passerait en version finale avec Net Core 3.0 mais il semble toujours en preview
blazor a été coupé en 2 : blazor server et blazor client
blazor client ca doit être celui que tu attends, à savoir du html et du c# exécuté par webassembly, ca serait livré en mai 2020

blazor server c'est avec le même code (binding, event qui pointent vers du c# ...) sauf que le c# est exécuté côté serveur
on se croirait donc revenu à l'époque du webforms, mais en fait non il y a du javascript fait par ms au milieu, en cas d'event html, signalR (websocket asynchrone) envoi l'info au serveur, qui exécute le code c# et renvoie juste la différence de DOM (modèle html)
ca fait donc peu de transit et la page reste totalement dynamique

déjà si j'ai bien suivi avec le même code on peut etre soit en mode serveur ou client (ce qui permet de basculer de l'un à l'autre)

blazor server a des inconvénients :
- il consomme de la ram (car le server doit savoir où chaque client en est, et au passage en cas de redémarrage du server le client redémarre au début)
- il a une latence (soit disant très peu perceptible en lan, mais pas cool en web)

il a quelques avantages aussi, tes dlls restent sur ton serveur plutot que d'être décompilables par le client, et d'autres que j'ai pas retenu
ah et il est plus instantané que blazor client qui demande de télécharger mono et tes dll (d'ailleurs de ce côté je ne sais pas comment ils espèrent gommer ca d'ici mai 2020)
1  0 
Avatar de redcurve
Membre confirmé https://www.developpez.com
Le 25/09/2019 à 16:03
Citation Envoyé par kilroyFR Voir le message
Je plussoie. On a tenté le passage a SqlServer sous Linux. On est vite revenu en arriere.
Pas fini comme logiciel. Au dela de la comm il faut savoir lire entre les lignes et ne pas tout prendre pour argent comptant.
SqlServer sous linux fonctionne bien après le produit est neuf, bien que partageant l'immensité du code de la version windows il y a des spécificités donc un peu de polish à passer.
0  0 
Avatar de redcurve
Membre confirmé https://www.developpez.com
Le 26/09/2019 à 8:09
Citation Envoyé par xarkam Voir le message
Sache quant même qu'il existe https://avaloniaui.net/
Ils ont abattu un énorme taff et le projet avance bien. D'où le sondage sur un UI dans .NET Core.

J'ai aussi testé leur IDE https://github.com/VitalElement/AvalonStudio
Je suis ce projet de depuis plusieurs années ils ont effectivement fait un gros boulot
0  0 
Avatar de youtpout978
Membre expert https://www.developpez.com
Le 26/09/2019 à 10:06
Qu'en est-il de Blazor je pensais qu'il passerait en version finale avec Net Core 3.0 mais il semble toujours en preview
0  0 
Avatar de redcurve
Membre confirmé https://www.developpez.com
Le 27/09/2019 à 11:06
Citation Envoyé par youtpout978 Voir le message
Qu'en est-il de Blazor je pensais qu'il passerait en version finale avec Net Core 3.0 mais il semble toujours en preview
Blazor demande encore un peu de polish, mais est tout à fait utilisable en l'état il n'y aura pas je pense de grosse modifications d'APi public
0  0 
Avatar de youtpout978
Membre expert https://www.developpez.com
Le 28/09/2019 à 0:27
Mai 2020 je pensais que ça sortait en version finale en même temps que Net Core 3.0, et c'est bien la version webassembly que j'attends pour passer d'Angular à Blazor.
0  0