mardi 20 septembre 2016

Casse brique HTML5 en moins d'une heure avec Bridge .NET


Cela fait plusieurs années que vous faites des applications de bureau en .NET / C# / Winform / WPF / SQL Server / EF, avec tous les patterns qui vont avec, et vous vous intéressez depuis peu au web ?

Si c'est le cas, vous avez surement découvert ASP .NET et son fameux MVC 4 et 5.

Lors de cette découverte, vous avez apprivoisé rapidement l'ensemble de l'écosystème coté "Backend" tant les concepts et méthodes sont proches de la programmation orientée objet traditionnelle.

Seulement voila, lorsque vous avez commencé a regarder la partie "Frontend", vous n'avez pas pu vous empêcher de gerber tant les principes et outils qui dominent sont chaotiques, improductifs, soumis au monde de la bidouille et sans aucune foi ni loi.

On vous a expliqué que pour faire une IHM, il fallait connaitre au minimum 2 syntaxes (HTML et CSS). Pourquoi pas...

Ensuite, on vous a expliqué que comme ces langages créent du contenu statique, il fallait faire du javascript pour les manipuler afin de rendre le contenu plus dynamique. (ça se complique, mais la démarche est compréhensible)

Sauf que le javascript est un langage interprété, avec une syntaxe franchement pas très net (des fonctions auto-appelantes qui sont utilisées comme des objets, aucun typage fort, des notions obscures, une exécution en fonction de l'ordre de déclaration des instructions, aucune vérification de syntaxe, ..., tout ce qu'il faut pour se tirer des balles)

Bref, c'est tellement n'importe quoi qu'il sort tous les jours une quantité incroyable de frameworks et outils pour combler les lacunes de javascript. Le pire, c'est que javascript est tellement ignoble que les frameworks javascript modernes préconisent de ne pas utiliser directement javascript ! mais plutôt des langages de scripts plus propres (avec typage fort et orienté objet) qui seront ensuite "traduit" en javascript.

Cette action de traduire un langage de programmation vers un autre s'appelle la transpilation.

Sachant cela, on est en droit de se poser les questions suivantes :

  • Si la tendance du moment consiste à utiliser des méta-langages pour transpiler du javascript, pourquoi s'embêter à apprendre l'un de ces langages (ou le javascript lui même) plutôt que d'utiliser notre langage préféré ?
  • N'existerait-il pas un transpileur de C# vers javascript histoire de gagner du temps ?

Ces questions sont parfaitement légitimes, surtout que ça permettrai aux développeurs C# que nous sommes d'avoir un seul langage pour maintenir le code de nos applications web.

J'ai donc fait pas mal de recherches sur le sujet, lorsque je suis tombé sur une vidéo qui m'a bien fait réfléchir.
Son nom : HTML5 Pong in 20mn With C#

Dans cette vidéo, l'auteur propose de développer le mythique jeu "PONG" en HTML5 sans taper une ligne de javascript grâce au transpileur open source et gratuit Bridge .NET

Devant une telle performance, je ne pouvais qu'essayer de réitérer l'exploit par moi-même.

Et à ma grande surprise, l'essai a été transformé, alors que je ne connais presque rien au triptyque HTML/CSS/Javascript... j'ai réussi grâce à mes simples compétences en C# (et un peu de HTML/CSS) à développer un jeu de casse brique en moins d'une heure !

Comme quoi, d'autres alternatives sont possibles...

Pour voir la vidéo, c'est par ici



Vous pouvez aussi jouer à ce jeu en ligne en cliquant ici : http://deck.net/9b1f63250be234abaf8562836c495dab/full

Have fun !

Aucun commentaire:

Enregistrer un commentaire