Aspnetcore: Feuille de route Blazor pour .NET 5

Créé le 5 mai 2020  ·  38Commentaires  ·  Source: dotnet/aspnetcore

Ce numéro va répertorier les gros livrables que l'équipe Blazor envisage pour la version ASP.NET Core 5.0. Bien que nous espérons résoudre tous ces problèmes, il reste encore de nombreuses inconnues et les choses changeront au fur et à mesure. Veuillez noter qu'il s'agit des principaux domaines d'investissement et qu'en parallèle, des travaux seront effectués pour apporter de nombreuses corrections et améliorations plus petites, y compris les contributions de la communauté.

Aperçu 7

  • [x] [Déplacer Blazor vers .NET 5](https://github.com/dotnet/aspnetcore/issues/20519)

Aperçu 8

  • [x] [Isolement CSS](https://github.com/dotnet/aspnetcore/issues/10170)
  • [x] [Support IAsyncDisposable] (https://github.com/dotnet/aspnetcore/issues/9960)
  • [x] [Chargement paresseux des zones d'application](https://github.com/dotnet/aspnetcore/issues/5465)
  • [x] [Ajouter la prise en charge du focus à BrowserRenderer](https://github.com/dotnet/aspnetcore/issues/17472)
  • [x] [Stockage de navigateur protégé](https://github.com/dotnet/aspnetcore/issues/18755)

RC1

  • [x] [Optimisations des performances de Blazor](https://github.com/dotnet/aspnetcore/issues/22432)
  • [x] [Virtualisation](https://github.com/dotnet/aspnetcore/issues/23092)
  • [x] [Comment télécharger des fichiers dans l'application Blazor] (https://github.com/dotnet/aspnetcore/issues/12205)
  • [x] [Isolation JS et JSObjectReference](https://github.com/dotnet/aspnetcore/issues/23560)
  • [x] [Pré-rendu Blazor WebAssembly](https://github.com/dotnet/aspnetcore/issues/24098)

    Coupures potentielles

  • [ ] [glisser-déposer](https://github.com/dotnet/aspnetcore/issues/18754)

  • [ ] [Ajouter la prise en charge des outils pour les paramètres de composants requis] (https://github.com/dotnet/aspnetcore/issues/25055)

  • [ ] [Améliorations des performances de construction pour Blazor](https://github.com/dotnet/aspnetcore/issues/22566)
  • [ ] [Paramètres requis pour les composants Blazor (contrôle d'exécution)](https://github.com/dotnet/aspnetcore/issues/11815)
  • [ ] [Autoriser les contraintes de type générique](https://github.com/dotnet/aspnetcore/issues/8433)
  • [ ] [Compilation AoT](https://github.com/dotnet/aspnetcore/issues/5466)
  • [ ] [Support SVG dans Blazor](https://github.com/dotnet/aspnetcore/issues/18271)
  • [ ] [Prise en charge de plusieurs gestionnaires d'événements pour le même événement sur le même élément](https://github.com/dotnet/aspnetcore/issues/14365)
  • [ ] [Restreindre la hiérarchie des composants parent et enfant dans blazor](https://github.com/dotnet/aspnetcore/issues/12302)
  • [ ] [Ajouter la possibilité de transmettre @typeparam aux composants enfants](https://github.com/dotnet/aspnetcore/issues/7268)
Done area-blazor roadmap

Commentaire le plus utile

@ pjmlp Votre critique n'est pas sans fondement, mais allez... Blazor (et WebAssembly en général) est le développement le plus surprenant, excitant et impressionnant de la technologie Web - depuis AU MOINS 20 ans ! Roth, Sanderson et leurs amis méritent nos éloges pour avoir à nouveau rendu le développement Web amusant.

Et pour améliorer comme par magie notre employabilité sans rien apprendre de nouveau... pensez-y une seconde !

Et considérez nos collègues .NET qui n'ont jamais fait de SPA (angular/react/vue) - le gang aspnet vient d'agiter sa baguette magique et les a convertis de "développeurs backend" en "dévs fullstack". Juste comme ça... magique.


BTW: L'isolement CSS très heureux est prévu. Mais s'il vous plaît (!) ajoutez aussi l' isolation js . Les composants de l'interface utilisateur qui reposent sur les bibliothèques js (par exemple Bootstrap) devraient pouvoir déclarer/utiliser css AND js dans le composant - sinon le projet devient difficile à maintenir.

Tous les 38 commentaires

Le lien vers Required parameters to blazor components pointe vers un problème incorrect. Je suppose que ça devrait être
https://github.com/dotnet/aspnetcore/issues/11815 ?

@JvanderStad Merci de l'avoir signalé ! Devrait être corrigé maintenant.

Blazor (côté serveur) sera-t-il disponible dans les futures implémentations Mono non seulement pour l'exécution du noyau net ? Par exemple, ce serait formidable de lancer Blazor (et d'autres applications AspNetCore) dans d'autres architectures de processeur où le mono est pris en charge.

Allez l'équipe! Déjà du bon boulot, j'espère que ça ira encore mieux avec le temps !

Blazor (côté serveur) sera-t-il disponible dans les futures implémentations Mono non seulement pour l'exécution du noyau net ?

@EntityFX Nous n'avons pas l'intention de prendre en charge Blazor Server, sauf sur .NET Core. Blazor Server est basé sur ASP.NET Core, qui fait partie de .NET Core. S'il existe des architectures pour lesquelles vous souhaitez que .NET Core soit pris en charge, veuillez le leur faire savoir en ouvrant un problème dans le référentiel https://github.com/dotnet/runtime/issues .

Y aura-t-il une rétrocompatibilité pour QBasic ? ??

C'est parti Blazor 5.0 ! ??

RIPj

Y aura-t-il des améliorations à la gestion des utilisateurs ? Il est un peu fastidieux de créer et de rediriger les utilisateurs vers des pages .cshtml afin de gérer la connexion/déconnexion et la création d'utilisateurs. Ce serait formidable si tout cela pouvait être géré dans les composants Blazor à la place.

@KrazyTako Nous n'avons pas de travail immédiat prévu autour de la gestion des utilisateurs, mais nous faisons de notre mieux pour hiérarchiser le travail en fonction des commentaires des utilisateurs et de la communauté, alors veuillez déposer un problème pour tout commentaire que vous avez dans ce domaine et nous l'examinerons.

Je suis un grand fan de Blazor WASM et j'ai récemment implémenté une application d'entreprise avec Blazor. Il y avait d'énormes fonctionnalités dans les fonctionnalités basées sur des composants, une utilisation complète du code C# et .Net, une expérience formidable ! Cependant, après avoir chargé l'application avec des données, j'ai quelques problèmes, principalement au niveau des performances ; que j'hésite maintenant à continuer ou à attendre un gain de performances dans les prochaines versions :

  1. Dans les entités complexes, un changement dans une ligne actuelle de la grille de données prendra près de 5 secondes pour lier à nouveau les contrôles de formulaire à la nouvelle ligne ! (J'ai utilisé le modèle INotifyPropertyChanged dans mes entités) - mais l'implémentation angulaire le fait instantanément.
  2. Tous les composants de grille de données tiers (au moins ceux que j'ai testés) sont en quelque sorte immatures et lents dans certaines fonctionnalités et très lents dans le chargement des données et l'édition en cellule, ce qui est une caractéristique importante des applications d'entreprise ; si vous cliquez dans une cellule, il faut environ 3 à 4 secondes pour que la zone de texte apparaisse et se prépare pour la saisie de l'utilisateur (Telerik, Syncfusion, ...).
  3. En fin de compte, j'ai fait un benchmark, comparant la vitesse de Wasm Blazor et Angular pour l'exécution d'une fonction simple ayant une série de calculs (principalement l'augmentation de la valeur d'une variable liée à la forme dans certaines boucles). Pour Blazor Wasm, cela a pris 2000 ms, tandis que pour l'Angular, ce n'était que de 25 ms ! Et ce fut un résultat tragique. Plus de 80 fois plus lent ! (Tous les tests ont été refaits avec la récente version officielle de Blazor Webassembly)

J'ai entendu dire qu'avec la fonctionnalité AoT, nous n'obtiendrons qu'un gain de performances 5x et même cela avec la surcharge de l'augmentation de la taille de l'application.

Alors, s'il vous plaît, aidez-nous et dites si nous pouvons avoir de bonnes nouvelles dans les prochaines versions de .Net 5 ou 6 dans ces numéros ?
Merci

_Hors sujet_

Y aura-t-il une rétrocompatibilité pour QBasic ? ??

C'est parti Blazor 5.0 ! ??

RIPj

Vous pouvez soumettre une pull-request pour https://github.com/microsoft/GW-BASIC

@Sherweeen Nous travaillons sur diverses améliorations des performances d'exécution pour Blazor WebAssembly dans .NET 5. Blazor WebAssembly s'exécute actuellement sur un environnement d'exécution basé sur un interpréteur, qui présente des limitations de performances connues que nous nous efforçons de résoudre. Nous travaillons également avec divers fournisseurs de composants pour aider à améliorer l'efficacité de leurs implémentations de composants.

@danroth27
Dans l'avenir, le support de la directive 5607 sera inclus

À l'heure actuelle, une grande partie des utilisateurs qui envisagent d'adopter l'assemblage Web blazor sont transférés des développeurs WinForm, WPF d'origine ou réagissent, angulaires, Vue, et de nombreux produits développés sont des applications d'entreprise. Si un ensemble de mécanismes de gestion des utilisateurs multi-locataires, d'enregistrement, de connexion et d'autres mécanismes de gestion de la sécurité peut être "prêt à l'emploi", cela accélérera considérablement l'application de blazor webaeembly.

@199621616 Voulez-vous dire quelque chose comme Azure B2C ?

https://docs.microsoft.com/en-us/azure/active-directory-b2c/overview

@stephenstroud

Bien que j'aie pu obtenir l'authentification Azure pour mon application wasm, elle n'est pas incluse dans le modèle wasm comme c'est le cas pour le serveur Blazor, c'est peut-être ce qui est mentionné, afin de faciliter la configuration d'un nouveau projet ?

@PylotLight Le modèle Blazor WebAssembly prend en charge l'utilisation d' Azure AD ou Azure AD B2C , mais les options ne sont actuellement disponibles qu'à partir de la ligne de commande, pas à partir de VS. VS devrait activer ces options dans une future mise à jour.

@PylotLight Vous pouvez voir des informations à ce sujet dans le numéro #21671. Le processus actuel pour implémenter quelque chose comme Azure AD B2C dans Blazor Web Assembly est tout un processus, donc j'espère que les mises à jour qu'ils mentionnent amélioreront ce processus.

@lzinga , @danroth27 Merci pour l'info mais ça ne me dérange pas :P
J'essayais seulement d'aider à expliquer ce que le mec ci-dessus demandait. Bien sûr, ce serait bien de voir cette fonctionnalité incluse dans les modèles standard =].

@ danroth27 Bien que je comprenne le raisonnement derrière la décision de la feuille de route, veuillez prendre en considération qu'après Silverlight, XNA, UWP (avec sa propre saveur .NET), EF6, WCF, .NET Native, C++/CX vs C++/WinRT, et bien d'autres Parmi les autres faux pas, Microsoft a brûlé beaucoup d'amour des développeurs, ce qui influence les décisions que nous conseillons à nos clients concernant l'adoption de la technologie.

@ pjmlp Votre critique n'est pas sans fondement, mais allez... Blazor (et WebAssembly en général) est le développement le plus surprenant, excitant et impressionnant de la technologie Web - depuis AU MOINS 20 ans ! Roth, Sanderson et leurs amis méritent nos éloges pour avoir à nouveau rendu le développement Web amusant.

Et pour améliorer comme par magie notre employabilité sans rien apprendre de nouveau... pensez-y une seconde !

Et considérez nos collègues .NET qui n'ont jamais fait de SPA (angular/react/vue) - le gang aspnet vient d'agiter sa baguette magique et les a convertis de "développeurs backend" en "dévs fullstack". Juste comme ça... magique.


BTW: L'isolement CSS très heureux est prévu. Mais s'il vous plaît (!) ajoutez aussi l' isolation js . Les composants de l'interface utilisateur qui reposent sur les bibliothèques js (par exemple Bootstrap) devraient pouvoir déclarer/utiliser css AND js dans le composant - sinon le projet devient difficile à maintenir.

@lonix1 J'ai mentionné que je comprenais les raisons du changement.

Cependant, je voulais également faire passer le message que tout le monde n'est pas satisfait des changements en cours au cours des 10 dernières années, dont je suis pleinement conscient que Roth, Sanderson et leurs amis ne sont pas à blâmer, mais ils sont en mesure de faire passer le message. jusqu'à la chaîne à la gestion de Microsoft.

La façon dont .NET Core 1.0 => .NET Core 2.0 s'est déroulée m'a permis de décrocher un projet pour un client qui a décidé de migrer certains services critiques de .NET vers Java et de les déployer sur Linux.

Peut-être que s'il était plus heureux, il serait prêt à investir à la place dans .NET Core, car il était déjà tout à fait capable pour l'ensemble de fonctionnalités de service souhaité.

Alors tuez le messager si vous voulez, mais cela ne changera pas la perception dans certains cercles.

l'if de rouille est très rapide
https://jetli.github.io/rust-yew-realworld-example-app/#/

Blazor est trop lent ! trop lent ! trop lent !
Blazor a besoin de performance !!!

@pjmlp Je pense que cela aiderait si vous pouviez clarifier à quelle décision en particulier vous faites référence. (Reporter l'AOT, peut-être ?)

@chucker Toutes les décisions qui ont brûlé les développeurs qui utilisent la technologie basée sur .NET depuis l'introduction d'UWP, suivies du redémarrage de .NET Core.

Pour les développeurs polyglottes, .NET n'est pas la seule technologie que nous recherchons, juste une autre option parmi tant d'autres, donc si la direction de Microsoft décide de pousser les éléments de la feuille de route, comme la compilation AOT, vers un avenir incertain, alors nous devons réévaluer notre entreprise décisions en conséquence, juste au cas où le support AOT WebAssembly n'arriverait jamais, malgré le travail incroyable effectué par Daniel et l'équipe.

On dirait que WebAssembly AOT est reporté à la version 6.0 (novembre 2021).
https://github.com/dotnet/runtime/issues/38367#issuecomment -651117373

@Sherweeen, nous

Le côté serveur de Blazor fait-il partie de .Net 5 et est-il mis à jour ?

Le côté serveur de Blazor fait-il partie de .Net 5 et est-il mis à jour ?

@ mg1357 , oui, cela fait partie de .NET 5 et il reçoit toutes les mises à jour du modèle de composant.

Dans l'un des récents standups de la communauté, un stagiaire a fait une démonstration de certaines capacités de virtualisation qui, espérons-le, allaient atterrir dans le candidat asp.net core 5.0 RC. Est-ce toujours le cas? Existe-t-il un problème pouvant être suivi pour cette fonctionnalité ?

Salut, j'ai vu que le #23560 était fermé, cela signifie-t-il que nous obtenons un isolement JS, ou est-ce quelque chose qui ne sera pas couvert ?

PD : je ne le vois pas dans la feuille de route c'est pour ça que je demande

@barahonajm - Je pense qu'il est un pari sûr qu'il a été achevé et vient en 5.0.0 RC-1 puisque cette question a à la fois le Done étiquette et 5.0.0-rc1 étape;)

@barahonajm Yup, l'isolation JS via les modules ES6 sera disponible dans la prochaine version .NET 5 RC1 : tada:.

Une mise à jour sur WASM AOT ?

Existe-t-il une feuille de route pour .NET 6 ? Si c'est le cas, merci de donner un lien

@ivanivanyuk1993 Pas encore. Nous terminons toujours .NET 5 et commençons tout juste la planification de .NET 6.

Où puis-je voir les documents aujourd'hui pour :

  • Isolement CSS
  • Stockage de navigateur protégé

@VictorioBerra Les documents officiels sont toujours en cours, mais vous pouvez en savoir plus sur ces nouvelles fonctionnalités ici : https://devblogs.microsoft.com/aspnet/asp-net-core-updates-in-net-5-preview- 8/

Cette page vous a été utile?
0 / 5 - 0 notes