Developpez.com

Le Club des Développeurs et IT Pro

Microsoft ouvre le développement d'applications universelles aux développeurs C++

Les outils Visual C++ pour Windows 10 disponibles

Le 2015-03-31 17:39:12, par Malick, Community Manager
Microsoft ouvre le développement d’applications universelles aux développeurs C++
Les outils Visual C++ pour Windows 10 disponibles

Microsoft a récemment dévoilé la préversion de Visual Studio 2015, un EDI permettant de faire du développement multiplateforme en utilisant le langage C++. En effet, ce dernier continue d'être un langage très important dans le développement d'applications pour Windows.

Pour rappel, Visual C++ est un environnement de développement intégré pour Windows, conçu par Microsoft pour les langages de programmation C et C++. Il intègre différents outils pour développer, compiler, déboguer un programme en C++ s'exécutant sur Windows, ainsi que des bibliothèques comme Microsoft Foundation Class (MFC) . Visual C++ a été intégré à la suite Visual Studio, qui constitue un cadre unique aux divers environnements de développement de Microsoft.

Aujourd'hui, la firme de Redmond complète son kit de développement pour Windows 10, afin de permettre aux développeurs C++ de rejoindre les développeurs C# dans l’aventure Windows 10. Les outils qui viennent d’être publiés sont constitués de Windows Universal apps, de l'API Contracts, du C++ Runtime Dependencies for Universal Apps et Windows SDK(s).

1. Windows Universal apps

Cet outil intègre de nouveaux modèles de projets écrits en C++ que les développeurs pourront utiliser dans le cadre du développement d'applications universelles pour Windows. Les « Universal Apps » permettent aux développeurs de définir un code commun (le backend d’une application par exemple) et plusieurs projets d’IU, chacun ayant des éléments d’interface utilisateur alignés avec la résolution du dispositif ciblé (PC, smartphone, Xbox, etc.).



2. API Contracts

Les développeurs vont pouvoir concevoir des applications universelles pour Windows 10 en utilisant l'API Contracts. En effet, cet outil permet aux développeurs de vérifier, au moment de son exécution, si une fonctionnalité de Windows est disponible sur le périphérique avant de faire appel à une API connexe. Le code ci-après en est une illustration :


Les fonctionnalités de l'API Contracts ont été activées au niveau du compilateur C++ et dans l'environnement de développement.

3. C++ Runtime Dependencies for Universal Apps

Tout comme les applications disponibles dans le Windows Store, les applications universelles pour Windows 10 écrites en C++ s'appuieront sur le concept dit framework packages afin de faire face à leur dépendance d'exécution sur les bibliothèques C++.

Les développeurs précisent avoir fourni un mécanisme suivant lequel les DLL C++ nécessaires à l'exécution sont copiées directement dans les packages des applications. Ces DLL sont ensuite déployées tout au long de l'exécution des applications.

4. Windows SDK(s)

L'outil Windows SDK(s) fournit un certain nombre de nouvelles API dont plusieurs sont disponibles même en dehors du contexte d'applications universelles. En effet, même des applications de bureau peuvent utiliser ces API. Par conséquent, afin de faciliter l'expérimentation sur Windows 10 SDK, les développeurs ont changé le comportement de VS 2015 CTP6 pour permettre l'utilisation du Windows SDK sur tous les projets d'applications de bureau (MFC, Win32, console, etc.). Toutefois, cela n'est possible que si le SDK de Windows 10 est installé, sinon c'est le SDK de Windows 8.1 qui sera utilisé par défaut.

Source : Blog de Visual Studio

Et vous ?

Que pensez-vous de ces outils ?
  Discussion forum
51 commentaires
  • yoyo88
    Membre chevronné
    Envoyé par kilroyFR
    (je fais abstraction des contraintes de devt, des mauvaises performances, là ou avant tu affiché une suite de bitmaps pour faire une animation maintenant tu utilises un objet auquel tu appliques des translations mathematiques ... ou comment faire complique pour faire des trucs simples lol).
    je suis pas trop d'accord la dessus, oui c'est plus complexe mais c'est aussi beaucoup plus souple.
    chez nous on transforme toute nos icone en forme (rectangle/ligne ect). oui c'est compexe et oui parfois c'est chiant mais cela permet de bénéficier au mieux des possibilité du XAML.
    Agrandir un bouton ? pas de problème c'est vectoriel sa restera propre.
    rajouter une animation ? pas de soucie.
    changer la couleur du background ?pareil et je peux même gérer cela dynamiquement avec du binding.

    C'est un énorme avantage de pouvoir faire évoluer le look de son application sans a avoir a toucher a des image BMP ou avec un minimum de code. au pire on va rajouter un ou deux converter et quelques property au ViewModel. c'est rien et ça peut toujours être réutiliser.

    Envoyé par kilroyFR

    La maintenabilité des applis WPF on pourrait en ecrire des livres. Je n'ai jamais eu l'impression qu'on avait vraiment progressé a ce niveau.
    MFC etait compliqué car il imposait un modele difficile a tordre (document/vue) mais WPF c'est encore pire (tu jettes tout ce que tu as appris en programmation et tu recommences a zero pour un resultat ... bof)
    franchement avec une bonne architecture y'a pas de souçie.

    Oui le MVVM + C#/XAML c'est pas forcement évident a appréhender, mais une fois qu'on y a gouter et que l'on maitrisse, c'est franchement que du bonheur.
  • dfiad77pro
    Membre expérimenté
    Envoyé par kilroyFR
    Personnellement lors du passage a CLI/C++ j'ai preféré rester sur le principe de soit faire du C++ (MFC) traditionnel ou du C# mais jamais les 2 en meme temps.
    Ca sent vraiment la techno batarde ou on essaie de melanger les 2 mondes - rien que la syntaxe cabalistique est illisible.

    Bon l'avantage du MFC c'est que ça démarre rapidement ( quand t'a pas un SSD ça compte)

    Mais quand tu as gouté au XAML et à blend, tu ne supportes plus de coder une UI en vieux c++/MFC.

    Il existe plein d'appli jolies en MFC voir VB6 mais niveau code c'est souvent des hack avec des images collés de partout, c'est pas toujours propre et maintenable ( cf samsung magicien, etc..)
  • micka132
    Expert confirmé
    Envoyé par kilroyFR
    En developpement client Lourd GUI Microsoft n'a plus rien a proposer; j'espere que les universal apps vont apporter quelque chose... en meme temps entre temps je suis passé a Android/Java donc ca va etre dur de revenir en arriere...
    Qu'est-ce qui selon toi différencie WPF d'Android? En quoi une application Android sera plus maintenable qu'une WPF ? T'as vu beaucoup de "grosses" applications en Android?
    J'ai l'impression que tu as fais une fixete sur MVVM, mais WPF n'est pas obligatoirement utilisé avec du MVVM, tu peux coder tout ceux que tu veux dans le code behind (comme en winform).
    Pour ton animation, tu peux également le faire "à l'ancienne" si ça te chante! Soyon fou, mais tu peux même faire toute ton interface sans xaml, faire un get/set de chaque label directement dans le code!
  • I_Pnose
    Membre chevronné
    Envoyé par kilroyFR
    En developpement client Lourd GUI Microsoft n'a plus rien a proposer; j'espere que les universal apps vont apporter quelque chose...
    Ah ben tu vas être déçu ; WPF, Silverlight, Universal Apps, Windows App (si je dis pas de bêtises c'est ainsi que seront appelées les applications universelles Windows 10)... tout ça c'est sur le même modèle C#/XAML.

    Question de point de vu, pour avoir fait du dév Android pendant deux ans et du dev WPF pendant cinq ans et des brouettes, je préfère infiniment ouvrir mon Visual Studio et bosser sur du C#/XAML ; quand on a franchi tous les obstacles des premiers mois ce n'est que du bonheur (encore une fois c'est mon point de vu).
    Maintenant pour faire des apps Android je passe par Xamarin qui me permet de faire du MVVM, et là encore c'est tout bénéf pour moi (fini Java/Eclipse).
  • imikado
    Rédacteur
    C'est un revirement concernant C++ ? je fais du C++ .net depuis peu, et je peux dire que c'est le fils oublié de .net: aucune documentation dessus, de nombreuses fonctionnalités de l'iDE sont manquantes dès qu'on fait du C++ (WCF..)

    J'ai même du migrer de visual studio 2008 à 2013 car itellisense (colo syntaxique and co) avait été zappé sur VS 2008

    Idem pour les bibiliothèques:
    Pour socket.io par exemple: sous c# c'est bonheur (présent dans nugget), pour C++... c'est la galère
  • Vlozer
    Membre habitué
    Pour ceux qui ne sont pas sous windows (et meme ceux qui le sont), je recommande au passage vivement CLion, c'est vraiment un chouette outils:
    https://www.jetbrains.com/clion/

    EDIT: Ah, et Miklosec est à 1337 messages posté sur le forum.
  • kilroyFR
    Membre éprouvé
    Personnellement lors du passage a CLI/C++ j'ai preféré rester sur le principe de soit faire du C++ (MFC) traditionnel ou du C# mais jamais les 2 en meme temps.
    Ca sent vraiment la techno batarde ou on essaie de melanger les 2 mondes - rien que la syntaxe cabalistique est illisible.
  • alves1993
    Membre éclairé
    Enfin je peux laisser le C# et utiliser le C++ .net
    Microsoft il reste une seule chose qui rendra les développeurs C++ .net heureux, pouvoir développer une application Android et IOS ( pas des jeux c'est déjà possible ) avec C++ .net sur Visual Studio
    (Un rêve utopique )

    Après réflexions c'est mieux de développer les applications Windows phone en C#. pour une question de productivité.
    Les développeurs C++.net s'y retrouverons assez rapidement mais pour des personnes qui viennent de d'autre FrameWork C++ (QT Creator , C++Builder et autres) auront un peut du mal ( Comme moi).
    Mais bref tout dépend du développeur.
  • BePe84
    Nouveau Candidat au Club
    Pour développer des Windows Universal App, il vaut mieux tester son appli sur Winphone.
    Pour tester son appli sur Winphone, il y a deux moyens :
    - utiliser un simulateur : pour ça il faut installer les émulateurs, pour ça il faut avoir Hyper-V actif, pour ça il faut avoir Windows 10 PRO (un développeur indépendant, ça achète son Pc à la superette du coin et chez CastoMerlin, ils ne vendent que des versions Family). Acheter une version Pro juste pour se former et peut-être déboucher dans quelques mois sur un abandon genre Silverlight : Bof...
    - utiliser son Winphone sous Windows 8.1 : pour ça, il faut enregistrer son Winphone pour le développement. J'ai eu beau chercher sur Internet pour faire ça, je ne tombe que sur des pages anciennes aux indications obsolètes (relatives à VS 2013 et Windows 7), bref rien en cours pour VS 2015 et Windows 10.

    Du coup, suite à diverses manips concernant les émulateurs, mon VS 2015 part pour le pays des chasses éternelles dès que je lui propose de lancer la moindre Blank App (Universal Windows).

    M'est avis que je vais rester sur Winforms encore pas mal de temps (parce qu'après tout, connaissez-vous une façon plus productive de créer des applications LOB ?).

    Encore un espoir qui tombe à l'eau.
  • dfiad77pro
    Membre expérimenté
    Envoyé par BePe84
    Pour développer des Windows Universal App, il vaut mieux tester son appli sur Winphone.
    Pour tester son appli sur Winphone, il y a deux moyens :
    - utiliser un simulateur : pour ça il faut installer les émulateurs, pour ça il faut avoir Hyper-V actif, pour ça il faut avoir Windows 10 PRO (un développeur indépendant, ça achète son Pc à la superette du coin et chez CastoMerlin, ils ne vendent que des versions Family). Acheter une version Pro juste pour se former et peut-être déboucher dans quelques mois sur un abandon genre Silverlight : Bof...
    - utiliser son Winphone sous Windows 8.1 : pour ça, il faut enregistrer son Winphone pour le développement. J'ai eu beau chercher sur Internet pour faire ça, je ne tombe que sur des pages anciennes aux indications obsolètes (relatives à VS 2013 et Windows 7), bref rien en cours pour VS 2015 et Windows 10.

    Du coup, suite à diverses manips concernant les émulateurs, mon VS 2015 part pour le pays des chasses éternelles dès que je lui propose de lancer la moindre Blank App (Universal Windows).

    M'est avis que je vais rester sur Winforms encore pas mal de temps (parce qu'après tout, connaissez-vous une façon plus productive de créer des applications LOB ?).

    Encore un espoir qui tombe à l'eau.
    Rooo faut pas se décourager,
    J'avous que sous Winforms , je suis aussi très productif, mais WPF à l'avantage de te forcer à créer un code correct, la ou Winforms est un peu une incitation au four-tout...