Archives de catégorie : Actualités

Comprendre le positionnement de Blazor

Backend, Frontend, FullStack

Software is eating the world, et le “web is eating software” depuis quelques années maintenant.

Cette omniprésence du web s’accompagne d’un nombre d’évolutions croissant et différents changements d’architectures.

D’un monde orienté quasi intégralement côté backend, où la consommation des données et la génération de l’UI (les vues) se faisait côté serveur. Nous nous sommes orientés vers un monde orienté services, où pour des raisons d’ergonomie et de vitesse de plus en plus de responsabilités sont déportées côté client.

Le schisme entre le backend et le frontend

Ainsi les vues, et la consommation de données exposées par des services se font le plus souvent côté client.

Pour accompagner ce transfert de responsabilité tout un tas de nouvelles libraires, frameworks et outils sont arrivés : jQuery, AngularJS, Angular, Vue, React, npm, bower, gulp, webpack, etc.

image

L’unification technologique que l’on pouvait avoir côté serveur, se complète d’une multitude de nouvelles technologies côté client.

Les développeurs doivent donc maitriser des technologies et langages très différents entre le côté backend et le côté frontend, pour avoir le profil fullstack ci-souvent souhaité.

Illustration dans le monde Microsoft

Dans l’écosystème Microsoft, cette séparation entre le front et le back peut être illustré par l’évolution d’ASP.net.

Au tout début de .net, l’essentiel des développeurs Microsoft étant des développeurs Windows, l’éditeur proposa une technologie de développement web adaptée : ASP.net Webforms. Reproduisant presque à l’identique le modèle de développement Windows, la technologie de développement web était la solution idéale pour inciter ce public à passer au web. Comme beaucoup de technologies de l’époque, les projets ASP.net webforms se concentraient quasi-exclusivement côté serveur. A l’arrivée d’Ajax, Microsoft continua sur cette lancée en proposant ASP.net Ajax et un toolkit associé permettant de bénéficier du développement côté client… sans faire de développement client ! Merci l’update panel et consors !

Afin de proposer un réel modèle de développement Web, ASP.net MVC fut ensuite proposé avec une intégration native de différentes technologies frontend. Le javascript et son écosystème prenant une place prépondérante au sein de ce type d’applications.

Incompréhensions, antipatterns

Nombre d’incompréhensions et d’antipatterns sont issus de toutes ces évolutions et de cette séparation entre le frontend et le backend :

  • L’incompréhension de la différence entre une librairie et un framework. Non, AngularJS n’est pas la suite logique de JQuery, utiliser un framework n’est pas anodin. C’est un choix technique majeur, qui définit un couplage très fort vers une certaine technologie
  • La non-compréhension que la plupart des frameworks frontend, sont des framework SPA, qui n’ont pas été conçus à la base pour être intégrés dans des sites web « classiques » multi-page. Ce n’est pas pour rien si ces frameworks proposent un grand nombre de fonctionnalités qui font doublon avec les frameworks serveurs traditionnels (vue, binding, routing, etc.)
  • Une incompréhension sur l’utilisation de ces frameworks dans des applications multi-page. Oui il peut être pratique d’utiliser des vues côté client pour afficher des données issues de services web, mais il faut être très clair sur la séparation des responsabilités.

Des décisions compliquées

Impact de cette explosion de technologies, et de changements de frameworks à la mode :

  • Il est compliqué de faire les bons choix techniques et d’assurer une bonne pérennité de ses applications
  • Dans un monde agile où l’on recherche le plus souvent des développeurs polyvalents « fullstack », le volume de compétences à avoir pour être « fullstack » est très (trop) important. Les développeurs peuvent avoir tendance à privilégier le côté back, ou le côté front en fonction de leurs intérêts.

Nombre de développeurs ne semblent pas trop effrayés par toutes ces évolutions du web, et s’intéressent à toutes les nouvelles technos à la mode.

Mais d’autres refusent cet écosystème à l’évolution archaïque et anarchique, en prenant une solution qui peut sembler radicale et vieux-jeu mais qui est tout à fait pertinente si l’on privilégie la pérennité.

VanillaJS

Le no-framework côté frontend qui consiste à n’utiliser qu’une librairie comme jQuery, soit aucune librairie tout court prend petit à petit de l’importance. Préconisé/formalisé par le mouvement Vanilla JS, ce type de décision ne doit pas être vu comme rétrograde, mais comme raisonnable pour ceux qui souhaitent privilégier la pérennité des développements.

Car oui, il n’est pas indispensable ni obligatoire d’utiliser Angular, React, Vue, ou autre framework pour développer une application web ! Tout dépend des besoins, et des critères des choix des technologies, du curseur que l’on place entre la spécialisation/complexité de l’implémentation proposée, et la pérennité de la solution finale.

Une première solution pour éviter cette séparation entre le front et le back, est d’utiliser le même langage des deux côtés : Javascript.

Blazor : ASP.net MVC FullStack

Blazor est une autre piste permettant de ne pas subir cette séparation. Blazor est pour le moment uniquement une « simple » expérience gérée par l’équipe ASP.net et non pas un produit final.

L’idée est assez simple, proposer un socle technologie simple permettant de créer des pages web en capitalisant sur ses compétences .net.

Avoir comme unique solution d’utiliser le langage javascript côté client et côté serveur serait un risque pour Microsoft de perdre toute pertinence dans le monde de développement web (à l’exception notable de TypeScript).

Microsoft propose donc avec Blazor de capitaliser ses compétences .net, en utilisant le langage C# et le moteur de vue Razor côté backend comme actuellement, mais surtout à présent également du côté frontend.

Une technologie qui pourrait être la solution idéale pour éviter le javascript « madness » et ne plus avoir besoin de se baser essentiellement sur cet écosystème.

Le tout en respectant bien évidemment les standards du web grâce à l’utilisation de WebAssembly et asm.js.

L’exécution de code C# côté client au sein d’un navigateur est rendu possible grâce à une implémentation du runtime .net en WebAssembly développée par l’équipe Xamarin.

Pour les anciens navigateurs qui ne supportent pas WebAssembly, asm.js est utilisé comme fallback afin d’être exécuté de manière universelle.

Comme il n’est pas utile de répéter ce qui est déjà présent online, vous pouvez en savoir plus d’un point de vue technique via ce post : https://blogs.msdn.microsoft.com/webdev/2018/03/22/get-started-building-net-web-apps-in-the-browser-with-blazor/

Un positionnement osé ?

Inutile de le repréciser cette technologie s’adresse avant tout aux développeurs .net, en proposant une alternative à javascript.

Bien que reposant sur les standards, proposer une alternative à javascript est plutôt osé. En proposant une solution rassurante et uniquement adaptée à sa population de développeurs .net, Microsoft risque de donner de nouveau une image d’éditeur qui ne s’intègre pas à l’écosystème actuel en proposant ses propres solutions. Cela devrait néammoins être atténué par l’approche du « nouveau » Microsoft : le projet est open-source sur github, et respecte les standards.

Mais comme souvent, cette nouvelle solution n’est pas exclusive mais complémentaire. Il ne faut pas voir Blazor comme étant une solution remplaçant ASP.net MVC mais comme une solution complémentaire à ASP.net MVC.

Pour caricaturer un petit peu, si vous êtes dans une startup ou chez un éditeur de logiciels qui privilégie l’utilisation des dernières technos pour satisfaire à de nouveaux besoins, vous pouvez utiliser ASP.net MVC « classique » et tout l’écosystème javascript. Si vous travaillez pour un éditeur ou une entreprise en interne, où la pérennité des développements est essentielle et où le coût d’utilisation de l’écosystème Javascript et le coût de la gestion de ces compétences n’est pas acceptée ou souhaitable, vous pourrez potentiellement vous orienter vers Blazor.

Microsoft Azure est en France !

Azure en France

Après avoir été annoncé en Octobre 2016 un ou deux jours avant l’annonce de l’arrivé d’AWS en France, disponible en pré-version depuis Décembre 2017, Microsoft ouvre donc officiellement deux nouvelles régions et 4 centres de données Azure en France.

Cette annonce faite pendant la première édition des Microsoft Tech Summit est importante puisqu’elle va permettre à nombre d’éditeurs de logiciels et de fournisseurs de services d’utiliser les services IaaS, PaaS, et SaaS de Microsoft Azure tout en hébergeant ses données en France.

L’hébergement des données en France peut être imposée dans des domaines spécialisés, ou alors pour tous les services proposés aux administrations françaises qui peuvent imposer dans leurs appels d’offre d’héberger les données sur le territoire.

Azure App Service, Azure Virtual Machines, Azure SQL Database, Azure Storage, et d’autres services IaaS et PaaS sont ainsi proposés en France.

En effet, vous pouvez retrouver de nouvelles régions sur certains services :

Ressource Groupe Azure en France

Les services Office 365

Certains services d’Office 365 tels qu’Exchange Online, Office Online, Sharepoint Online, OneDrive, etc. sont également à présent disponibles en France.

Vous pouvez consulter l’emplacement de l’intégralité des services Office 365 via ce service de Microsoft : https://products.office.com/fr-FR/where-is-your-data-located?ms.officeurl=datamaps&geo=Europe#Europe

A noter qu’il n’a pas encore été mis à jour avec les nouveaux datacenters français qui viennent d’ouvrir.

Et pour les clients Azure et Office 365 existants ?

Cette nouvelle est également intéressante pour les clients actuels de services cloud de Microsoft tels qu’Office 365 puisqu’il est possible de demander une migration de son abonnement actuellement hébergé hors de France donc pour le rapatrier à la maison :

Nous sommes 500 membres du meetup .net Toulouse !

 

image

Un petit peu d’auto-célébration ne faisant jamais de mal, je suis heureux de vous communiquer que la barre des 500 membres au sein du meetup .net Toulouse créé il y a 1 an et demi vient d’être atteinte !

image

Développeurs toulousains, n’hésitez pas à nous rejoindre, et à vous inscrire si vous le souhaitez au prochain meetup de Lundi prochain : https://www.meetup.com/fr-FR/Meetup-NET-Toulouse/events/248543383/

Slides de ma session sur la mise en place de pratiques agiles avec TFS/VSTS

imageJ’ai eu le plaisir de présenter hier soir une session au meetup .NET Toulouse sur l’ALM avec TFS/VSTS et plus précisément sur la mise en place de “vraies” pratiques agiles grâce à TFS et VSTS.

Vous pouvez consulter les slides sur mon slideshare :

J’ai rapidement abordé la problématique de mise à jour de schémas de BDD, vous pouvez également retrouver les slides de ma présentation du mois dernier aux Sql Saturdays via ce lien : https://patricelamarche.net/sqlsaturday-slides-de-ma-session-surle-versionning-et-la-mise-jour-de-bdd-avec-readyroll/

Nano Server vNext permettra d’avoir des images Docker 2x plus petites

windows-10-docker

Comme vous avez pu le découvrir via ma série de posts dédié à Docker :

A partir de Windows Server 2016, Microsoft propose une nouvelle édition de Windows nommée Nano Server. Cette édition permet d’avoir une image Docker 10 fois plus légère qu’une image Windows Server Core grâce à un refactoring important et une suppression de tous les services inutiles pour cette édition destinées à être utilisée au sein de conteneurs.

Cela avait été annoncé discrètement durant la Build, puis plus officiellement la semaine dernière, l’investissement de Microsoft continue dans cette même direction et va même plus loin puisque l’éditeur annonce que ses efforts vers cette nouvelle édition sont une priorité, et que la prochaine édition de Nano Server permettra de faire des images plus de 2x plus petites qu’actuellement (actuellement 300 Mo compressée) avec donc à la clé des chargements plus rapides, et bien sûr une densité de conteneurs sur vos machines hôtes plus importante.

Rendez-vous en automne (merci le nouveau rythme de livraison bi-annuel de Windows Server Winking smile) pour le résultat final !

Pour plus d’infos :

Enfin de la grosse actualité autour de Windows !

Je critiquais le manque de nouveautés apportées par Windows 10 et de l’anniversary update lors du précédent meetup .net de Toulouse, et je suis plus qu’heureux d’avoir été magnifiquement contredit par l’évènement d’hier.

Alors que les principales nouveautés (Bash sous Windows et l’ajout des conteneurs Hyper-v) étaient destinées aux développeurs, la prochaine mise à jour de Windows 10 est destinée aux créateurs au sens large du terme.

Microsoft remets clairement en avant Windows grâce à des pages dédiées, un live streaming diffusé sur microsoft.com ainsi que sur facebook live, et un très bon suivi sur Twitter.

Une communication d’excellente qualité qu’il est nécessaire de souligner.

Afin d’avoir une vision rapide de toutes les annonces de cet EXCELLENT évènement, je vous propose la sélection de tweets suivante.

Windows 10 Creators Update pour le printemps 2017

La 3D

La réalité virtuelle

Les jeux

Du MAGNIFIQUE Hardware

Pour aller plus loin

La synthèse de l’évènement en 09 minutes

La couverture de l’évènement par TechCrunch

https://techcrunch.com/tag/windowsevent2016/

Création d’un meetup .net à Toulouse

Après les projections annuelles du 1er keynote de la Build, j’ai le plaisir de vous annoncer que nous allons avoir la possibilité de nous retrouver plus régulièrement grâce à la création d’un meetup dédié aux technologies de développement Microsoft.

Afficher l'image d'origine

Nous pourrons nous retrouver tous les 3ème lundi du mois pour échanger autour de plusieurs sujets.

1er rendez-vous : Lundi 17 Octobre à la Cantine (27 rue d’Aubuisson 31000 Toulouse) à partir de 18h30 pour faire un tour d’horizon de ce qui aura été présenté durant l’évènement Microsoft Experiences qui a lieu à Paris le 4 et 5 Octobre.

Vous ne serez pas à Paris ?! Pas grave, on vous racontera tout !

N’hésitez pas à rejoindre le meetup, et à vous inscrire pour notre 1ère rencontre !

News de la semaine #13

image #ALM
Improved commit traceability, custom multiline fields, and board/test integration – Mar 24

#VisualStudio
Visual Studio Tools for Unity (Channel 9)

 

#ASPNET
Offline Web Applications with MVC

#npmGate
How one developer just broke Node, Babel and thousands of projects in 11 lines of JavaScript
NPM & left-pad: Have We Forgotten How To Program?
kik, left-pad, and npm

#openness
Microsoft provides a few more details on its SQL on Linux plans | ZDNet

#France
Meilleur Dev de France 2016 : erreur 503
Keynote de la //Build 2016 à Toulouse, le 30 Mars

News de la semaine #12

 

image#ALM
PowerBI et VSTS : enfin du reporting simple ! – Cellenza Blog
Here’s what’s inside Microsoft’s private preview of Visual Studio next | ZDNet

#WEB
Deploy an MVC Application to a Container
Microsoft Edge extensions now available to preview
A WebAssembly Milestone: Experimental Support in Multiple Browsers ★ Mozilla Hacks – the Web developer blog
What is Middleware Anyway?

#ARCHITECTURE
An Introduction to Microservices with Mark Russinovich (Channel 9)

#PRODUITS
Microsoft releases to manufacturing SharePoint Server 2016 | ZDNet
Introducing LINQPad.QueryPlanVisualizer – About My Cod

#FRANCE
Microsoft Expériences : les TechDays opèrent leur transformation | ITespresso.fr

News de la semaine #11

 

image#OPENNESS
Microsoft joins the Eclipse Foundation and brings more tools to the community
Announcing SQL Server on Linux – The Official Microsoft Blog
Why Microsoft needs SQL Server on Linux | ZDNet

 

#CLOUD
Microsoft’s new Dynamics AX ERP-as-a-service offering is truly cloud-first | ZDNet

#DATA
Visual Studio now speaks the R language!

#WINDOWS
Visual Layer : Redonnez le pouvoir à votre GPU

#WEB
ASP.NET 5 on Nano Server — ASP.NET documentation
ASP.NET AJAX Control Toolkit – New Release v16.1 and GitHub Hosted!

#TOULOUSE
Projection Keynote de la //Build/ 2016 à Toulouse