Développez votre première application sous Windows : Hello, world !
Version Matrix !
Notre dossier sur la programmation et le développement d'application :
Le 22 décembre 2017 à 16h02
8 min
Logiciel
Logiciel
Nous avons réussi à vous convaincre de tester l'aventure du développement d'applications pour maitriser un peu mieux l'outil informatique et son fonctionnement ? Tant mieux ! Nous allons commencer par faire simple avec un exemple en général connu de tous : « Hello, World ! ».
Une application peut être un élément relativement simple, qui prend quelques lignes de code au sein d'un script. Cela peut également être une page web qui vise un but précis. Pour commencer à vous faire découvrir le développement, nous avons décidé de ne pas aller vers une solution de facilité ou à vous effrayer. Plutôt à faire dans l'entre-deux.
Notre objectif pour la première partie de ce dossier est de vous faire développer une application complète avec une interface graphique. Mais avant d'entrer dans le dur, vous devrez installer quelques outils et maitriser des notions de base. Pour cela, commençons donc par quelque chose d'assez basique : une application console qui se contentera d'afficher le célèbre « Hello, World ! » que vous pouvez réaliser en quelques lignes dans de nombreux langages.
- Demain tous développeurs ? Apprenez déjà à bidouiller vos premières applications
- Développez votre première application sous Windows : Hello, world !
- Altice Stock Checker : développez votre première application avec une interface graphique
Installation de l'environnement de développement
Avant de commencer, il nous faut choisir un langage et un environnement de développement (EDI). L'objectif final étant d'obtenir une application complète avec une fenêtre, nous nous tournons vers C#, via Visual Studio, un outil et un langage reposant sur le framework .NET qui sont plutôt faciles à appréhender pour un débutant.
L'application se limitera alors à un fonctionnement sous Windows pour ce premier exercice. Il faut tout d'abord configurer l'environnement de base. Différentes éditions de Visual Studio existent, dont une version Community gratuite. Elle intègre toutes les fonctionnalités principales, du développement d'applications console à celles avec une interface WinForms en passant par les applications Universelles.
Vous pouvez aussi l'utiliser pour développer des projets multiplateformes, pour des appareils mobiles ou des sites web. De nombreux plugins sont disponibles pour cet EDI qui vous permettra de découvrir le monde de la programmation de manière simple et complète, et surtout sans frais. Un bon point d'entrée, les versions payantes proposant surtout des fonctionnalités propres à un usage professionnel.
Pour l'installer, il suffit de télécharger un petit programme qui se chargera de lancer la procédure. C'est également lui qui gèrera les éventuelles mises à jour.
L'outil d'installation vous demandera quel type d'application vous désirez développer. Visual Studio est un outil complet, mais qui peut être assez lourd si vous n'y prenez pas garde. Sa nouvelle procédure installe néanmoins le strict nécessaire par défaut, réclamant 609 Mo d'espace disque.
Pour du développement .NET Desktop – le cas qui nous intéresse aujourd'hui – le poids grimpera à pas moins de 3,3 Go. Vous pourrez bien entendu modifier ce choix par la suite via Visual Studio Installer.
Une fois la procédure terminée, vous serez invité à vous connecter avec un compte Microsoft, qui débloque l'accès à différents services. Pour notre guide, cette étape n'est pas nécessaire, vous pouvez ainsi la remettre à plus tard.
Au premier lancement, vous devrez choisir entre différents thèmes : Bleu, Clair ou Sombre. Plusieurs paramètres de développement vous seront aussi proposés en fonction du langage visé : développement web, Visual Basic, C# ou C++. Ici nous choisirons C#. L'environnement sera alors prêt à être utilisé.
Microsoft propose de nombreuses vidéos de découverte de son outil, comme un guide de mise en route ou un tutoriel pour créer une première application en C++. Ceux qui veulent aller plus loin trouveront des ressources dans le centre de développement Windows, la documentation dédiée aux développeurs, les exemples de code, les nombreuses vidéos de Channel 9 ou encore les cours de la Microsoft Virtual Academy (en anglais).
Notez que notre but n'est pas ici de tout vous faire connaître de C# ou de la programmation orientée objet. Des livres entiers étant consacrés au sujet, il serait bien présomptueux de penser pouvoir tout simplifier en quelques articles. Certaines notions pourront donc parfois vous échapper, c'est tout à fait normal et ça ne doit pas vous empêcher pas de vous lancer.
Nous aurons l'occasion de développer différents éléments au fur et à mesure de la publication de ce dossier. Nous placerons néanmoins tous les liens nécessaires vous permettant d'approfondir le sujet si vous le désirez.
Hello, World !
Il est maintenant temps de créer l'application console affichant le célèbre « Hello, World ! » pour vous faire la main. Créez d'abord un projet dans Fichier > Nouveau > Projet (CTRL + MAJ + N), puis sélectionnez Application console (.Net Framework), avant de lui donner le nom HelloWorld et de cliquer sur OK.
L'interface de Visual Studio se découpe en plusieurs parties. Outre l'habituel menu et sa barre d'outils, on retrouve l'espace central où seront ouverts les différents éléments comme les fichiers à éditer. À droite, l'Explorateur de solutions permet de naviguer dans le projet et l'application.
Cette dernière se compose de fichiers, de propriétés et de références créés par défaut. On trouve également les sections Propriétés et Sortie (en bas, invisible au départ) qui nous seront utiles plus tard.
Notre application se compose principalement d'un fichier Program.cs
. Dans celui-ci on trouve différentes sections qui vous seront pour le moment étrangères et sur lesquelles vous ne devez pas vous attarder pour le moment.
Sachez seulement que cela commence par les directives using
, qui sont des références à des espaces de nom, qui contiennent des classes et méthodes spécifiques. Elles ne sont pas utilisées dans la version de base du programme, ce qui explique qu'elles soient grisées dans l'interface de Visual Studio (voir ci-dessus).
L'application est représentée par l'espace de nom HelloWorld
qui contient une classe Program
avec une procédure Main
. Celle-ci est de type static, et renvoie une valeur vide (void). C'est d'ailleurs pour cela qu'on parle de procédure et non de méthode (ou fonction).
Les arguments qui peuvent être envoyés par l'utilisateur via la ligne de commande sont transmis sous la forme d'un tableau (symbole []) de variables de type string, c'est-à-dire des variables composées de chaînes de caractères.
Tout ce que vous devez savoir à ce stade, c'est que lorsque le programme est lancé, c'est cette méthode Main
qui est lancée. Pour le moment, elle est vide. Si on exécute l'application, rien ne se passe et elle sera directement fermée. Pour le vérifier, il suffit de lancer la procédure de débogage avec la touche F5 ou Déboguer > Démarrer le débogage. L'application sera alors compilée puis exécutée.
Si l'on veut voir quelque chose se passer à l'écran, il faut éviter que l'application ne se ferme. Pour cela, il existe une méthode permettant de simuler une pause : Console.Read()
Elle attend que vous tapiez un caractère au clavier et renvoie sa valeur sous la forme d'un entier (int), qui peut être attribué à une variable.
Vous verrez qu'au fur et à mesure que vous tapez dans l'éditeur, les différentes méthodes et variables disponibles s'afficheront par autocomplétion. Cela pourra vous permettra de gagner du temps. Notez qu'une ligne de commande se termine toujours par le symbole « ; ».
Si vous lancez à nouveau l'application (F5), elle ne se fermera que lorsque vous presserez une touche.
Maintenant nous allons afficher le texte « Hello, World ! ». Nous pourrions le faire simplement, mais nous allons plutôt passer par une variable string nommée textToShow
. Une fois déclarée et initialisée, nous afficherons le texte avec la méthode Console.Write()
. Cela donne le code suivant :
Finissons par une petite gourmandise : nous la jouer à la Matrix avec une police verte ! Pour cela, il existe la propriété Console.ForegroundColor
à laquelle nous pouvons attribuer la valeur ConsoleColor.Green
.
Avant de finaliser notre application, nous allons en simplifier le code, notamment au niveau des directives using
inutilisées. Visual Studio intègre une fonction Supprimer et trier les directives using accessibles d'un clic droit dans la partie de l'éditeur de code (CTRL+R, CTRL+G). La directive System
sera la seule à être préservée, puisque c'est d'elle que dépend la classe Console
que nous utilisons pour les méthodes Read()
et Write()
.
Voici le résultat final :
Vous n'avez plus qu'à compiler une version définitive de votre application. Pour cela il vous suffit de sélectionner Release à la place de Debug dans la barre d'outils. Pour générer la solution sous la forme d'un fichier exécutable, pressez la touche F6 (Générer > Générer la solution). L'application se trouvera dans le répertoire HelloWorld\bin\Release de votre projet.
Le dossier de votre projet peut être ouvert via un clic droit sur le projet dans l'Explorateur de solution (Ouvrir le dossier dans l'Explorateur de fichiers). Voilà, vous avez développé votre première application !
Notez que C# rend ces premières étapes plus simples à compter de sa version 9.
Développez votre première application sous Windows : Hello, world !
-
Installation de l'environnement de développement
-
Hello, World !
Commentaires (127)
Vous devez être abonné pour pouvoir commenter.
Déjà abonné ? Se connecter
Abonnez-vousLe 22/12/2017 à 17h12
Le 22/12/2017 à 17h13
J’ai mis des liens sympas dans le premier papier " /> Mais c’est compliqué de trouver de bonnes ressources, surtout en français.
Pour l’ampleur difficile à dire. Disons que ça fait longtemps que je tourne autour du pot sur le sujet, j’ai eu l’occasion quand je me suis amusé avec l’app Altice que j’ai développé un peu pour déconner au départ.
J’attends surtout de voir le retour de la communauté pour voir à quel point on peut focaliser là dessus dans les mois qui viennent, mais l’idée serait clairement de faire un suivi au long cours, sur différents langages et même de dériver un peu sur du RPI & co si ça accroche.
Le 22/12/2017 à 17h17
Ce n’est pas une question d’apprécier ou pas côté lecteurs, mais avec tout l’amour que j’ai pour l’OSS ou Linux, si je fais un tuto orienté uniquement vers ces outils, je me coupe de 90% des lecteurs, en m’adressant à des gens qui ont déjà pour la plupart largement plus de connaissances que les bases que je veux diffuser.
Ces tutos ne sont pas pour les sysadmins, plutôt pour ceux qui bidouillent sans jamais avoir osé lancer un VS ou même un autre éditeur. L’idée c’était de leur mettre un peu de concret dans les pattes. M’enfin comme déjà détaillé ici ou dans les papiers, le but c’est d’être agnostique sur les technos et de montrer que chacune à ses avantages/incovénients selon les cas.
Et pour faire de l’app avec interface facilement sous Windows (ou pas d’ailleurs), il n’y a guère le choix, maheureusement.
Le 22/12/2017 à 17h20
Et pourquoi pas OCaml, hein ? HEIN ? " />
Et moi qui me fait une petite appli android pour compter les points au tarot, sans aucune compétence ni formation, c’est assez sportif " />. Et soit je suis nul, soit je suis vraiment nul, parce que j’ai l’impression de faire beaucoup de lignes de codes pour un truc qui devrait être simple, et c’est pas joli à voir. Et non, je ne peux pas compter les points de tête, je suis mathématicien, je ne sais plus faire des soustraction à 3 chiffres " />.
Bref, sur le sujet en question : très bonne initiative, même ce n’est effectivement pas (plus ?) votre cœur de métier, ce genre de contenu, s’il est effectivement lu, est probablement une des meilleures manière d’améliorer la culture numérique " />.
Le 22/12/2017 à 17h25
Parce qu’il y a F# " />
Sur le fond je crois vraiment que de montrer qu’on peut “bidouiller” simplement est une bonne manière de faire comprendre que l’outil numérique est là pour nous rendre service et qu’on peut en prendre le contrôle plutôt que d’en dépendre.
En tous cas ça me semble un usage/besoin bien plus réaliste que de penser qu’on sera tous développeurs demain. Le prochain qui me dit ça, je lui fait bouffer 3h sur le polymorphisme et l’héritage " />
Le 22/12/2017 à 17h29
Je précise que je travaille pour Microsoft, mais que cela n’a rien à voir avec ce qui va suivre, qui représente seulement mon opinion, et explique - en partie - pourquoi d’ailleurs j’en suis venu à travailler ici…
J’ai une formation d’ingénieur. J’ai fait de l’informatique théorique (algorithmique, Intelligence artificielle, …) durant ma formation durant laquelle je codais en Caml. J’ai fait mes premières classes bien avant cela au collège/lycée avec du Pascal et du Basic. J’ai commencé lors de mes études informatiques à coder en C, Java et PHP sur Linux, puis sur Mac. J’ai fait également du Python. Développement web en HTML/PHP/JS. Puis je suis passé à .Net/C#.
Le résumé de mon expérience ci-dessus, plutôt complète et pas sectaire vous en conviendrez vu l’étendu de ce que j’ai pratiqué : je préfère de loin l’environnement .Net.
Ce n’est pas un jugement de valeur, seulement mon expérience. dans le désordre, des arguments : Visual Studio/.Net/C# est un langage à la fois facile d’accès mais extrêmement puissant. Il est fortement typé (à l’inverse de JS ou Python), ce qui me semble indispensable pour l’apprentissage d’un langage orienté objet et est donc un bon choix ici. L’IDE est accessible au premier abord et permet de masquer des complexités au premier abord tout en permettant d’aller plus loin progressivement. Visual Studio est sans égal sur le marché à ma connaissance en terme de facilté de débuggage, contrôle du code source, automatisation des tests, assistance au développeur… Et encore une fois j’ai fait un paquet d’IDE (Eclipse, VIM, Visual Studio, KDevelop, EMacs).
Et un dernier point mais non des moindre : si vous voulez travailler votre employabilité, avoir écrit C# sur son CV est aujourd’hui une excellente garantie (ici, les technos web modern type AngularJS and co sont aussi un bon candidat)… Et si vous vous intéressez au salaire, je peux vous garantir que pour un développeur encore une fois ce type de compétence est bien plus rémunérateur
Enfin, au passage, je vous conseille amicalement de jeter un œil neuf à ce qu’est Microsoft aujourd’hui… Il serait dommage de rester bloquer dans les années 90, car cela a bien évolué ! Avez-vous remarqué la sortie de l’iPhone en 2007, ou utilisez-vous toujours un Bebop ?
Le 22/12/2017 à 17h30
Bravo au passage NextInpact pour ce dossier, c’est un vrai sujet d’actualité !
Le 22/12/2017 à 17h46
Le 22/12/2017 à 17h50
Sauf que les œillères que tu portes du fait de ton allergie depuis les années 90 t’ont fait passer à côté de ce qu’est C#.
Le 22/12/2017 à 17h59
Le 22/12/2017 à 18h07
J’allais suggérer une appli web pour être plus au goût du jour, mais c’est vrai qu’en web “hello world” ne nécessite qu’un fichier HTML statique à ouvrir dans un navigateur. " />
Le 22/12/2017 à 18h08
Non mais sinon y’a aussi le tuto “Tapez echo Hello, World ! dans la console de Windows”
Hein " />
Le 22/12/2017 à 18h12
Moi j’aime bien C# / .NET, j’en fais de temps en temps à côté du C++ que je pratique depuis plus de 10 ans, et non, je déconseille QT aux débutants : par défaut, ça ne fait jamais ce que tu veux " />
Le 22/12/2017 à 18h21
D’ailleurs pour un prochain article, un exo concret du genre Altice Stock Checker mais avec du html/css/javascript m’intéresserait bien.
Savoir comment on peut se créer des petit soft sympa, les étapes de construction d’une interface web, la séparation fond/forme, avec quels outils on test, etc…
Le 22/12/2017 à 18h27
Tu peux détailler un peu qu’on voit la source de ton malaise?
Le 22/12/2017 à 18h27
J’ai toujours du mal avec l’apprentissage de la programmation en mode “école 42” = directement les mains dans le cambouis. J’ai l’impression qu’on apprend surtout le copier/coller de code pompé ici ou là (oui, je pense à toi: stackoverflow).
Je ne pense pas qu’on puisse “comprendre” la programmation impérative sans les fondamentaux que sont les structures de données, les instructions, les structures de contrôles… Alors taper directement dans de l’orienté-objet, ca me parait ambitieux.
Le 23/12/2017 à 09h16
Pour troller un peu ils auraient dû faire un programme en python avec visual studio ;)
Le 23/12/2017 à 09h18
Ahah excellente idée celle-là. Il y aurait eu toutes les critiques combinées de pro et anti. Le pied. Bien vu! " />
" />
Le 23/12/2017 à 09h21
Le 23/12/2017 à 09h34
Le 23/12/2017 à 09h46
Oui mais on tombe rarement dans des outils simples à prendre en main, honnêtement l’idée était de trouver un bon compromis entre la simplicité de l’approche côté code/interface et l’accès large.
Si demain j’ai une petite app à développer rapidement pour répondre à un besoin, je vais plutôt aller la faire en C#/WinForms, pour d’autres besoin j’irai plutôt sur du web côté client, du PHP, parfois plus vers du Python/Ruby. Si je veux aller côté Android, on optera pour Java.
Pour l’exemple donné aujourd’hui, C# était à mon sens l’approche la plus facile d’accès à tous les niveaux. Pour de prochains exemples, ce ne sera pas le cas.
Le 23/12/2017 à 10h55
Le 23/12/2017 à 11h01
Nan c’est pas obligatoire en C#, tu peux renvoyer int si tu veux mais par défaut c’est void.
Le 23/12/2017 à 11h03
Le 23/12/2017 à 11h18
Je viens de me rappeler qu’effectivement c’est la même chose en Java. Mais après, j’essaie généralement de renvoyer quand même un code d’erreur.
Le 23/12/2017 à 11h37
Tout à fait d’accord avec ton analyse.
C’est fou le nombre de libristes obtus avec des œillères plus grosses qu’eux dans les forums de NextImpact, dès qu’on propose quelque chose de bien relatif à Microsoft ou Windows . " />
Microsoft s’est bien ouvert à Linux depuis quelques années et ce mouvement va s’amplifier dans les prochaines années, pour avoir peut-être un jour le meilleur des 2 mondes réunis. Mais cette idée révulse les libristes : Quoi ?? Windows serait meilleur et plus ouvert que LINUX. Impensable pour ces ayatollah " />
Merci David pour cet article qui peut intéresser des lecteurs curieux
Le 23/12/2017 à 11h40
On peut toujours tout faire, mais comme dit, là je cherchais une solution de compromis. Autre avantage, pour la phase “distribution” l’exécutable est prêt à l’emploi (oui je sais, cx_Freeze existe " />).
Pour la partie multi-plateforme j’ai déjà répondu, le gros manque de .Net Core/Standard reste là à mon sens. Mais ils ont déjà fait un gros boulot il faut l’avouer. Sur le fond, à l’inverse, il y a toujours un gros manque côté IDE libres pour simplifier le développement de bout en bout de ce genre d’apps de manière simple.
Le 23/12/2017 à 11h41
Meilleur au sens général n’existe pas. Comme dit dans l’intro, il y a une diversité de besoins, de problématiques et de solutions. Elles peuvent juste être meilleures au cas par cas, lorsqu’elles sont adaptées à la situation et au contexte (utilisateur, environnement, etc.).
Le 23/12/2017 à 11h42
J’approuve totalement ton discours. Après, je ne dirais pas qu’il faut être ouvert pour être pro, car il y a tellement de sectarisme dans le domaine de la communauté de développement, que ca fait littéralement peur.
J’ai regardé une vidéo sur les webworkers JS récemment, faites par un “pro” français, de type conférence. Toutes les 2 phrases d’explications, il envoyait une pique à Microsoft et au DotNet, gratos, ca en est devenu ridicule au bout de 10mn. Fatiguant ce genre de personnages, du même acabit que le débat sur le libre ou le propriétaire. " />
Le 23/12/2017 à 11h48
cf mon commentaire #46
On est face à un tuto de C# et pas un tuto de programmation. Avec ce genre de tuto tu seras capables de monter progressivement en compétence C#, mais tu devras repartir de zéro pour apprendre javascript ou C++ alors que ces 3 langages partagent les mêmes fondamentaux du paradigme orienté-objet.
Le 23/12/2017 à 11h49
C’est largement réducteur ce que tu dis. En terme de code serveur par exemple, la technologie J2EE a eu beaucoup d’avances depuis 15 ans, en particulier sur la partie serveur Microsoft à la IIS (techno réellement pourrie quand tu connais un peu les serveurs applicatifs Java et les frameworks derrière, sans parler de l’offre pléthorique que J2EE recouvre à ce sujet, contrairement à Microsoft).
Je pourrais en citer encore pleins d’autres pour enfoncer Microsoft comparé à Java/J2EE.
Encore une fois, c’est avantages et inconvénients, chacun ses points forts et faibles.
Vouloir jeter une technologie sous prétextes de ses points faibles sans avoir une vision d’ensemble, c’est faire preuve de peu d’ouverture d’esprit : c’est très dommage dans l’IT.
Le 23/12/2017 à 11h50
Autant j’approuve totalement le choix de C#, qui est mon langage de prédilection, autant je trouve dommage de faire un tuto qui ne s’adresse qu’aux utilisateurs Windows, surtout sur un site comme NXI dont beaucoup de lecteurs sont sous Linux ou Mac.
On n’a pas besoin de Visual Studio ou de Windows pour faire une appli console ou web en C#. Il suffit du SDK .NET Core et de Visual Studio Code; c’est beaucoup plus léger, et c’est multiplateforme.
Le 22/12/2017 à 21h32
Attention nextinpact est codé avec asp.net mvc c# tu devrais quitter ce méchant site qui n’est pas codé avec php (mon dieu l’horreur du code de zend, la conception wtf à souhait) . Un peu comme Mysql tu check le source code, bah tu ne l’utilises pas et tu vas sur du soft sérieux en open source postregre suivant le besoin en proprio sql server ou oracle si t’aimes bien payer avec l’argent des autres.
Le 22/12/2017 à 22h08
Le 22/12/2017 à 22h15
Le 22/12/2017 à 22h52
Le 22/12/2017 à 22h58
Le 22/12/2017 à 23h04
Sans oublier Xaml standard, Xamarin qui est passé en open source etc.
J’oubliais les avancés dans C# 7.2 et 8 notamment les Span<T> <3 <3 <3 <3.
Je ne parle même pas de la qualité de la technologie .net qui dépasse largement java, rien que l’implémentation des génériques est sans commune mesure java utilise un ensemble de gros hacks dégueulasses qui sont une insulte à intelligence. Bah ouais leur JVM est objectivement bonne pour la poubelle et comme ils n’ont jamais eu les cou* de la réécrire bah ils accumulent les techniques what’s the fuck pour faire tenir le bousin.
Le problème des noms de class qui ne veulent rien dire genre Calendar super ce n’est pas un calendrier, le système de date bugger à mort résolu en intégrant les sources d’une lib tierce dans java 8, le problème des String qui a traîné pendant 10 ans etc. Java est une catastrophe, ne rien connaitre aux détails de fonctionnement et d’implémentation et s’en tenir à coder bêtement fait croire qu’il s’agit d’une super techno mais il n’en est rien sur de nombreux points.
Php est exactement dans le même cas, pas moyen de refaire correctement le moteur sinon plus rien ne fonctionne ils en sont à faire de l’iso bugs avec les anciennes versions, à se traîner encore les mbstring parce que bon php est dans les années 70 et donc faire autre chose que de l’ansi il est à la rue. Heureusement que Perl existe pour que les dev de php puissent pomper du code et présenter des choses qui existent depuis 20 ans comme de super nouveautés … qui a dit DBI entre autre ?
En tant qu’ingénieur dans les technos que je recommande Haskel, Perl, C/C++, dotnet, Pyton.
Pour les cas spéciaux Erlang, F#, R, Oforth (pour faire du vrai embarquer et pas du faux sur des devices octo core avec 8go de ram pour éclater des bulles de savon sur un écran 4K).
En termes de sgbdr : Sql server, Postgre, Mnesia suivant ce que l’on souhaite faire.
MariaDB est pas mauvais ceci dit.
Le 23/12/2017 à 01h06
“POO par prototype” c’est joli comme nom de concept. En C#, ça s’appelle des méthodes d’extension :)
Le 23/12/2017 à 05h40
Serieux ??
C’est un article sponsoring microsoft ???? " />
Premier article qui me fais regretter mon abonnement !
Un tuto de prog uniquement sur windows avec l’ide windows en .net et en C# wow " />
Comment se mettre des chaînes et un boulet dés le départ lol.
Bref vous avez réussi a me faire commenter….
-1 pour nxi " />
j’espère que les prochain tuto seront plus ouvert
Le 23/12/2017 à 06h16
J’espère surtout que tu prendras le temps de lire avant de commenter la prochaine fois " />
Le 23/12/2017 à 07h20
Wow " /> ben voyons j’ai tellement besoin de condescendance de nxi la on dirait jean kevin qui balance des pic parsqu’il n’aime pas la critique (moi aussi j’en balance tient c’est facile " /> ).
La le respect du lecteur se pert tu remarquera que je ne commente quasiment jamais il faut vraiment “me titiller” pour que je l’ouvre la ton article + “ton com” y arrive très bien félicitation…
Mon 1er message était certes trés loin d’être argumenté c’était plus
du ressentis brut mais il faut quand même faire preuve d’humilité et
accepter que tous le monde n’ait pas ton point de vue non ?
Mais j’avoue effectivement j’ai pas pus lire ton article en entier pour une fois (je me suis arrête a compte microsoft ) je ne critique pas le travail mais l’éthique et j’ai lu les com.
Le fait que l’ide ou que (tous ? une partie ?) du language soit multiplate-forme et que c’est le meilleur moyen de toucher un max de monde c’est léger.
Aprés Je suis pas dev mais je répondrait python… ( mais a priori pour
toi c’est un langage de script…) java (tous pourri d’aprés certain
dev) ou ce que tu veux non sponso par microsoft.
C’est a te fermer une partie de tes lecteurs direct surtout celle qui défend le droit d’aller et venir librement sans tracker et qui donc se mefie de microsoft d’un oeil avertis
Sincèrement mon ressentis avant d’arrêter c’était de lire un article sponso sur C# qui reste un langage privilégie par microsoft aux dernières nouvelles je m’attendait tellement pas a ça pour commencer encore moins sur nxi
Surtout avec ce genre de “truc” " />
Une fois la procédure terminée, vous serez invité à vous connecter avec
un compte Microsoft, qui débloque l’accès à différents services." /> Certes c’est non obligatoire mais c’est une belle carotte.
Bref je suis de toute façon pas la cible et je suppose que tu as choisi de contenter le plus grand nombre ok. Dont acte je verrait si la suite est plus “ouverte” " />. Si je re commente c’est que ce ne plaira toujours pas " />
Je te redonne mon point de vue il y avait tellement mieux à faire pour commencer relis les com je suis pas le seul à le penser en plus.
Donc de manière plus posé :
Le 23/12/2017 à 08h30
J’ai toujours été franc avec les lecteurs, abonnés ou non. Je prend le temps d’expliquer la démarche et les choix dans les articles, tu préfères faire un raccourci, je ne vais pas répéter ce qui est déjà évoqué 2⁄3 fois dans le dossier.
Comme dit précédemment, je comprends que certains ne puissent pas encadrer MS, mais nous ne guidons pas nos choix rédactionnels sur de tels critères. Et dans tous les cas, on détaille notre démarche et l’ambition sur le long terme.
Le respect, ça commence parfois aussi simplement par s’intéresser à ce que font réellement ceux que l’on critique, plutôt que de juste penser qu’on peut baser un avis sur trois mots-clés " />
Le 23/12/2017 à 08h35
Le 23/12/2017 à 08h41
Manque de bol, juste non. Tout le JS est basé sur la POO par prototype, et c’est bien un système complètement différent, où tout le langage est construit sur le prototypage. Renseigne-toi un peu.
Déjà de base il n’y a même pas de notion de classe en Prototype :https://developer.mozilla.org/fr/docs/Web/JavaScript/H%C3%A9ritage_et_cha%C3%AEn…
Les objets JavaScript sont des conteneurs de propriétés (appelées propriétés propres de l’objet) et chaque objet possède un lien vers un ou plusieurs objet(s) prototype(s).
La grande particularité est que tu peux changer l’arbre de prototypage existant à tout instant, à tous les niveaux, de manière très simple et dynamique.
Après, les langages de POO par héritage ont quelques fonctionnalités qui tentent vainement de s’approcher de la flexibilité de la POO par prototypage, comme tu en as parlé, mais on est très loin des capacités d’un langage qui est construit sur le prototypage.
De même, le JS peu mimer de la POO par héritage avec les bonnes fonctions, mais ca restera loin de ce que peut faire un C# basé sur la POO par héritage.
Le 23/12/2017 à 08h42
Bon je ne vais pas entrer dans le débat C# c’est bien/mal même si en tant que développeur C# senior j’ai mon avis sur la question :p (comment entrer dans le débat en faisant mine que non et que ça se voit à 10km)
Sinon pour faire mon relou la méthode Main de votre programme n’est pas une fonction mais une procédure car elle ne renvoie rien.
Le 23/12/2017 à 08h46
C’est bien d’avoir des préférences et des avis, mais l’extrême sectaire dans lequel tu sembles te complaire envers certains langages ou sociétés est juste ahurissant.
Tu réalises que la majorité de tes arguments, si Next Impact avait choisit Python, d’autres comme toi (mais du côté obscure, brrr), te les aurais envoyés en pleine poire?
Plutôt que de râler, propose la même chose en Python, perso je suis très preneur et curieux. Tu sais, la curiosité, cette qualité théoriquement nécessaire de tout bon développeur, qui cherche à comprendre vraiment avant de publier son avis, comme si sa vie en dépendait…
Le 23/12/2017 à 08h59
Bonjour tout le monde qui se tape dessus " />
Je trouve que C# en soi c’est pas forcément une mauvaise idée, mais par contre pour un premier contact avec le dev, faire installer un IDE et tout… C’est vraiment personnel comme approche, mais je trouve plus sympa de faire faire le maximum de choses avec un notepad ou ce genre d’editeur simple, et si possible en installant le moins d’environnements. (le mieux ce serait python sous linux vu qu’il y est de base, mais bon, ce serait effectivement se restreindre à un public particulier)
Compiler et executer en ligne de commande, c’est de mon point de vue plus simple que d’avoir des trucs automatisés auxquels on comprend rien, et qui sont plus difficile à debugger en cas de souci. En tout cas je regrette d’avoir commencé comme ça, ça fait souvent partir dans les mauvaises directions.
Enfin c’est juste pour donner mon avis, parce que comme le dit très justement l’auteur de l’article, aucun choix ne ferait l’unanimité. " />
Par contre lire que Python c’est pour le script, heu… il me semble que le langage a bien dépassé ça, et que les postes avec du dev Python web ou software fleurissent joyeusement. (et quand on ajoute django…)
Le 24/12/2017 à 15h08
Le 24/12/2017 à 15h19
Le 24/12/2017 à 18h09
Pour les détails ;)
Next INpact
Le 25/12/2017 à 07h37
Personne n’est choqué de constater que pour afficher un simple “hello world” il faut plus de 15 lignes ? …
Le 25/12/2017 à 16h17
Merci.
" />
Cela dit ma question était plus complexe puisque de nombreux lecteurs ont les 2 systèmes (plus de 10 % probablement), ce que votre sondage/statistique ne peut pas forcément détecter et quantifier.
Le 26/12/2017 à 11h45
j’ai pas bouquiné les 12 pages, mais personne n’a proposé autoit ? “ msgbox(0,“Bienvenue”,“Hello World”)
Le 26/12/2017 à 16h42
Ca me choque moins que de savoir qu’il faut un runtime nécessitant 4,5 Go d’espace disque disponible.
Le 27/12/2017 à 05h09
Ben mon gars t’es courageux d’avoir fait cet article!!
En tant que Français de l’étranger, je retrouve tout ce que je n’aime pas chez nous: t’en a un qui bosse et 40 qui commentent en ne faisant pas avancer les choses. Et toi tu passes des heures à te justifier dans tous les sens envers des personnes qui ne seront jamais constructives.
Merci pour cet article, et pour les autres n’hésitez pas à en proposer un mieux que l’on puisse comparer.
Le 27/12/2017 à 09h47
Le 27/12/2017 à 14h32
Les réponses au dessus sont d’autant plus vraies que l’environnement Visual Studio Community est aujourd’hui ce qui se fait de mieux en gratuit.
La haine envers Microsoft est tellement forte chez les pingouins qu’ils oublient qu’ils ont rejoint la Linux Foundation depuis plus d’un an et que la plupart de leurs outils sont non seulement compatibles linux mais aussi mac OS. C’est notamment le cas de .net Core qui est open source.
Le 28/12/2017 à 11h27
Le 28/12/2017 à 11h32
Le 28/12/2017 à 11h39
Async/await est utilisé partout maintenant, c’est devenu complètement indispensable. C’est un changement de paradigme majeur dans l’asynchronisme. LINQ est abondamment utilisé, l’inférence de types aussi.
Les value tuples avec déconstruction, c’est encore tôt pour le dire, c’est sorti cette année.
En C# 8 il y aura les type référence non-nullables, que personnellement j’anticipe d’utiliser exclusivement. Les enregistrements vont aussi certainement avoir pas mal de succès pour tout ce qui est DTO.
On parlait de langage, mais si tu veux amener cela sur le terrain de l’écosystème, je ne crois pas que C# ait beaucoup à rougir face à Java. En terme de bibliothèques, tests automatisés et déploiement, ça ne manque vraiment de rien.
Le 22/12/2017 à 18h27
Apres les banques et les comptes dans le ciel, il y a maintenant un sujet sur la programmation.
C’EST GÉNIAL.
Je vais peut être enfin refaire mon dock perso - fait en VB y’a + de 15 ans -. Je l’avais adapté en ARexx (pour moi le meilleur langage de scripts ) sur Amiga et en Rexx sur ma Mandrake / Mandriva. Sur Windows Rexx est pas terrible (sauf si cela a changer ).
Sur RPI python est sympas, même si l’indentation obligatoire me gonfle. Je vais certainement essayé c# pour voir si c’est amusant comme langage.
BON RÉVEILLON ET JOYEUX NOEL A TOUS.
Le 22/12/2017 à 18h30
Y’a que moi qui trouve ça étonnant (et non pertinent) de faire un tuto de programmation ici ?
La valeur ajoutée est inexistante : y’a déjà des milliers de vidéos, blogs, sites web, livres… sur le sujet.
Et les ressources existantes sont très certainement bien mieux faites. En tout cas qui nécessitent pas d’installer 3.3 Go pour faire une appli desktop mono-plateforme façon 1998.
Le 22/12/2017 à 18h32
Ne troll pas …
Le C# a des optims que le
java n’a pas. Oracle est lent, lent, lent pour mettre à jour java …
Java n’est pas plus libre que le C#, faut arrêter avec ça :)
Cependant, c’est certain, java est clairement au dessus du C# pour ce qui est du web (Spring offre tellement plus que .net pour de l’api, mais c’est mon avis ^^).
En revanche pour de l’appli, le .net offre plus de simplicité que Javafx ou autre joyeusetée du monde python " />
L’important c’est pas le langage, c’est la culture du developpement !
Le 22/12/2017 à 18h33
Tout dépend de ce que tu veux faire, et notamment de si tu veux devenir développeur de métier ou simplement te faire quelques outils maison.
Le souci qu’il peut y avoir avec l’approche “voici 200 pages de docs avant de taper la moindre ligne de code” c’est que tu perds pas mal de monde au passage, et ça ne facilite pas pour montrer que ça peut être accessible.
Une fois de plus, ici je ne dit pas qu’on va faire des lecteurs des développeurs, mais je pense qu’on peut se servir de leurs outils pour faire des choses au quotidien, quitte à ensuite se plonger plus profondément dans la “littérature” sur le sujet.
C’est comme la musique avec le solfège, sur le fond, l’un ne va pas sans l’autre, mais si tu empêche un jeune de grattouiller une guitare sous prétexte qu’il devrait se taper 150 heures de solfège avant, ça va sans doute le refroidir un peu " />
Le 22/12/2017 à 18h35
Impératif avant objet c’est le dégat assuré pour passer à l’objet ^^.
Le meilleur des exo au début c’est le célèbre héritage de la classe Animal ^^ tout le mondz peut comprendre avec ça :p
Le 22/12/2017 à 18h36
Et c’est partie sur le “langage X c’est de la daube, mon langage Y” est bien meilleur.
Perso, un développeur qui tend à parler comme ca, je le classe au mieux dans la catégorie “stagiaire” s’il s’avère que je doive le recruter.
Cela montre juste une incompréhension et un manque de curiosité criant.
Tous les langages ont leurs avantages et leurs inconvénients, et on peut tous leur trouver des défauts :
etc, etc…
Et pourtant, chacun de ces langages a de forts avantages dans pas mal de domaines, qu’on les aimes ou qu’on ne les aime pas.
Test tout simple : combien ici détestent le JavaScript, et en même temps, n’ont aucune idée de c’est que la POO par prototype? Réponse rapide : beaucoup trop.
Intéressez-vous un peu aux autres, et vous verrez que l’intérêt de la connaissance et bien supérieur à celui de la critique de ce qu’on connait pas ou peu.
Pour finir, bravo pour ce tuto, très bonne initiative, quelque soit le langage d’ailleurs.
Le 22/12/2017 à 18h40
On ne peut dire mieux.
A chaque besoin, ouvrir ses oeillères.
Je suis curieux de savoir combien de commentateurs sont des développeurs « pro » sur de vraies problématiques métier dans un vaste environnement technique (parfois, souvent, multiplateforme)
Le 22/12/2017 à 18h50
Le 22/12/2017 à 18h52
Très bon article. Qui arrive à résumer simplement le classique “Hello World” sans noyer le néophyte d’explication plus ou moins longue sur chaque aspect du langage. Au niveau des critiques, je pourrais simplement dire que la partie sur le nettoyage des instructions using est en trop. On ne comprend pas pourquoi on peut le faire. Mais c’est du chipotage ;)
Juste quelques précisions par rapport à ce que j’ai pu lire dans les commentaires.
La dernière version de Visual Studio n’est pas basée sur .Net Core. Elle intègre le développement d’application .Net Core mais ne repose elle-même pas sur .Net Core. Il n’est, à l’heure actuelle, pas possible de faire des applications graphiques en .Net Standard dans la mesure où cet aspect n’est pas standardisé (il y a bien XAML Standard qui est une première pierre à cette édifice, mais on n’y est pas encore).
Pour le choix du langage, je trouve que c’est un bon choix. Je ne dit pas ça parce que je l’utilise tous les jours dans mon métier, mais parce que je suis passé par de nombreux langages et que c’est un langage simple et clair à appréhender.
Un aspect que j’aime beaucoup et qui n’a pas encore été abordé ici, c’est la pérennité de ce langage et de l’environnement. Avoir un programme écrit il y a 10 ans qui tourne comme si il avait été écrit hier est quand même un énorme plus. Microsoft a réussi à faire évoluer l’environnement .Net et les langages C# et VB.Net tout en gardant la compatibilité. On ne peut malheureusement pas dire la même chose pour Python entre les version 2 et 3.
Maintenant, C# est un langage qui s’exporte bien au dela de l’environnement Windows, et on ne peut que saluer l’initiative .Net Standard qui permet enfin d’avoir du code C# portable entre les environnements.
Le choix de Visual Studio, critiqué par certains, me parait infondé. Windows reste le système d’exploitation majoritairement présent, très loin devant MacOS (lui-même 2x plus utilisé que toutes les distributions Linux confondues !). Visual Studio est un très bon éditeur, et il serait dommage de passer à côté, surtout que la version Community est gratuite.
On aurait éventuellement pu parler de Visual Studio Code, qui à l’avantage d’être disponible sur tous les environnements (Windows, Mac, Linux). Mais la création d’un projet n’est pas aussi guidé que sous Visual Studio et pour un “Hello World” à destination des néophytes, cela ne me semble pas judicieux.
En tout cas, si vous avez besoin d’aide pour la relecture de ce genre d’articles sur le C#, n’hésitez pas ;) Je suis rédacteur sur le site Développez.com pour la rubrique .Net. Pour ceux qui ne connaîtraient pas, Développez.com est un site qui contient de nombreuses ressources sur la programmation, tous langages confondues :)
Le 22/12/2017 à 18h59
Le 22/12/2017 à 19h06
Le 22/12/2017 à 19h10
Entendons nous bien: je parle de l’apprentissage de la programmation.
Pour moi, ce genre de tutorial est davantage un apprentissage de C# qu’un apprentissage de la programmation.
Ceux qui savent déjà programmer ne vont pas apprendre grand chose (C# ressemblant beaucoup à des langages connus comme C++/Java…).
Ceux qui n’ont jamais programmé vont juste apprendre à faire du copier/coller dans un nouvel éditeur de texte compliqué.
Tout cela n’est bien sur que mon pauvre avis vieux développeur, donneur de cours au CNAM à des débutants et ancien rédacteur/modérateur d’un forum sur l’aide à la programmation.
Je sais bien quand je fais ce genre de commentaire qu’on va me répondre que “la théorie” ca prend beaauucoouuup troooooop de temps a apprendre (200 page de doc, 150 heures de solfège, …).
Sauf que:
Le 22/12/2017 à 19h13
Discord en est la parfait exemple d’ailleurs, succès phénoménale : 50 millions d’utilisateurs en 2 ans, et ca marche sur tous les OS, sur le Web, et sur téléphone/tablette de la même façon. " />
Le 22/12/2017 à 19h16
Impératif avant objet c’est le dégat assuré pour passer à l’objet
Sauf si on apprend dés le début que ce sont deux paradigmes différents et pas une évolution/sur-couche comme tu sembles le suggérer en parlant de “passer de… vers…”.
Erreur qu’on retrouve d’ailleurs chez tous ceux qui ont appris le C avant de “passer” au C++ et qui se cachent derrière le terme “multiparadigme” pour expliquer le mélange des genres dans leur code. " />
Le 22/12/2017 à 19h16
A part que le choix d’un environnement de dev. n’a rien à voir avec le choix d’un moteur de recherche.
Le 22/12/2017 à 19h17
Le 22/12/2017 à 19h21
Le 22/12/2017 à 19h26
Vraiment " />
Le 22/12/2017 à 19h29
Accordons-nous sur un désaccord.
Le 22/12/2017 à 19h34
Comparer le choix d’un moteur de recherche, où la plupart du temps tu fais des recherches pour toi, avec le choix d’un environnement de développement, où tu cherches la plupart du temps à avoir une cible d’utilisateurs donnés, n’a juste rien à voir.
Désolé, mais tu t’enfonces. " />
Le 22/12/2017 à 19h43
Le 22/12/2017 à 19h46
Quelqu’aurait été le choix, il y aurait eu des mécontents. Tu prenais JavaScript, tu aurais eu un paquet de développeurs (parait-il) qui auraient criés au scandale, juste parce que JS…
Le prochain tuto sera peut-être un langage de script. :)
Le 22/12/2017 à 19h49
Comment organiser votre code JavaScript, notre tuto en 10 parties
Pas con " />
Le 22/12/2017 à 19h56
Need une série sur les meilleurs one-liner avec awk.
Avec en sous titre : “pour les hommes, les vrais, avec des poils”.
" />
Le 22/12/2017 à 20h03
Tu es libre de démarrer un topic sur le forum " />
Next INpact
Le 22/12/2017 à 20h28
J’ai l’impression que c’est toi qui n’a pas compris. Il ne s’agit pas du “choix d’un environnement de développement, où tu cherches la plupart du temps à avoir une cible d’utilisateurs donnés”, mais il s’agit du choix d’un environnement de dév pour initier des lecteurs au développement. Il ne s’agit pas d’une utilisation pro.
Par contre, d’un point de vue économique, chacun dans son domaine, Google et Microsoft frisent l’hégémonie. Conseiller l’un ou l’autre n’est pas anodin.
Le 22/12/2017 à 20h31
Le 22/12/2017 à 20h34
J’ai aussi le titre d’un autre tutos :
Décodons ensemble les 10 meilleurs regex, la 8ième est incroyable.
Le 22/12/2017 à 20h41
Il ne conseil pas, l’(objectif est comme tu le dis d’initier, et pour ca, il faut choisir un environnement de développement. Comme déjà expliqué 10 fois, si un autre langage avait été choisit, on en aurait eu d’autres pour se plaindre : “Pourquoi avoir pris un langage aussi peu utilisé?”
Et quelques soient les éditeurs derrière, tu leur trouveras toujours des inconvénients aussi, libre ou privé.
C’est sans fin. Alors en plus venir comparer des choux et des bitcoins, ca n’aide pas vraiment.
Le 22/12/2017 à 20h51
Le 22/12/2017 à 21h02
“On vous explique la Regex magique pour les emails… ah ben non en fait” " />
Le 22/12/2017 à 21h23
Discours débile à souhait
Le 22/12/2017 à 16h17
La première application sous Windows, c’est pas “Hello world !”, c’est “Goodbye Freedom !”
Apprendre à marcher avec des chaînes aux pieds, non merci.
Le 22/12/2017 à 16h17
Intéressant.
Je pense que l’on préfèrera utiliser WriteLine plutôt que Write, sinon vous devez écrire des Environnement.NewLine pour le retour à la ligne, assez lourd. Mais c’est un “Hello World”, peu importe " />
Ce genre d’article va-t-il aller plus loin que l’initiation ?
Le 22/12/2017 à 16h24
Vous auriez pu mettre “Wake up, Neo…”
Le 22/12/2017 à 16h26
Oui pour le coup, l’osef est total " />
Le 22/12/2017 à 16h27
Le 22/12/2017 à 16h36
La dernière version de VS est basé sur .Net Core qui est s’appuie sur les packages nuget et qui est multi environnement Windows/Linux.
L’environnement de développement est disponible sur Linux via Visual Studio Editor.
MS est de moins en moins Windows centrique quand aux environnements de développement ou d’exécution même s’il existe encore quelques restrictions liées aux librairies de fenêtrage.
Le 22/12/2017 à 16h39
Si tu veux tu peux aussi lire en détail l’intro du dossier et les explications sur pourquoi on commence par ça et le fait qu’on ne se limitera pas à ça.
Mais comme dit par Argonaute, C#/VS ne se limitent pas à Windows notamment depuis l’arrivée de .Net Core/Standard, m’enfin si on veut faire un guide qui touche potentiellement pas mal de monde et qui soit simple pour une première approche, on peut éviter de commencer par Netbeans/Qt.
Le 22/12/2017 à 16h41
J’ai une question : pourquoi C# ?
Je comprend que vu la cible visée par le tutos, considérer qu’il sera sous Windows est logique, mais le choix du langage m’est moins claire, c’est un peu donner le bâton pour se faire battre par la communauté de NxI qui aime tant écrire Micro$oft avec plein de dollar.
Python est par exemple bien plus commun comme premier langage (d’après ce que j’ai compris, c’est dans le cursus du lycée).
Le 22/12/2017 à 16h45
Le 22/12/2017 à 16h51
Le 22/12/2017 à 16h56
Je trouve le choix du C# plutôt bon mais j’approuve l’idée de certains pour du python pour une seule et unique raison : il oblige à indenter proprement le code.
Si chaque développeur/pseudo-développeur/apprenti-développeur avait cette culture, ça m’aurait bien évité des maux de têtes dans certains projets … " />
Le 22/12/2017 à 16h58
Le 22/12/2017 à 17h01
Le 22/12/2017 à 17h01
On n’écrit pas en fonction des allergies de tel ou tel, sinon on n’écrit jamais rien ;)
Le 22/12/2017 à 17h04
Le 22/12/2017 à 17h10
Pour le coup moi qui traîne bcp dans les collèges/lycées autour des questions liées au numérique, je vois passer tripotée de cours / tuto en mode scratch ou autre.
Parmi cette masse je trouve que les vôtres n’ont pas à rougir, et alors là vous arrivez sur un truc où je ne vous attendais pas. Vous comptez donner quelle ampleur à tout ça? Encore quelques dossiers juste pour Noël ou bien quelque chose plus sur la longueur?
Sinon ce serait chouette de compléter vos dossiers par quelques liens sympas : des sites pour s’entraîner à avoir une bonne syntaxe dans l’écriture de son code, tutos / mooc sympas : c’est énormément de boulot mais ça permettrait d’ouvrir un peu pour plein de gens.
En tout cas je diffuserai votre dossier autour de moi!
Le 22/12/2017 à 17h11
Expliqué aussi, mais faire un tuto “voici un script de dix lignes pour télécharger un JSON et jouer avec” je doute que c’était le meilleur moyen d’intéresser. Franchement une app WinForms ça montre quelque chose de concret, qui bouge, toussa.
Après je savais que ça allait défriser certains de voir du .Net, m’enfin C# reste un très bon moyen d’entrer dans la programmation de petites app, et ça reste celui que j’utilise le plus pour tous les outils qu’on développe en interne et qu’on distribue, que ce soit pour du bench ou même GPG Pad par exemple.
Le 22/12/2017 à 17h12
Le 23/12/2017 à 11h54
En tant que dev Java (10 ans) et C# (5 ans) pour le taf, je peux dire que c’est quand même beaucoup moins tranché que ça.
Côté C#, on a un langage monstrueusement compliqué, qui ferait passer le C++ pour un langage simple. Tellement de mots clés, tellement de features présentes dans le langage qu’à moins d’utiliser un sous-ensemble restreint du langage dans une équipe, c’est le chaos. Si vous n’y croyez pas, comparez la taille d’un bouquin pour apprendre le .Net à ceux pour le java. Perso, j’ai jamais eu le courage de finir mon bouquin sur le .Net. Pourtant, j’ai bossé sur des dizaines d’applis qui tournent actuellement en prod, ça gêne pas plus que ça quand on choisis un sous-ensemble cohérent du langage.
Vu que l’environnement .Net a toujours été moins populaire que Java, il y a moins de librairies tierces même si celles qui sont présentes sont de qualité comparable. Par contre, les libs tierces sont souvent moins sexy et fréquemment, en dehors des libs fournies par Microsoft (pléthoriques, de bonne qualité et bien documentées depuis quelques années), c’est le désert. Microsoft a fait un énorme effort sur la doc de ses produits, donc si vous avez comme moi joué avec .Net en 1.0, oubliez tout. Maintenant, les docs sont bonnes.
A faire tourner, ben à part .Net core, c’est pas la fête pour les administrateurs. Me parlez pas de mono, pour une vraie prod on évite les gadgets.
Côté intégration continue, c’était pas terrible, mais ça s’arrange, ils ont fait de gros efforts là dessus.
Côté avenir, c’est .Net core et c’est plutôt bien foutu. Ils savent faire plaisir aux devs chez Microsoft. Par contre, l’absence de parité de fonctionnalités entre la VM .Net pour Windows et .net core peut ajouter de la complexité.
Pour apprendre, l’IDE est gratuit, facile à utiliser et très graphique, donc c’est top !
Côté Java, on a un langage plutôt simple et cohérent, mais pas sexy pour deux sous. La philosophie initiale était clarté et pas de magie. L’avantage, aussi, c’est que le langage et le JDK restent comparativement encore simple et accessibles.
A cause des errances d’Oracle, le langage, le JRE/JDK et JavaEE ont perdu de leur superbe. Alors c’est rien de dramatique, le langage reste quand même agréable à utiliser mais pour la modernité, on repassera. On s’extasie encore de l’arrivée des streams et des closures alors que c’est arrivé partout ailleurs depuis des lustres.
Pour les libs, java c’est le nirvana. Si vous voulez faire un truc, vous savez que ça existe forcément et qu’il y a des millions de devs qui utilisent aussi ces outils et qu’ils sont ultra-solides. En plus il y a du choix, JavaEE, ou Spring, ou VertX, ou d’autres, bref si vous avez un besoin spécifique, il y a forcément les libs qui vous faut. Par contre, d’expérience, les docs sont de qualité très variable.
Côté intégration continue, c’est juste top. C’est facile de faire des livrables, de lancer les tests. Si vous êtes fauchés, il y a toujours Jenkins qui fait le job.
Pour l’avenir, on est dans une période de flottement. La JRE/JDK va passer en cycle de releases tous les 6 mois et pour JavaEE ça va être dans le même style, mais on sait pas du tout comment ça va marcher pour de vraie sous la fondation Eclipse.
Pour l’apprentissage du java, IntelliJ Idea Community est fabuleux, mais les fonctionnalités les plus commodes sont dans la version Ultimate qui est très payante. Mais je pense qu’on peut s’en sortir avec la version Community.
Le 23/12/2017 à 11h57
Le tuto est là pour introduire le second guide qui nécessite VS. Au passage, Visual Studio existe également pour macOS https://www.visualstudio.com/fr/vs/visual-studio-mac/
Le 23/12/2017 à 12h19
Oui mais tu peux pas faire du WinForms avec… Bon, évidemment pour l’instant il n’y a pas grand chose comme framework UI multiplateforme, et les rares qui existent ne sont pas aussi faciles à utiliser que WinForms.
Je recommande quand même de jeter un coup d’oeil à Avalonia, qui permet de faire des applis XAML multiplateformes. Ça a été utilisé par exemple pour porter MSBuildStructuredLogViewer sur d’autres plateformes (pas forcément l’exemple le plus intéressant, mais ça donne une idée des possibilités)
Le 23/12/2017 à 12h24
Merci ;)
Le 23/12/2017 à 13h49
Avalonia n’a pas vraiment d’intérêt MS étant entrain de bosser à l’unification de XAML sur toutes les plateformes la version 2 de XAML standard est sortie il y a une semaine si je ne m’abuse et le travail de mise à jour de Xamarin etc. à commencé. Il faut installé un package définissant des alias pour passer de Xamarin forms à Xaml standard par exemple. Actuellement je monte un proto sur le sujet sur une appli complexe.
XAML étant un languade de sérialisation d’interface ce refactoring permettra de cibler au niveau bas niveau ou D3D ou OpenGl de façon transparente pour le rendu :)
Le 23/12/2017 à 14h26
L’application se limitera alors à un fonctionnement sous Windows pour ce premier exercice.
" />
A demain pour de nouvelles aventures !
Le 23/12/2017 à 15h36
Le 23/12/2017 à 16h14
Le 23/12/2017 à 16h21
Le 23/12/2017 à 18h55
Le 23/12/2017 à 22h52
Le 24/12/2017 à 00h00
Hum… Ce que tu décris n’est pas de l’apprentissage (de la programmation) mais de la découverte (du langage C#).
Avec en plus l’idée que la curiosité intellectuelle incitera à une pratique en autodidacte, ce qui à mon sens n’est pas le mieux pour apprendre les fondamentaux. C’est avec ce genre de méthode que j’ai rencontré des développeurs C qui me disaient “quand on met une étoile devant la variable, après il ne faut pas mettre une fleche mais un point”. Ce qui est tout a fait exact d’un point de vue pratique, mais assez réducteur d’un point de vue théorique. " />
Le 24/12/2017 à 14h36
Le 24/12/2017 à 14h49
Le 24/12/2017 à 14h52
Le 24/12/2017 à 14h57