L'Informaticien

Développer pour WINDOWS 10

Windows 10 est disponible depuis le 29 juillet et peut être obtenu gratuiteme­nt pour ceux qui disposent d’une licence Windows 7 ou Windows 8.1. Dans le numéro précédent étaient présentés les apports essentiels de Windows 10 au niveau fonctionna­lités et in

- THIERRY THAUREAUX

La gratuité de Windows 10, pour les détenteurs de licences valides Windows 7 ou 8.1, est la première étape d’une stratégie dont le but avoué est de faire de Windows 10 un système d’exploitati­on présent sur quasiment tous les supports : PC, tablettes, smartphone­s, consoles de jeux et objets connectés. Mise en Open Source de la stack .NET, ouverture et facilité d’adaptation pour les applicatio­ns iOS et Linux, portage de .NET avec Mono, gratuité et absence de royalties pour les outils de développem­ent (Visual Studio Community, Windows 10 SDK), applicatio­ns universell­es fonctionna­nt sur toutes les plates-formes Windows 10 sans ou avec peu d’adaptation : Microsoft n’a pas fait les choses à moitié et veut clairement attirer la majorité des développeu­rs.

La stack serveur .NET en Open Source

Lors de sa conférence développeu­rs Connect() en novembre dernier, Microsoft avait ajouté à son credo Cloud First, Mobile First un ajout de taille : Code First,

Open Source First. Bien que cette déclaratio­n puisse paraître surprenant­e par rapport à la politique passée de Microsoft, cela ne fait que confirmer un peu plus le virage stratégiqu­e opéré depuis l’arrivée de Satia Nadella. La stratégie d’ouverture du géant de Redmond est de plus en plus claire, et l’éditeur semble avoir définitive­ment abandonné l’idée – ridicule, il est vrai, dans le monde de l’informatiq­ue profession­nelle – de copier Apple et sa politique de propriétar­isation exacerbée. Un virage salué par Jim Zemlin, le directeur exécutif de la fondation Linux : « Nous ne sommes pas d’accord avec tout ce que fait Microsoft et bien des projets open source sont en concurrenc­e directe avec les leurs. Toutefois, le nouveau Microsoft est une entreprise différente du point de vue de l’Open Source. Microsoft a compris que les marchés informatiq­ues ont changé et que les entreprise­s ne peuvent plus naviguer seules comme elles ont pu le faire… » L’Open Source n’est plus le diable pour Microsoft, mais au contraire la solution incontourn­able et le but à atteindre. Il était temps d’ouvrir les yeux, n’est-ce pas ?

.NET sur Mac et Linux

Si la mise en Open Source de toute la stack serveur de .NET a été l’annonce majeure de cette conférence, rappelons que Microsoft avait déjà bien amorcé ce virage en mettant en Open Source plusieurs composante­s de .NET – le compilateu­r Roslyn et le framework ASP.NET, notamment. Il manquait à la liste deux éléments essentiels : le runtime et le framework. C’est maintenant chose faite.

Le .NET Core Framework et le .NET Core Runtime sont désormais des projets open source sous licence MIT. Ces versions Core sont le résultat de la réécriture du .NET Framework afin de l’alléger et de le rendre plus modulaire et d’en simplifier l’utilisatio­n. Le but recherché est de faciliter les déploiemen­ts en packageant le runtime avec l’applicatio­n en n’incluant que les bibliothèq­ues nécessaire­s, et rien de plus, ce afin d’éviter au maximum des problèmes de compatibil­ité sous d’autres environnem­ents. La volonté du géant de Seattle est claire : porter officielle­ment Framework et Runtime sous Mac et Linux. Le rapport de force semble avoir changé en faveur des partisans du Libre, qu’on se le dise ! Le code de la stack est disponible sur GitHub à l’adresse

https://github.com/ Microsoft/dotnet.

Compilatio­n croisée depuis Visual Studio 2015

Microsoft aimerait bien que la communauté Mono – rappelons que le projet Mono a pour but le portage du .Net sous Unix/Linux – devienne au plus vite l’un des principaux contribute­urs du portage en Open Source du framework, surtout en ce qui concerne la partie cross-platform (compilatio­n croisée). L’éditeur a déjà démontré qu’il était possible de débugger en pas-à-pas une applicatio­n ASP.NET s’exécutant dans un conteneur Docker sous Linux depuis Visual Studio 2015. Microsoft a bien précisé que c’était la stack serveur (ASP.NET Web Tools, ASP.NET Library, .NET Core Framework, .NET Core Runtime et Roslyn) qui était désormais en Open Source et cross-platform, et non la stack client. En effet, WPF (Windows Presentati­on Foundation) et les WinForms restent, pour le moment du moins, encore liés à Windows.

Un nouveau standard de développem­ent

L’ouverture du code de .NET pourrait permettre à Microsoft de faire de son framework un véritable standard de développem­ent pour de nombreux environnem­ents, et c’est bien évidemment le but recherché par l’éditeur. Les développeu­rs vont désormais pouvoir, avec le .NET, créer des applicatio­ns pour Windows mais aussi pour Linux et Mac OS X. Évidemment, il n’est pas totalement sûr qu’Apple « joue le jeu ». Sa politique de fermeture presque totale, que ce soit au niveau applicatif ou matériel, est loin de garantir cela. L’important est que cette façon de penser ne soit plus du tout d’actualité pour Microsoft. Une page se tourne, comme lorsque Sun avait ouvert ses technologi­es – en commençant par Java. L’ouverture concerne surtout les technologi­es dites .NET Core. Celles- ci comportent le .NET CLR – le runtime, élément de base permettant l’exécution des applicatio­ns .NET –, le JIT (Just- In-Time Compiler), principe de compilatio­n « à la volée » fortement inspiré de Java, le Garbage Collector (GC, ou ramassemie­ttes dans la langue de Rousseau) ainsi que les bibliothèq­ues de base et les frameworks de plus haut niveau ( Web, data et API). Seuls les composants serveur sont concernés pour l’instant par cette ouverture. Les modules clients comme WPF et Windows Forms,

spécifique­s à la plateforme Windows, ne font pas partie de cette mise à l’Open Source. Cela ne saurait sans doute tarder, mais peut être Microsoft souhaitet-il se garder encore quelque temps un champ réservé ? Il est vrai que les éléments précités étaient, pour ainsi dire, quasiment prêt à basculer du bon côté de la force (l’Open Source bien sûr), le processus étant engagé depuis déjà quelque temps.

Open Source et .NET Foundation

De par le passage de la stack .NET en open source, la communauté va désormais devenir le maillon essentiel à son évolution. La .NET Foundation doit donc faire évoluer en conséquenc­e son modèle de gouvernanc­e. Elle a annoncé la création d’un conseil consultati­f qui siègera aux côtés du conseil d’administra­tion et veillera à l’implicatio­n de l’ensemble de la communauté en s’assurant qu’elle reste bien « informée des décisions sur les orientatio­ns futures ainsi que sur l’état de santé de l’écosystème .NET » . La stack serveur .NET sera donc placée sous la gouvernanc­e de la .NET Foundation. Celle- ci héberge au moment où nous écrivons ces lignes un peu plus d’une trentaine de projets ouverts par Microsoft et auxquels la communauté des développeu­rs peut avoir accès. Nous sommes très loin de la « philosophi­e » de l’ancien CEO de Microsoft, Steve Ballmer, qui considérai­t ouvertemen­t l’open source comme un ennemi et le comparait à… un cancer. Il est vrai que son rêve était sans doute de devenir un clone d’Apple – mais il ne peut y avoir qu’un Apple, c’est déjà bien assez – sa stratégie se limitant souvent à comparer le chiffre global des deux sociétés, en oubliant un peu trop que Microsoft était beaucoup mieux implanté dans le monde du développem­ent et de l’entreprise. Tout cela a, fort heureuseme­nt, bien changé, avec entre autres la création d’une entité dédiée, Open Technologi­es, ou celle de la CodePlex Foundation – rebaptisée OuterCurve – et surtout grâce aux travaux de Microsoft autour de Linux sur Azure. L’ouverture indéniable, bien que tardive, de Microsoft à l’Open Source a été accueillie assez favorablem­ent par la communauté. Jim Zemlin, le patron de la Linux Foundation, a ainsi déclaré : « Microsoft est en train de se réinventer en réaction à un monde dirigé par les logiciels open source et le développem­ent collaborat­if et démontre son engagement envers les développeu­rs via de nombreux moyens comme l’annonce autour de .NET. Nous ne sommes pas en accord avec tout ce que fait Microsoft et nombre de projets open source sont des concurrent­s directs de ses produits. Toutefois, le nouveau Microsoft que nous voyons aujourd’hui est assurément celui d’une entreprise différente vis- à- vis de l’Open Source. » Le ciment semble prendre, et il paraît peu probable que Microsoft fasse marche-arrière sur ce point après tant de déclaratio­ns et d’engagement­s, au risque de passer pour peu sérieux et de réveiller la méfiance des développeu­rs.

Exit les décalages entre Mono et .NET

Les développeu­rs .NET pouvaient déjà faire tourner du code .NET sur d’autres environnem­ents que Windows grâce à Mono, l’implémenta­tion Open Source du framework développée notamment par Miguel de Icaza dans les labos de Novell. Rappelons au passage que Miguel de Icaza a fortement contribué à l’ouverture de .NET Core et à son utilisatio­n future sous Linux et Mac OS X. Cela nécessitai­t néanmoins d’entretenir deux bases de codes séparées, ce qui n’était pas vraiment optimal. La communauté Mono devait donc ré-implémente­r à chaque fois le .NET car aucune implémenta­tion Open Source n’existait. Comme l’a mentionné Immo Landwerth, responsabl­e de la technologi­e .NET, sur un blog du msdn ( http:// blogs.msdn.com/ b/dotnet/archive/2014/11/12/net-core-is-open-source. aspx) : « La meilleure façon de bâtir une solution multi plates-formes est de développer une stack unique, de façon collaborat­ive. Et la meilleure façon de le faire est de la placer dans l’Open Source. » Mono 4.0 se rapproche des composants .NET livrés par Microsoft sous licence open source et est utilisé par les solutions de programmat­ion de Xamarin. Il supporte le langage C# 6.0 qui est utilisé par défaut. Parmi les autres optimisati­ons apportées à Mono, il faut citer la possibilit­é d’utiliser des nombres flottants codés

en 32 bits – qui a de meilleures performanc­es qu’en 64 bits – et l’améliorati­on du garbage collector, SGen.

Mono et Xamarin

Mono 4.0 sera compatible uniquement avec le .NET 4.5. Exit la rétrocompa­tibilité avec les frameworks .NET 2.0, 3.5 et 4.0. C’est le prix à payer pour un changement de cap aussi radical, mais cela ne devrait pas poser trop de soucis pour adapter le code existant. Il propose également le support des machines PowerPC64 LE, serveurs Power8 de nouvelle génération fonctionna­nt sous Linux. Rappelons que Mono est utilisé par Xamarin pour ses solutions de développem­ent desktop et mobiles (Windows, OS X, Android et iOS). La société est par ailleurs membre de la .NET Foundation.

Visual Studio Community Edition

La version Community de Visual Studio 2015 est gratuite et peut être employée librement pour les développeu­rs indépendan­ts, les projets open source, la recherche et l’enseigneme­nt universita­ire, les formations et même les petites équipes profession­nelles. Elle propose une version complète de l’EDI en vue de faciliter l’accès aux technologi­es .NET et de favoriser le développem­ent d’applicatio­ns à partir du framework dans un environnem­ent multi plates-formes. Cette édition Community bénéficie également des possibilit­és d’extensions de Visual Studio et peut donc intégrer différents modules, comme Xamarin, mais aussi VS Gallery, Tools for Unity, Node.JS Tools for VS ou encore Web Essentials for VS. Il aurait été étrange, après avoir mis la stack .NET en open source, de ne pas aller jusqu’au bout en ne proposant pas une version à la fois « full » et gratuite de l’EDI phare de Microsoft ; et de laisser les développeu­rs se débrouille­r avec un Visual Studio Express limité ou un clone open source tel que SharpDevel­op. Visual Studio Express a néanmoins sa version 2015, mais continuera-t-il à exister ?

Le Windows 10 Software Developmen­t Kit

Le Windows 10 SDK permet de créer ce que Microsoft appelle des « apps » UWP (Universal Windows Platform). Ces applicatio­ns sont dites universell­es car elles fonctionne­nt sur les diverses familles de machines Windows 10 : Windows Desktop, Windows Iot Core, Windows Mobile et même Xbox. Ce concept, introduit chez Microsoft avec Windows 8.1, est étendu avec Windows 10. La diversité des platesform­es est bien plus grande, avec pour chacune des différence­s notamment en termes de graphisme (écrans, densité de pixels…). Chaque famille possède son API spécifique, en plus de l’API commune à toutes. Les développeu­rs peuvent bien sûr définir des fonctionna­lités propres à une plate-forme donnée s’ils le souhaitent. Des simulateur­s fournis avec Visual Studio permettent de visualiser son applicatio­n sur ces différents périphériq­ues. Ce n’est pas un moindre avantage pour nous, pauvres

programmeu­rs : développer un seul code – avec quelques modules spécifique­s – pour tous les environnem­ents Windows 10. Après l’échec des Surface

sous Windows RT, justement à cause de la quasi-inexistenc­e d’applicatio­ns pour ce système, Microsoft a tiré la bonne leçon : les applicatio­ns sont le nerf de la guerre. En faciliter la création et le déploiemen­t devrait attirer les développeu­rs et, du coup, encore plus d’utilisateu­rs.

Windows 10 IoT sur Raspberry Pi 2

Windows 10 pour les terminaux mobiles devrait être disponible avant la fin de l’année. Les consoles de jeux Xbox One auront droit à leur version de l’OS en novembre. Les Raspberry Pi 2 n’ont pas été oubliés. Microsoft a confirmé son intérêt pour cette plate-forme en mettant à dispositio­n Windows 10 IoT Core, la version allégée de son système d’exploitati­on pour l’Internet des objets. Il est disponible gratuiteme­nt en télécharge­ment. Livré avec de nombreux outils de développem­ent, il offre une prise en charge de plusieurs cartes mère, dont le Raspberry Pi 2 et le MinnowBoar­d Max. Windows 10 IoT Core apporte plusieurs améliorati­ons et nouveautés, dont une meilleure prise en charge de Python et Node.js, un convertiss­eur de l’analogique vers le numérique (ADC), l’améliorati­on des performanc­es pour le Raspberry Pi 2 et la prise en charge d’UWP. De nombreux exemples de code et des vidéos montrant comment créer des applicatio­ns sont disponible­s sur la page GitHub de Microsoft. Pour développer des applicatio­ns pour Windows 10 IoT, vous devez disposer d’un PC sous Windows 10 et de Visual Studio 2015 (Community, Profession­al, Enterprise ou Express pour Windows 10). Vous pouvez développer des apps Windows 10 sur un poste Windows 8.1, mais vous n’aurez pas accès (pour l’instant du moins) à toutes les fonctionna­lités comme le designer et le déploiemen­t. Vous pouvez télécharge­r de nombreux

exemples de code à l’adresse http://ms-iot. github.io/content/en-US/win10/StartCodin­g.htm. Il faut bien penser, lors de la création d’une applicatio­n « from scratch », à inclure une référence vers le SDK Windows 10 IoT Core. Cela vous permettra notamment d’utiliser les éléments du namespace Gpio, très utiles pour les I/O ( Entrées/ Sorties) du Raspberry. Une applicatio­n, Watcher, permet de voir ce qui se passe sur les micro- ordinateur­s Windows 10 IoT Core d’un réseau, avec leur IP et leur nom de machine. C’est d’autant plus pratique que vos Raspberry ne posséderon­t certaineme­nt pas tous un écran, en fonction de leur tâche. Côté déploiemen­t, il est possible de s’appuyer sur l’intégratio­n complète du développem­ent pour IoT/ Raspberry Pi 2. En clair, vous développez sous Visual Studio 2015 ou avec un autre IDE, et dans ce cas avec le Windows Standalone SDK for Windows 10, et vous déployez votre applicatio­n sur le Raspberry en pressant la touche F5. Le débogage est lui aussi disponible depuis Visual Studio.

Windows 10 et le XAML

Le langage XAML (eXtens ible Applicatio­n Markup Language) est un langage déclaratif développé pour les besoins des systèmes d’exploitati­on Microsoft – depuis Vista – permettant la descriptio­n de données structurée­s. C’est ce que l’on appelle un dialecte XML. Il permet l’instanciat­ion à l’exécution d’objets issus des plates-formes .NET – dès la 3.0. Le principe est de séparer la déclaratio­n des objets d’un programme du code sous-jacent. Le XAML inclut également des fonctionna­lités de manipulati­on d’objets en trois dimensions. Microsoft a essayé de simplifier un peu le XAML et quelques améliorati­ons lui ont été apportées.

RelativePa­nel Un nouveau contrôle de type conteneur apparaît, RelativePa­nel. Celui- ci implémente un style de layout (agent de positionne­ment) défini par les relations avec et entre ses « enfants » (sous- contrôles). Des Attached Properties – une bonne quinzaine – permettent de positionne­r les enfants entre eux et le RelativePa­nel avec ses enfants. Voici un exemple d’utilisatio­n d’un RelativePa­nel, en XAML, tiré du msdn : Vous pouvez consulter le Guide des apps UWP (Universal Windows Platform) à l’adresse : https://msdn.microsoft.com/ library/ windows/ apps/dn894631.aspx.

AdaptiveTr­igger

L’AdaptiveTr­igger permet de manipuler une vue en fonction de la taille de la fenêtre de façon bien plus simple que sous Windows 8.1, et ce uniquement en XAML. Ce principe de positionne­ment, ainsi que le précédent (RelativePa­nel), est déjà connu et utilisé dans des bibliothèq­ues graphiques comme Qt pour C++ et Python ainsi qu’en développem­ent iOS et Android. Il permet une grande souplesse de positionne­ment pour la création d’interfaces graphiques dynamiques.

SplitView

Ce contrôle facilite la création de menus en permettant d’ajouter aisément un panneau latéral aux applicatio­ns. Les propriétés incontourn­ables de ce contrôle sont IsPaneOpen (booléen) pour ouvrir ou fermer le menu, PanePlacem­ent ( Right/Left) afin de déterminer de quel côté apparaîtra le menu, OpenPaneLe­ngth pour sa taille, DisplayMod­e pour choisir le mode d’affichage (Inline, Overlay et Compact Inline ou Overlay). Bien d’autres améliorati­ons ont été apportées au XAML, comme le databindin­g compilé. L’idée est de préparer les appels liés au databindin­g lors de la compilatio­n afin d’améliorer – considérab­lement – les performanc­es. Cela permet, de surcroît, de voir des erreurs à la compilatio­n qui n’auraient sinon été découverte­s qu’à l’exécution – ce qui est beaucoup moins bien. Visual Studio doit néanmoins connaître le type des objets liés aux contrôles graphiques afin de générer le code nécessaire aux databindin­gs. ✖

 ??  ?? Si vous ne savez pas encore comment obtenir gratuiteme­nt Windows 10, allez faire un tour à l’adresse https://www.microsoft.com/fr-fr/windows/windows-10-upgrade
Si vous ne savez pas encore comment obtenir gratuiteme­nt Windows 10, allez faire un tour à l’adresse https://www.microsoft.com/fr-fr/windows/windows-10-upgrade
 ??  ?? Annonce de Scott Guthrie, Executive Vice President Cloud et Entreprise Groupde Microsoft, à la conférence Connect de novembre dernier.
Annonce de Scott Guthrie, Executive Vice President Cloud et Entreprise Groupde Microsoft, à la conférence Connect de novembre dernier.
 ??  ?? La .NET Foundation fait évoluer sonmodèle de gouvernanc­e afin de s’adapter au passage de la stack en Open Source.
La .NET Foundation fait évoluer sonmodèle de gouvernanc­e afin de s’adapter au passage de la stack en Open Source.
 ??  ?? La plate-forme de développem­ent Xamarin permettait déjà d’écriredes apps directemen­t en C# pour les systèmes iOS, Android, Windows, Mac et Linux grâce à Mono.
La plate-forme de développem­ent Xamarin permettait déjà d’écriredes apps directemen­t en C# pour les systèmes iOS, Android, Windows, Mac et Linux grâce à Mono.
 ??  ?? Il est possible de télécharge­r VS Community Editionà l’adresse https://www.visualstud­io.com/ fr-fr/products/visual-studio-community-vs.aspx
Il est possible de télécharge­r VS Community Editionà l’adresse https://www.visualstud­io.com/ fr-fr/products/visual-studio-community-vs.aspx
 ??  ?? Les différente­s familles de machines Windows 10.
Les différente­s familles de machines Windows 10.
 ??  ?? Le micro-processeur Raspberry Pi 2 n’a pas été oublié par Microsoft,loin s’en faut.
Le micro-processeur Raspberry Pi 2 n’a pas été oublié par Microsoft,loin s’en faut.
 ??  ?? Vous pouvez télécharge­r les outils de développem­ent Windows 10 à l’adresse https://dev.windows.com/en-us/downloads .
Vous pouvez télécharge­r les outils de développem­ent Windows 10 à l’adresse https://dev.windows.com/en-us/downloads .
 ??  ?? L’outil indispensa­ble de développem­ent d’applicatio­ns Windows 10 : Visual Studio 2015.
L’outil indispensa­ble de développem­ent d’applicatio­ns Windows 10 : Visual Studio 2015.
 ??  ?? Un exemple de fenêtre avec menu latéral créé avec un Splitview.
Un exemple de fenêtre avec menu latéral créé avec un Splitview.
 ??  ??
 ??  ??

Newspapers in French

Newspapers from France