Connexion
Abonnez-vous

Build 2020 : Reunion d’UWP et Win32, Visual Studio, Live Share et Codespaces

Vers un même lot d'API pour toutes les apps

Build 2020 : Reunion d'UWP et Win32, Visual Studio, Live Share et Codespaces

Notre dossier sur la Build 2020 de Microsoft :

Le 20 mai 2020 à 16h00

La Build 2020 a, comme chaque année, été l'occasion de nombreuses nouveautés à tous les niveaux : développement, futur des applications Windows, Azure, machine learning, Microsoft 365 sont au programme. Voici un tour d'horizon de celles concernant directement les développeurs et l'environnement Windows 10.

La conférence Build de cette année est particulièrement touffue en nouveautés. Comme on a déjà pu le voir pour WSL 2, l'intégration du GPU et plus particulièrement de ceux de NVIDIA et le Terminal, Microsoft tire dans toutes les directions dans un domaine où l’entreprise concentre ses forces vives : le développement. Et l’open source y joue un rôle important.

Les annonces pour les développeurs sont donc particulièrement nombreuses, tant autour de Visual Studio que des différentes briques proposées. C’est particulièrement le cas pour le rapprochement entre UWP (Universel Windows Platform) et Win32, un mariage forcé dont l’éditeur semble enfin voir le bout, avec une vision cohérente.

D'autres articles viendront évoquer les évolutions de Microsoft 365 puis d'Azure et le machine learning.

Le projet Reunion : rapprochement d’UWP et Win32

Le fameux projet Reunion n’est pas en soi un composant ou un produit. C’est un effort de longue haleine, prenant appui sur les progrès réalisés depuis deux ans et définissant enfin clairement la direction que doit prendre le rapprochement d’UWP et Win32 pour parvenir à une plateforme unique.

L’objectif de Microsoft est de présenter, idéalement, un front uni aux développeurs. Ils doivent pouvoir créer de nouvelles applications ou moderniser les existantes sans avoir réellement à faire de choix entre l’un ou l’autre de ces socles techniques, regroupant des API (interfaces de programmation) parfois très différentes.

L’accès à ces API sera donc unifié. Les interfaces elles-mêmes vont être découplées de Windows et rendues disponibles via des outils comme NuGet. Le projet aboutira à une seule et unique plateforme dans laquelle les développeurs pourront puiser ce dont ils ont besoin. Toutes les applications seront concernées, aussi bien les natives (en C++ par exemple) que .NET (WPF, Windows Forms et UWP) ou même React Native.

Project Reunion UWP Win32Project Reunion UWP Win32Project Reunion UWP Win32

Cet effort de séparation concerne aussi bien les API existantes que celles en préparation. Microsoft précise que des polyfills seront ajoutées chaque fois que nécessaire. Il s’agit pour rappel de palliatifs de rétrocompatibilité. Dans le cas présent, ils assureront le fonctionnement de la nouvelle plateforme avec l’ensemble des versions supportées de Windows.

Des préversions de composants sont disponibles et s’inscrivent dans le projet Reunion. Par exemple, WebView2, nouvelle version en préparation de la brique permettant aux applications de présenter du contenu web. Contrairement à la première mouture, elle repose cette fois sur Chromium, donc sur le nouvel Edge. À terme, les applications du Store réclameront WebView2, mais il faudra passer par une période un peu étrange durant laquelle le navigateur sera déployé partout alors que le Store réclamera toujours la première WebView, basée sur l’ancien EdgeHTML.

Même chose pour WinUI 3, dont la première préversion permet l’utilisation dans tous les types de projets. Ce framework concentre l’ensemble des composants nécessaires à la création des interfaces sous Windows. Microsoft en vante les performances et met – évidemment – en avant son Fluent Design. WinUI permet en outre d’adapter automatiquement les éléments de l’interface au type d’appareil utilisé. L’ambition de Microsoft dans ce domaine n’a pas bougé d’un iota.

Cette première préversion de WinUI 3 présente ses propres nouveautés, dont l’intégration du contrôle SwapChainPanel, autorisant les développeurs travaillant avec DirectX à personnaliser le rendu graphique. On y trouve aussi le support de .NET 5, des corrections et améliorations de stabilité et les contrôles ajoutés à WinUI 2.4, l'actuelle version stable.

Visual Studio 2019 : renforcement C++, Model Builder et Address Sanitizer

Difficile de parler développement chez Microsoft sans aborder son environnement intégré (IDE). Place d’abord à la mise à jour 16.6, qui apporte son lot d’améliorations et nouveautés. Le contrôle de version a ainsi été renforcé avec une interface Git remaniée pour travailler plus facilement avec des serveurs distants.

On y trouve également un débogage d’instantanés (snapshots) plus simple à prendre en main, l’outil .NET Async pour le profilage des applications .NET, l’intégration du Terminal 1.0 ainsi qu’un certain nombre de fonctions C++ 20 Standard Library, notamment une première implémentation de la balise span.

On reste dans le C++ avec la possibilité de générer automatiquement des documents XML ou Doxygen contenant des portions de commentaires. Les développeurs pourront ajouter les instructions en ajoutant /// ou /** au-dessus des fonctions. Ces commentaires apparaitront aussi dans les info-bulles de Quick Info, Member List et Parameter Help.

IntelliSense vérifie maintenant le code au fur et à mesure de son écriture ou pendant son édition. Les problèmes potentiels sont ainsi soulignés, comme le ferait par exemple Word dans un document. Des ampoules peuvent apparaître à gauche du code pour proposer diverses corrections.

Enfin, la version 16.6 intègre deux préversions. D’abord le designer Windows Forms pour les projets .NET Core. Tous les contrôles y sont disponibles, à l’exception de DataGrid View et ToolStripContainer, ce dernier devant arriver « bientôt ». Glisser/déposer, sélection, déplacement et redimensionnement, copier/couper/coller/supprimer des contrôles, intégration avec la fenêtre des Propriétés ou encore génération d’évènements font partie du lot.

Ensuite, le Model Builder de ML.NET. Il s’agit de l’interface permettant la création et l’entrainement des modèles. Microsoft insiste sur l’idée que ces deux éléments peuvent être utilisés sans expérience du machine learning, grâce à des scénarios préconstruits et courants comme les prévisions, la détection d’anomalies ou d’objets. Selon la taille des jeux de données, l’entrainement peut se faire localement ou dans Azure.

Dans le même temps, une préversion de la mise à jour 16.7 est apparue, avec une nouvelle flopée d’améliorations pour Git. Par exemple, le sélecteur de branches affiche des icônes spécifiques pour signaler les branches distantes. On y trouve également Address Sanitizer pour C++, avec l’objectif de trouver rapidement les erreurs pouvant mener à des corruptions de la mémoire, donc potentiellement des failles de sécurité.

Le runtime ASAN supporte maintenant le x64 et les switch /MTd, /MDd et /LDd. Parmi les autres nouveautés, signalons un renforcement d’IntelliCode avec l’arrivée de recommandations pour les arguments de fonctions avec C#, plusieurs apports pour le XAML dont une préversion des Actions Suggérées dans le Designer ou encore la possibilité de définir des listes de lecture basées sur Project, Class ou Namespace dans le Test Explorer. Conséquence, tout nouveau test ajouté dans l’un des trois par la suite sera automatiquement repris dans la liste correspondante.

La version 16.7 sera une « servicing baseline », la troisième pour Visual Studio 2019. Contrairement à des moutures comme les 16.5 et 16.6, dont les correctifs sont fournis jusqu’à l’arrivée de la révision suivante, elle est prolongée jusqu’à un an après la baseline suivante. Par exemple, la 16.4, dernière en date, aura encore un an de correctifs dès la sortie de la 16.7.

Visual Studio pour Mac 8.6 a son propre terminal

La version macOS reçoit elle aussi des nouveautés avec la mouture 8.6. Le plus gros apport est clairement l’ajout d’un terminal, pleinement intégré à l’environnement de développement et au système. Intégration avec le Terminal Mac, support d’instances multiples, recherche ou encore police configurable sont au programme.

Visual Studio Mac Terminal

La nouvelle version prend en charge les applications Blazor WebAssembly, qui permettent le développement de pages web en C#. Microsoft en vante les performances et la faible consommation de mémoire vive. Un modèle pour les projets gRPC est aussi présent, avec le support d’ASP.NET Core et des outils C# pour les fichiers .proto. gRPC est un framework Remote Procedure Call se voulant (là encore) très performant et indépendant du langage

Autre amélioration, la possibilité de déplacer la flèche indiquant la prochaine ligne exécutée pendant la phase de débogage. Quand l’outil est en pause, déplacer la flèche pour la remonter de plusieurs lignes permet par exemple de relancer le débogage sur une section spécifique après un changement. On peut également accéder à cette capacité via un clic droit sur n’importe quelle ligne de code.

Plusieurs changements interviennent en outre dans la terminologie employée dans certaines fonctions, particulièrement celles liées à Git. Select Repository devient ainsi Clone Repository, Review and Commit devient Push Changes, et Checkout devient Clone Repository. Ces changements doivent mieux refléter les noms des actions dans Git. Le menu lié au contrôle des versions est réaménagé pour mettre en avant les actions les plus utilisées habituellement.

Visual Studio for Mac 8.6 corrige également plusieurs problèmes d’authentification au sein de l’environnement.

Chat et audio pour Live Share, Codespaces en préversion

Concernant Live Share, la seule nouveauté annoncée sera disponible en préversion dans les jours à venir : un chat et le support de l’audio. La fonctionnalité est pour rappel un outil de collaboration intégré à Visual Studio, permettant notamment la coédition et le débogage à plusieurs d’un projet. L’arrivée des conversations audio et écrites est donc particulièrement logique.

Codespaces, nouveau nom de Visual Studio Online, a bien sûr eu les honneurs d’une présentation. Il s’agit pour rappel d’instances distantes de Visual Studio Code, permettant aux développeurs de continuer à travailler à partir de tout ordinateur et d’un navigateur (c’est du moins l’idée). La fonction est disponible en préversion et est payante, même si les tarifs ont récemment été divisés par trois environ.

Codespaces

L’intérêt principal de Codespaces réside dans la capacité pour une entreprise de préparer à l’avance ces instances pour les paramétrer finement en fonction des besoins. Sans machine principale entre les mains, on peut quand même retrouver un environnement spécifique et adapté aux besoins, allant de l’écriture à l’exécution des projets, en passant par le débogage.

Codespaces devrait également être bientôt disponible pour GitHub. Les développeurs pourront alors initier des sessions de développement depuis n’importe quel dépôt.

Commentaires (13)

Vous devez être abonné pour pouvoir commenter.

Abonnez-vous
votre avatar

je ne comprends pas, win32 c’était pas le truc que MS cherché à éliminer à terme (à isoler pour l’instant) dans windows core OS (windows 10X) ? Du coup, je ne comprend pas trop c’est quoi le but avec projet Reunion.

votre avatar

En fait le terme Win32 est souvent utilisé pour décrire n’importe quelle API Windows. Win32 a été éliminé de 10X et est placé dans un conteneur, UWP remplace Win32 d’ailleurs une grosse partie des applis que les gens appellent Win32 sont des applis ne l’utilisant même pas. En gros Microsoft a fait en sorte que dégager petit à petit Win32 en créant simplement des wrappers vers UWP.



A compter de maintenant il faut se dire que toute applications utilisant Win32 sera pénalisée en terme de perf du à la mise en boite du bousin.

votre avatar

Plus qu’à espérer que National instruments integre ça dans son ide L’an windows CVI qui commence à être sérieusement à la rue.

c’est fonctions sympa, sont aussi dispo en C ? CVI étant une sur couche NI par dessus le sdk Windows 8.1..

votre avatar



Et en français ça donne quoi ?

votre avatar







Argonaute a écrit :



Et en français ça donne quoi ?





+1


votre avatar







tazvld a écrit :



je ne comprends pas, win32 c’était pas le truc que MS cherché à éliminer à terme (à isoler pour l’instant) dans windows core OS (windows 10X) ? 



Win32, c’est le “truc” que Ms essaie de remplacer depuis des années, mais qui reste toujours à la base de leurs applis (Office en client lourd, Visual Studio, SQL Server, tous en dépendent plus ou moins largement).

Bref, entre le fait que les solutions de remplacement étaient non abouties, moins bien documentés/connues, nécessitait de former les développeurs, et le fait que Ms fait du “faites ce que je dis, pas ce que je fais”, rien n’a jamais bougé réellement.



Ms a toujours été à 2 doigts d’unifier tout (.Net entre les plateformes, OS, …) mais ça n’a jamais réussi, ou alors trop tard (Windows 10 Phone?)


votre avatar

Le clavier du tel qui est fourbe <img data-src=" />





LabWindows/CVI c’est un ide de chez National Instrument. C’est pour de l’instrumentation( pilotage d’instruments de mesures, tout ce qui touche au test et mesure).



Le langage est du C avec tout un tas d’api en plus pour ce qui est pilotage d’appareil et fonctionne d’analyses de courbes/stat…

Par contre les interface, ont est toujours en mode mode XP, le compilateur c’est le SDK Microsoft 8.1, il y a une passerelle franchement bof pour des fonction .Net.

votre avatar

En cette période de Covid et du télétravail, Codespaces devrait avoir un focus particulier. Non?

votre avatar

SQL Server ne repose pas sur Win32, Visual studio non plus, Il ne reste que Office.

votre avatar

SQL Server sur Linux ne doit pas avoir beaucoup de Win32…

votre avatar







letter a écrit :



SQL Server sur Linux ne doit pas avoir beaucoup de Win32…






Ça, ce n'est pas une preuve en soi qu'MS SQL Serveur Windows ne soit pas une appli Win32. T'as bien depuis longtemps des versions Windows et Mac d'MS Office.

votre avatar







letter a écrit :



SQL Server sur Linux ne doit pas avoir beaucoup de Win32…





En même temps, ton SQL Server Linux ne pourra pas intégrer certaines fonctionnalités réservées du coup à SQL Windows, notamment dans les traitements SSIS…


votre avatar







Jungledede a écrit :



Plus qu’à espérer que National instruments integre ça dans son ide L’an windows CVI qui commence à être sérieusement à la rue.

c’est fonctions sympa, sont aussi dispo en C ? CVI étant une sur couche NI par dessus le sdk Windows 8.1..





LabWindows CVI !!!!

&nbsp;Mon dieu, cela me rappelle quand j’étais jeune. J’en ai fait à mon début de carrière entre 1996 et 2001…

&nbsp;Et si je comprends bien, si je m’y remettais, je serais rouillé (j’ai plus fait de code depuis) mais pas dépaysé, donc…


Build 2020 : Reunion d’UWP et Win32, Visual Studio, Live Share et Codespaces

  • Le projet Reunion : rapprochement d’UWP et Win32

  • Visual Studio 2019 : renforcement C++, Model Builder et Address Sanitizer

  • Visual Studio pour Mac 8.6 a son propre terminal

  • Chat et audio pour Live Share, Codespaces en préversion

Fermer