Fermer

octobre 27, 2020

Votre entreprise devrait-elle choisir Angular, React ou Blazor?


Quels facteurs devez-vous prendre en compte lors du choix entre Blazor, React et Angular pour créer une application Web moderne?

Avec une mer sans cesse croissante de cadres, d'outils et d'écosystèmes parmi lesquels choisir, il peut sembler plus difficile que jamais de déterminer la meilleure option pour votre entreprise lorsqu'il s'agit de créer des applications Web modernes.

De plus, jusqu'à récemment, JavaScript était généralement considéré comme l'option incontournable pour créer des applications Web «modernes», mais maintenant, avec Blazor, Microsoft a créé une alternative viable.

Blazor, comme JavaScript, fonctionne dans le navigateur, mais vos applications sont écrites en C #. Votre application et une petite version du moteur d’exécution .NET sont ensuite expédiées vers le navigateur où tout s’exécute via WebAssembly.

Nous nous retrouvons donc maintenant avec des frameworks JavaScript établis comme Angular et React, ainsi qu’un nouveau concurrent dans le Blazor de Microsoft. Laquelle est la meilleure pour votre entreprise?

Eh bien pour commencer, nous devrions probablement définir «meilleur».

Cela variera probablement en fonction de votre propre situation, mais je parie que pour la plupart d’entre nous, cela se résume à un quelques facteurs.

  • Comment chaque framework aide-t-il (ou empêche-t-il) votre équipe à créer des applications Web stables et évolutives
  • Est-il facile d'obtenir de l'aide / des réponses lorsque vous êtes bloqué (ou rencontrez des problèmes inattendus)
  • Dans quelle mesure s'intègre-t-il avec les connaissances / l'expérience existantes de votre équipe et votre écosystème technologique existant

Après tout, même si l'un de ces cadres était techniquement bien supérieur aux autres, si la courbe d'apprentissage signifiait que vous ne pouviez rien faire de significatif avec elle pendant les trois premiers mois, ce ne serait probablement pas votre premier choix!

Alors, comment se combinent Angular, React et Blazor, et quelles différences clés devez-vous rechercher?

Tirez parti de vos compétences existantes [19659014] La première grande considération est la composition de votre équipe. [19659003] Si vous avez une équipe avec beaucoup d'expérience C #, et surtout si elle a créé des applications Web à l'aide d'ASP.NET MVC (ou d'ASP.NET Core MVC), il peut être judicieux de tirer parti de cette expérience.

Pour de nombreux développeurs C #, JavaScript est soit un mystère complet, soit au moins une autre chose à apprendre.

Bien qu'il soit possible de transférer certaines de vos connaissances C # existantes lorsque vous commencez à écrire du JavaScript, ce sont des langages fondamentalement différents, et le les nuances d'écriture pour JavaScript peuvent vous surprendre, surtout lorsque vous êtes habitué à tout écrire en C #.

Si C # est le langage principal de votre entreprise, alors Blazor peut être le meilleur choix. Cela évite également les pièges d'avoir plusieurs langues à gérer.

D'un autre côté, si votre équipe est plus à l'aise avec JavaScript, React ou Angular peuvent être le meilleur choix pour des raisons similaires.

Mis à part les différences dans les langues

Auparavant, les développeurs .NET utilisaient généralement Visual Studio, et quiconque construisait des applications frontales avec quelque chose comme React utilisait un outil différent.

De nos jours, des outils comme Visual Studio Le code a réussi à rapprocher les différents camps à des degrés divers.

Dire que si votre équipe est à l'aise et familière avec un ensemble d'outils particulier, il peut être judicieux de les y garder.

Ce n'est pas une mince affaire de changer d'un environnement de codage à un autre. Avec le temps, nous avons tendance à nous habituer aux outils / configurations que nous utilisons toute la journée tous les jours: les raccourcis, les extensions, les thèmes nous aident tous à nous garder sur la bonne voie.

Ce n'est pas une montagne impossible à gravir, de passer d'un outil ou d'un éditeur à un autre. à un autre, mais cela ralentira probablement tout, du moins à court terme.

Déploiement

Si les IDE et les éditeurs de texte sont un facteur important en matière de développement, comment mettre votre code en production est tout aussi (sinon plus) important!

Angular, React et Blazor ont tous leurs propres processus de déploiement.

En général, il s'agit d'exécuter le bon script pour empaqueter vos applications avant de les déployer sous une forme d'hôte.

React et Angular peuvent être déployés sur des hôtes Web statiques tels que Netlify ou des applications Web statiques Azure.

Cela fonctionne car ils sont composés de JavaScript, HTML et CSS, dont aucun ne nécessite un traitement dynamique et peut facilement être servi au navigateur à partir de pratiquement n'importe quel hôte Web. [19659003] Les applications Blazor peuvent également être déployées de manière statique, mais seulement dans certains cas.

Si vous utilisez Blazor WebAssembly, votre application peut être déployée de manière statique, à moins que vous ne choisissiez de l'héberger via une application ASP.NET (à quel moment vous auriez besoin d'un serveur compatible ASP.NET).

Blazor Server n'est pas déployable de manière statique car il dépend également d'un backend ASP.NET.

L'hébergement statique présente de nombreux avantages, notamment il est généralement bon marché (souvent gratuit) et très rapide car il n'y a pas de traitement dynamique impliqué. Les ressources statiques peuvent également être servies à partir de CDN, ce qui signifie que vos utilisateurs téléchargent les ressources de vos applications à partir d'un serveur géographiquement plus proche d'eux que votre serveur Web standard est susceptible de l'être.

Si vous déployez vos sites à l'aide d'une intégration / déploiement continu, vous Vous devrez également tenir compte de la facilité de configuration de votre serveur CI / CD pour déployer ces sites.

Encore une fois, si votre équipe a l'expérience du déploiement de sites ASP.NET, Blazor sera plus proche.

Angular Le déploiement / React dépend de l'exécution de scripts qui utilisent node.js (sous le capot) pour regrouper tout dans un actif déployable.

L'écosystème plus large

Un autre facteur important lors du choix d'une technologie est l'écosystème dans lequel elle existe.

Il y a de nombreux facteurs ici…

Est-il activement maintenu, est-il susceptible d'évoluer et de s'améliorer avec le temps, est-il facile d'obtenir de l'aide / du support?

Obtenir des réponses à vos questions

Blazor est le plus récent enfant du quartier, donc vous mi Attendez-vous à ce qu'il y ait des lacunes dans les réponses que vous pouvez trouver en ligne.

Cela dit, il existe une communauté Blazor qui ne cesse de croître et que les gens écrivent régulièrement à ce sujet, il s'agit donc probablement d'un problème à court terme (s'il y a un problème).

D'une certaine manière, Blazor a un avantage en arrivant après Angular et React en ce que bon nombre de ses principes fondamentaux sous-jacents sont tirés des meilleures parties de ces cadres.

En ce sens, il est touché le fonctionnement au sol et le modèle des composants sont logiques, cohérents et prévisibles. Donc, une fois que vous avez compris les bases, cela fonctionne généralement comme prévu.

Angular et React existent depuis plus longtemps et vous pouvez généralement trouver des réponses à toutes vos questions.

Learning Curves

Ça vaut le coup notant qu'il y a une différence fondamentale entre React et Angular.

React est livré avec un modèle de composant et la capacité de lier des composants à des données, mais très peu d'autre chose.

C'est un choix délibéré de l'équipe React, le laissant à d'autres parties pour fournir des préoccupations supplémentaires comme le routage, la prise en charge des formulaires, etc.

Pour cette raison, React lui-même est assez simple à apprendre (en raison de sa portée relativement limitée).

Angular, par contre, inclut le routage , des formulaires et pratiquement tout ce à quoi vous pouvez penser.

L'avantage de ceci est que vous n'avez pas besoin de faire appel à divers fournisseurs tiers pour combler les lacunes, mais cela rend aussi la surface d'Angular beaucoup, beaucoup plus grand, ce qui signifie qu'il y a beaucoup à apprendre. [19659003] Ainsi, selon le style d'apprentissage de votre équipe et l'expérience existante, ils peuvent mieux s'entendre avec l'un de ces cadres par rapport à l'autre (du point de vue de l'apprentissage des bases et de la mise en place de quelque chose).

Blazor occupe une sorte de terrain d'entente ici, avec un modèle de composant solide, plus le routage et les formulaires, et un client HTTP pour faire des requêtes réseau.

Dans l'ensemble, Blazor est «plus léger» qu'Angular à cet égard. Il s'appuie également sur les technologies Microsoft établies, donc si votre équipe est familiarisée avec le routage ASP.NET et l'écriture de balisage à l'aide de Razor, une grande partie des fonctionnalités de Blazor leur viendra naturellement.

Outils tiers et support commercial

Autre clé Le niveau de support commercial disponible lors de l'adoption d'un framework est le niveau de support commercial disponible.

Il peut y avoir beaucoup à gagner à utiliser des solutions tierces, comme les contrôles d'interface utilisateur, dans votre application. Construire des éléments tels que des grilles, des graphiques, des éditeurs de texte, etc. prend toujours plus de temps que vous ne le pensez, et a finalement le potentiel de devenir une distraction significative dans la livraison des fonctionnalités dont vos clients ont besoin.

Dans ce domaine, les trois cadres sont excellents. et un support commercial en constante amélioration. Blazor, bien qu'il soit le plus récent enfant de la ville, possède un écosystème avec des outils riches, tels que Telerik UI pour Blazor déjà disponible pour accélérer votre développement.

React et Angular sont également bien servis à cet égard avec des outils comme KendoReact Kendo UI for Angular et bien d'autres.

The Future

Cela ne vaut probablement pas la peine de se lancer dans un jeu de prédiction de l'avenir pour ces frameworks, mais il vaut peut-être la peine de peser quelques facteurs.

Microsoft investit actuellement beaucoup de temps et d'efforts dans Blazor, le cadre lui-même évoluant rapidement et les améliorations de l'outillage arrivant à intervalles réguliers.

Il est intégré dans une suite de des changements radicaux à venir avec .NET 5 et semble maintenant être une partie importante des plans de Microsoft pour la construction d'applications Web modernes à l'avenir.

React ne montre également aucun signe de ralentissement. C’est la technologie de base qui alimente Facebook (d’où React est né), et les versions arrivent fréquemment.

Angular vise les versions majeures tous les six mois environ. Au moment de la rédaction de cet article, la dernière version publiée était 10.0 en juin 2020.

Support

Enfin, il existe des différences quant aux versions des différents frameworks supportées.

Le support de React est entièrement basé sur la communauté , comme décrit ici .

Angular a une politique officielle concernant les versions du framework prises en charge.

Toutes les versions majeures sont prises en charge pendant 18 mois, avec 6 mois de support actif (avec des mises à jour régulières et les correctifs sont publiés), puis 12 mois de support à long terme (seuls les correctifs critiques et de sécurité sont publiés).

Avec .NET (et donc Blazor), la plate-forme est officiellement prise en charge par MS comme tout autre produit Microsoft.

Chaque version est soit actuelle, soit LTS (support à long terme), et cela se fait en alternance.

  • .NET Core 3.1 est LTS
  • .NET 5 sera actuel
  • .NET 6.0 sera be LTS

Les versions LTS sont prises en charge pendant trois ans après rel

Les versions actuelles sont prises en charge pendant trois mois après une version actuelle ou LTS ultérieure.

En résumé

Ces trois options sont de solides options pour créer des applications Web.

Néanmoins, il est important de peser le problème. l'expérience et les préférences de votre équipe, tout en gardant à l'esprit à quel point il est facile ou difficile d'apprendre un nouvel outil / langage, lorsque vous choisissez l'une de ces options pour votre prochain projet.

Si vous ne savez toujours pas dans quelle direction vous devriez

Restez simple et construisez quelque chose de petit, avec quelques écrans, juste pour voir comment chacun des frameworks fonctionne; comment créer et lier des composants, des options de routage, etc.

Il ne s'agit évidemment pas d'un substitut à la création d'une application entière, mais cela aidera à identifier les obstacles potentiels qui empêchent l'adoption de l'un de ces cadres.





Source link