Aspnetcore: Blazor-Roadmap für .NET 5

Erstellt am 5. Mai 2020  ·  38Kommentare  ·  Quelle: dotnet/aspnetcore

In diesem Problem werden die großen Ergebnisse aufgelistet, die das Blazor-Team für die Veröffentlichung von ASP.NET Core 5.0 in Betracht zieht. Obwohl wir hoffen, all diese Probleme zu lösen, gibt es noch viele Unbekannte und die Dinge werden sich im Laufe der Zeit ändern. Bitte beachten Sie, dass dies die Hauptinvestitionsbereiche sind und parallel dazu daran gearbeitet wird, viele kleinere Korrekturen und Verbesserungen einzubringen, einschließlich Community-Beiträgen.

Vorschau 7

  • [x] [Blazor nach .NET 5] verschieben (https://github.com/dotnet/aspnetcore/issues/20519)

Vorschau 8

  • [x] [CSS-Isolierung](https://github.com/dotnet/aspnetcore/issues/10170)
  • [x] [Unterstützung von IAsyncDisposable](https://github.com/dotnet/aspnetcore/issues/9960)
  • [x] [Lazy Loading von Anwendungsbereichen](https://github.com/dotnet/aspnetcore/issues/5465)
  • [x] [Fokusunterstützung zum BrowserRenderer hinzufügen](https://github.com/dotnet/aspnetcore/issues/17472)
  • [x] [Geschützter Browserspeicher](https://github.com/dotnet/aspnetcore/issues/18755)

RC1

  • [x] [Blazor-Leistungsoptimierungen](https://github.com/dotnet/aspnetcore/issues/22432)
  • [x] [Virtualisierung](https://github.com/dotnet/aspnetcore/issues/23092)
  • [x] [Wie man Dateien in der Blazor App hochlädt](https://github.com/dotnet/aspnetcore/issues/12205)
  • [x] [JS-Isolation und JSObjectReference](https://github.com/dotnet/aspnetcore/issues/23560)
  • [x] [Blazor WebAssembly-Prerendering](https://github.com/dotnet/aspnetcore/issues/24098)

    Mögliche Kürzungen

  • [ ] [Drag & Drop](https://github.com/dotnet/aspnetcore/issues/18754)

  • [ ] [Tooling-Unterstützung für erforderliche Komponentenparameter hinzufügen](https://github.com/dotnet/aspnetcore/issues/25055)

  • [ ] [Leistungsverbesserungen für Blazor erstellen](https://github.com/dotnet/aspnetcore/issues/22566)
  • [ ] [Erforderliche Parameter für Blazor-Komponenten (Laufzeitprüfung)](https://github.com/dotnet/aspnetcore/issues/11815)
  • [ ] [Allgemeine Typeinschränkungen zulassen](https://github.com/dotnet/aspnetcore/issues/8433)
  • [ ] [AoT-Kompilierung](https://github.com/dotnet/aspnetcore/issues/5466)
  • [ ] [SVG-Unterstützung in Blazor](https://github.com/dotnet/aspnetcore/issues/18271)
  • [ ] [Unterstützen Sie mehrere Ereignishandler für dasselbe Ereignis im selben Element](https://github.com/dotnet/aspnetcore/issues/14365)
  • [ ] [Hierarchie der übergeordneten und untergeordneten Komponenten in Blazor einschränken](https://github.com/dotnet/aspnetcore/issues/12302)
  • [ ] [Fügen Sie die Möglichkeit hinzu, @typeparam an weiterzugeben ](https://github.com/dotnet/aspnetcore/issues/7268)
Done area-blazor roadmap

Hilfreichster Kommentar

@ pjmlp Deine Kritik ist nicht unbegründet, aber komm schon... Blazor (und WebAssembly im Allgemeinen) ist die überraschendste, aufregendste und beeindruckendste Entwicklung in der Web-Technologie - seit MINDESTENS 20 Jahren! Roth, Sanderson und Freunde verdienen unser Lob dafür, dass Webentwicklung wieder Spaß macht.

Und um unsere Beschäftigungsfähigkeit auf magische Weise zu verbessern, ohne etwas Neues zu lernen ... denken Sie eine Sekunde darüber nach!

Und denken Sie an unsere .NET-Kollegen, die noch nie SPAs (angular/react/vue) gemacht haben - die aspnet-Gang schwenkte nur ihren Zauberstab und verwandelte sie von "Backend-Entwicklern" zu "Fullstack-Entwicklern". Einfach so... Magie.


Übrigens: Sehr glückliche CSS-Isolation ist geplant. Aber bitte(!) fügen Sie auch die js-Isolation hinzu . UI-Komponenten, die auf js-Bibliotheken (zB Bootstrap) angewiesen sind, sollten in der Lage sein, CSS UND js innerhalb der Komponente zu deklarieren/zu verwenden - sonst wird das Projekt schwer zu warten.

Alle 38 Kommentare

Der Link zu Required parameters to blazor components weist auf ein falsches Problem hin. Ich denke, es sollte sein
https://github.com/dotnet/aspnetcore/issues/11815 ?

@JvanderStad Danke für den Hinweis! Sollte jetzt behoben sein.

Wird Blazor (Server Side) in zukünftigen Mono-Implementierungen nicht nur für die Netcore-Laufzeit verfügbar sein? Es wäre beispielsweise großartig, Blazor (und andere AspNetCore-Apps) in anderen CPU-Architekturen zu starten, in denen Mono unterstützt wird.

Los Team! Schon tolle Arbeit, hoffe es wird mit der Zeit noch besser!

Wird Blazor (Server Side) in zukünftigen Mono-Implementierungen nicht nur für die Netcore-Laufzeit verfügbar sein?

@EntityFX Wir haben keine Pläne, Blazor Server außer auf .NET Core zu unterstützen. Blazor Server basiert auf ASP.NET Core, das Teil von .NET Core ist. Wenn es Architekturen gibt, in denen .NET Core unterstützt werden soll, teilen Sie dies bitte mit, indem Sie ein Problem im Repository https://github.com/dotnet/runtime/issues öffnen.

Wird es Abwärtskompatibilität für QBasic geben? 🤪

Auf geht's Blazor 5.0! 🚀

RIPjs

Wird es Verbesserungen in der Benutzerverwaltung geben? Es fühlt sich etwas umständlich an, Benutzer zu erstellen und auf .cshtml-Seiten umzuleiten, um die Benutzer-An- und Abmeldung und die Benutzererstellung zu handhaben. Wäre toll, wenn all dies stattdessen einfach in Blazor-Komponenten verwaltet werden könnte.

@KrazyTako Wir haben keine unmittelbaren Arbeiten rund um die Benutzerverwaltung geplant, aber wir geben unser Bestes, um die Arbeit basierend auf dem Feedback von Benutzern und der Community zu priorisieren.

Ich bin ein großer Fan von Blazor WASM und habe kürzlich eine Unternehmensanwendung mit Blazor implementiert. Es gab eine enorme Funktionalität in den komponentenbasierten Funktionen, die vollständige Verwendung von C# und .Net-Code, eine großartige Erfahrung! Nach dem Laden der App mit Daten habe ich jedoch einige Probleme, hauptsächlich in Bezug auf die Leistung. dass ich jetzt zögere, ob ich fortfahren oder auf einen Leistungsschub in den kommenden Versionen warten soll:

  1. In komplexen Entitäten dauert eine Änderung in einer aktuellen Zeile des Datenrasters fast 5 Sekunden, um die Formularsteuerelemente erneut an die neue Zeile zu binden! (Ich habe das INotifyPropertyChanged-Muster in meinen Entitäten verwendet) - aber die Angular-Implementierung tut es sofort.
  2. Alle Datengitterkomponenten von Drittanbietern (zumindest die von mir getesteten) sind in einigen Funktionen irgendwie unausgereift und langsam und sehr langsam beim Laden von Daten und beim Bearbeiten in der Zelle, was ein herausragendes Merkmal in Unternehmensanwendungen ist; Wenn Sie in eine Zelle klicken, dauert es ungefähr 3-4 Sekunden, bis die Textbox erscheint und sich auf die Benutzereingabe vorbereitet (Telerik, Syncfusion, ...).
  3. Letztendlich habe ich einen Benchmark erstellt und die Geschwindigkeit von Wasm Blazor und Angular für die Ausführung einer einfachen Funktion mit einer Reihe von Berechnungen verglichen (meistens steigender Wert einer formgebundenen Variablen in einigen Schleifen). Für Blazor Wasm dauerte es 2000 ms, während es für Angular nur 25 ms waren! Und das war ein tragisches Ergebnis. Über 80x langsamer! (Alle Tests wurden mit der aktuellen offiziellen Blazor Webassembly-Version neu durchgeführt)

Ich habe gehört, dass wir mit der AoT-Funktion nur einen 5-fachen Leistungsgewinn erzielen und das sogar mit dem Mehraufwand der App-Größe.

Bitte helfen Sie uns und sagen Sie, ob wir in diesen Ausgaben gute Neuigkeiten in den kommenden Versionen von .Net 5 oder 6 haben könnten?
Vielen Dank

_Offtopic_

Wird es Abwärtskompatibilität für QBasic geben? 🤪

Auf geht's Blazor 5.0! 🚀

RIPjs

Sie können eine Pull-Anfrage für https://github.com/microsoft/GW-BASIC senden

@Sherweeen Wir arbeiten an verschiedenen Verbesserungen der Laufzeitleistung für Blazor WebAssembly in .NET 5. Blazor WebAssembly läuft derzeit auf einer interpreterbasierten Laufzeit, die bekannte Leistungseinschränkungen aufweist, an deren Behebung wir arbeiten. Wir arbeiten auch mit verschiedenen Komponentenanbietern zusammen, um die Effizienz ihrer Komponentenimplementierungen zu verbessern.

@danroth27
Ich freue mich darauf, dass die Unterstützung der Richtlinie 5607 aufgenommen wird

Derzeit wird ein großer Teil der Benutzer, die die Blazor-Webassembly übernehmen möchten, von den ursprünglichen WinForm-, WPF- oder React-, Angle-, Vue-Entwicklern übernommen, und viele der entwickelten Produkte sind Unternehmensanwendungen. Wenn eine Reihe von Multi-Tenant-Benutzerverwaltungs-, Registrierungs-, Login- und anderen Sicherheitsverwaltungsmechanismen "out of the box" sein können, wird dies die Anwendung von blazor webaeembly erheblich beschleunigen.

@199621616 Meinst du so etwas wie Azure B2C?

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

@stephenstroud

Obwohl ich für meine wasm-App eine Azure-Authentifizierung erreichen konnte, ist sie nicht wie für Server Blazor in der wasm-Vorlage enthalten. Vielleicht wird dies erwähnt, um die Einrichtung für ein neues Projekt zu vereinfachen?

@PylotLight Die Blazor WebAssembly-Vorlage unterstützt die Verwendung von Azure AD oder Azure AD B2C , aber die Optionen sind derzeit nur über die Befehlszeile verfügbar, nicht über VS. VS sollte diese Optionen in einem zukünftigen Update aktivieren.

@PylotLight Sie können einige Informationen dazu in Ausgabe #21671 sehen. Der aktuelle Prozess zum Implementieren von etwas wie Azure AD B2C in Blazor Web Assembly ist ein ziemlicher Prozess. Hoffentlich werden die genannten Updates diesen Prozess verbessern.

@lzinga , @danroth27 Danke für die Info aber das stört mich nicht :P
Ich habe nur versucht zu erklären, was der Typ oben gefragt hat. Natürlich wäre es toll zu sehen, dass diese Funktionalität in den Standardvorlagen enthalten ist =].

@danroth27 Obwohl ich die

@ pjmlp Deine Kritik ist nicht unbegründet, aber komm schon... Blazor (und WebAssembly im Allgemeinen) ist die überraschendste, aufregendste und beeindruckendste Entwicklung in der Web-Technologie - seit MINDESTENS 20 Jahren! Roth, Sanderson und Freunde verdienen unser Lob dafür, dass Webentwicklung wieder Spaß macht.

Und um unsere Beschäftigungsfähigkeit auf magische Weise zu verbessern, ohne etwas Neues zu lernen ... denken Sie eine Sekunde darüber nach!

Und denken Sie an unsere .NET-Kollegen, die noch nie SPAs (angular/react/vue) gemacht haben - die aspnet-Gang schwenkte nur ihren Zauberstab und verwandelte sie von "Backend-Entwicklern" zu "Fullstack-Entwicklern". Einfach so... Magie.


Übrigens: Sehr glückliche CSS-Isolation ist geplant. Aber bitte(!) fügen Sie auch die js-Isolation hinzu . UI-Komponenten, die auf js-Bibliotheken (zB Bootstrap) angewiesen sind, sollten in der Lage sein, CSS UND js innerhalb der Komponente zu deklarieren/zu verwenden - sonst wird das Projekt schwer zu warten.

@lonix1 Ich habe erwähnt, dass ich die Gründe für die Änderung verstehe.

Allerdings wollte ich auch die Botschaft weitergeben, dass nicht alle mit den laufenden Veränderungen der letzten 10 Jahre zufrieden sind, was mir durchaus bewusst ist, dass Roth, Sanderson und Freunde nicht schuld sind, aber in der Lage sind, die Botschaft weiterzugeben bis die Chaing an das Microsoft-Management.

Der Übergang von .NET Core 1.0 => .NET Core 2.0 führte zu einem Projekt für einen Kunden, der beschloss, einige kritische Dienste von .NET weg nach Java zu migrieren und sie in Linux bereitzustellen.

Wenn er glücklicher wäre, wäre er vielleicht bereit, stattdessen in .NET Core zu investieren, da es bereits für die gewünschten Dienstfunktionen geeignet war.

Also töte den Boten, wenn du willst, aber das wird die Wahrnehmung in manchen Kreisen nicht ändern.

Rosteibe ist sehr schnell
https://jetli.github.io/rust-yew-realworld-example-app/#/

Blazor ist zu langsam! zu langsam ! zu langsam !
Blazor braucht Leistung!!!

@pjmlp Ich denke, es würde helfen, wenn Sie klarstellen könnten, auf welche Entscheidung Sie sich insbesondere beziehen. (Verschieben von AOT, vielleicht?)

@chucker All die Entscheidungen, die Entwickler, die zufällig .NET-basierte Technologie verwenden, seit der Einführung von UWP verbrannt haben, gefolgt vom Neustart von .NET Core.

Für mehrsprachige Entwickler ist .NET nicht die einzige Technologie, nach der wir greifen, sondern nur eine weitere Option unter vielen. Wenn das Microsoft-Management also beschließt, Roadmap-Elemente wie die AOT-Kompilierung in eine ungewisse Zukunft zu verschieben, müssen wir unser Geschäft neu bewerten Entscheidungen entsprechend, nur für den Fall, dass der AOT-Support WebAssembly trotz der erstaunlichen Arbeit von Daniel und dem Team nie eintrifft.

Es sieht so aus, als ob WebAssembly AOT auf die Version 6.0 (November 2021) verschoben wird.
https://github.com/dotnet/runtime/issues/38367#issuecomment -65117373

@Sherweeen wir starten eine mittelgroße App und ich bin sehr besorgt über die Leistung, die du gesagt hast. Ist Ihre App wirklich datenintensiv? Oder in welchen Szenarien ist diese Leistung präsent und wie kann man es vermeiden, an diese Stelle zu gelangen? Freue mich über jeden Rat

Ist Blazor serverseitig Teil von .Net 5 und wird es aktualisiert?

Ist Blazor serverseitig Teil von .Net 5 und wird es aktualisiert?

@ mg1357 , ja, es ist Teil von .NET 5 und erhält alle Komponentenmodell-Updates.

In einem der letzten Community-Standups demonstrierte ein Praktikant einige Virtualisierungsfunktionen, die hoffentlich im asp.net Core 5.0 RC-Kandidaten landen würden. Ist das noch so? Gibt es ein Problem, das für diese Funktion verfolgt werden kann?

Hallo, ich habe gesehen, dass #23560 geschlossen wurde. Bedeutet dies, dass wir eine JS-Isolation erhalten, oder wird dies nicht abgedeckt?

PD: Ich sehe es nicht in der Roadmap, deshalb frage ich

@barahonajm - Ich denke , es ist eine sichere Wette , dass es abgeschlossen ist und kommt in 5.0.0 RC-1 , da das Problem hat sowohl die Done Label und 5.0.0-rc1 Meilenstein;)

@barahonajm Yup , die JS-Isolierung über ES6-Module wird in der kommenden .NET 5 RC1-Version verfügbar sein :

Gibt es ein Update zu WASM AOT?

Gibt es eine Roadmap für .NET 6? Wenn ja, gib bitte einen Link

@ivanivanyuk1993 Noch nicht. Wir sind immer noch dabei, .NET 5 fertigzustellen und fangen gerade mit der .NET 6-Planung an.

Wo kann ich heute Dokumente sehen für:

  • CSS-Isolierung
  • Geschützter Browserspeicher

@VictorioBerra Offizielle Dokumente sind noch in Arbeit, aber Sie können sich hier über diese neuen Funktionen https://devblogs.microsoft.com/aspnet/asp-net-core-updates-in-net-5-preview- 8/

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen