Blazor 0.8.0 experimentelle Version jetzt verfügbar

Blazor 0.8.0 ist jetzt verfügbar! Diese Version aktualisiert Blazor für die Verwendung von Razor-Komponenten in .NET Core 3.0 und fügt einige wichtige Fehlerkorrekturen hinzu.


Holen Sie sich Blazor 0.8.0


Um mit Blazor 0.8.0 zu beginnen, installieren Sie Folgendes:


  1. .NET Core 3.0 Preview 2 SDK (3.0.100-Vorschau-010184)
  2. Visual Studio 2019 (Vorschau 2 oder höher) mit ausgewähltem ASP.NET- und Webentwicklungs- Workload.
  3. Die neueste Blazor- Erweiterung vom Visual Studio Marketplace.
  4. Die Blazor-Vorlagen in der Befehlszeile:


    dotnet new -i Microsoft.AspNetCore.Blazor.Templates::0.8.0-preview-19104-04 

Anweisungen, Dokumente und Tutorials für Blazor finden Sie unter https://blazor.net .


Upgrade auf Blazor 0.8.0


Um Ihre vorhandenen Blazor-Apps auf Blazor 0.8.0 zu aktualisieren, stellen Sie zunächst sicher, dass Sie die oben aufgeführten Voraussetzungen installiert haben.


So aktualisieren Sie ein eigenständiges Blazor 0.7.0-Projekt auf 0.8.0:


  • Aktualisieren Sie die Blazor-Pakete und die Verweise auf das .NET CLI-Tool auf 0.8.0-Preview-19104-04.
  • Ersetzen Sie alle Paketverweise auf Microsoft.AspNetCore.Blazor.
  • Ersetzen Sie BlazorComponent durch ComponentBase .
  • Aktualisieren Sie die Überschreibungen von SetParameters für Komponenten, um stattdessen SetParameters zu überschreiben.
  • Ersetzen Sie BlazorLayoutComponent durch LayoutComponentBase
  • Ersetzen Sie IBlazorApplicationBuilder durch IComponentsApplicationBuilder .
  • Ersetzen Sie alle using-Anweisungen für Microsoft.AspNetCore.Blazor.* Mit Microsoft.AspNetCore.Components.* Lassen Sie Microsoft.AspNetCore.Blazor.Hosting in Program.cs
  • Aktualisieren Sie in index.html die Skriptreferenz auf die Referenzkomponenten.webassembly.js anstelle von blazor.webassembly.js

So aktualisieren Sie eine von ASP.NET Core gehostete Blazor-App auf 0.8.0:


  • Aktualisieren Sie das clientseitige Blazor-Projekt wie zuvor beschrieben.
  • Aktualisieren Sie die ASP.NET Core-App, in der sich die Blazor-App befindet, auf .NET Core 3.0, indem Sie die Migrationsschritte in den ASP.NET Core-Dokumenten ausführen .
    • Aktualisieren Sie das netcoreapp3.0 auf netcoreapp3.0
    • Entfernen Sie alle Paketverweise auf Microsoft.AspNetCore.App oder Microsoft.AspNetCore.All
    • Aktualisieren Sie Microsoft.AspNetCore, das nicht von Blazor stammt. * Paketverweise auf Version 3.0.0-Preview-19075-0444
    • Entfernen Sie alle Paketverweise auf Microsoft.AspNetCore.Razor.Design
    • Um die JSON-Unterstützung zu aktivieren, fügen Sie einen Paketverweis auf Microsoft.AspNetCore.Mvc.NewtonsoftJson hinzu und aktualisieren Sie Startup.ConfigureServices , um services.AddMvc().AddNewtonsoftJson()
  • Aktualisieren Sie den Microsoft.AspNetCore.Blazor.Server-Paketverweis auf 0.8.0-Preview-19104-04
  • Fügen Sie einen Paketverweis auf Microsoft.AspNetCore.Components.Server hinzu
  • In Startup.ConfigureServices vereinfachen Sie jeden Aufruf von app.AddResponseCompression , um die Standardüberladung app.AddResponseCompression , ohne WebAssembly oder Binärdaten als zusätzliche zu komprimierende MIME-Typen anzugeben.
  • app.UseBlazorDebugging() in Startup.Configure einen Aufruf von app.UseBlazorDebugging() nach dem vorhandenen Aufruf von app.UseBlazor<App.Startup>()
  • Entfernen Sie unnötige Verwendung des Microsoft.AspNetCore.Blazor.Server Namespace.

So aktualisieren Sie eine Blazor-Klassenbibliothek auf 0.8.0:


  • Ersetzen Sie die Paketverweise auf Microsoft.AspNetCore.Components.Browser und Microsoft.AspNetCore.Components.Build und aktualisieren Sie die Versionen auf 3.0.0-Preview-19075 -0444.
  • Ändern Sie in der Projektdatei für die Bibliothek das Projekt-SDK von "Microsoft.NET.Sdk.Web" in "Microsoft.NET.Sdk.Razor".

Serverseitiger Blazor ist jetzt ASP.NET Core Razor Components in .NET Core 3.0


Wie kürzlich angekündigt , wird serverseitiges Blazor jetzt als ASP.NET Core Razor-Komponenten in .NET Core 3.0 ausgeliefert. Wir haben das Blazor-Komponentenmodell in ASP.NET Core 3.0 integriert und in Razor Components umbenannt. Blazor 0.8.0 basiert jetzt auf Razor Components und ermöglicht es Ihnen, Razor Components im Browser von WebAssembly zu hosten.


Aktualisieren Sie ein serverseitiges Blazor-Projekt auf ASP.NET Core Razor-Komponenten in .NET Core 3.0


Wenn Sie mit serverseitigem Blazor gearbeitet haben, empfehlen wir ein Upgrade auf die Verwendung von ASP.NET Core Razor-Komponenten in .NET Core 3.0.


So aktualisieren Sie eine serverseitige Blazor-App auf ASP.NET Core Razor-Komponenten:


  • Aktualisieren Sie das clientseitige Blazor-Projekt wie zuvor beschrieben, ersetzen Sie jedoch den Skriptverweis auf blazor.server.js durch components.server.js
  • Aktualisieren Sie die ASP.NET Core-App, in der sich die Razor-Komponenten befinden, wie zuvor beschrieben auf .NET Core 3.0.
  • Im Serverprojekt:
    • Aktualisieren Sie den Microsoft.AspNetCore.Blazor.Server-Paketverweis auf 0.8.0-Preview-19104-04
    • Fügen Sie einen Paketverweis auf Microsoft.AspNetCore.Components.Server Version 3.0.0-Preview-19075-0444 hinzu
    • Ersetzen Sie die using-Anweisung für Microsoft.AspNetCore.Blazor.Server durch Microsoft.AspNetCore.Components.Server
    • Ersetzen Sie services.AddServerSideBlazor durch services.AddRazorComponents und app.UseServerSideBlazor durch app.UseRazorComponents .
    • app.UseStaticFiles() in der Startup.Configure Methode app.UseStaticFiles() unmittelbar vor dem Aufruf von app.UseRazorComponents .
    • Verschieben Sie den Ordner wwwroot aus dem Blazor-App-Projekt in das ASP.NET Core-Serverprojekt

Wechseln zwischen ASP.NET Core Razor-Komponenten und clientseitigem Blazor


Manchmal ist es praktisch, zwischen der Ausführung Ihrer Razor-Komponenten auf dem Server (ASP.NET Core Razor Components) und auf dem Client (Blazor) zu wechseln. Beispielsweise können Sie während der Entwicklung auf dem Server ausgeführt werden, damit Sie problemlos debuggen können, aber dann Ihre App veröffentlichen, um sie auf dem Client auszuführen.


So aktualisieren Sie eine von ASP.NET Core gehostete Blazor-App, damit sie als ASP.NET Core Razor Components-App ausgeführt werden kann:


  • Verschieben Sie den Ordner wwwroot vom clientseitigen Blazor-Projekt in das ASP.NET Core-Serverprojekt.
  • Im Serverprojekt:
    • Aktualisieren Sie das Skript-Tag in index.html so , dass es auf components.server.js anstelle von components.webassembly.js verweist .
    • Fügen Sie services.AddRazorComponents<Client.Startup>() in der Startup.ConfigureServices Methode einen Aufruf hinzu.
    • Fügen Sie vor dem Aufruf von app.UseStaticFiles() einen Aufruf von app.UseStaticFiles() in der Startup.Configure Methode UseMvc .
    • Ersetzen Sie den Aufruf von UseBlazor durch app.UseRazorComponents<Client.Startup>()

  • Wenn Sie die Abhängigkeitsinjektion verwenden, um einen HttpClient in Ihre Komponenten zu injizieren, müssen Sie einen HttpClient als Dienst in die Startup.ConfigureServices Methode Ihres Servers Startup.ConfigureServices .

Das Tooling für Blazor-Projekte ist jetzt in Visual Studio 2019 enthalten


Zuvor mussten Sie die Blazor-Erweiterung für Visual Studio installieren, um Tooling-Unterstützung für Blazor-Projekte zu erhalten. Ab Visual Studio 2019 Preview 2 ist die Tool-Unterstützung für Razor Components (und damit für Blazor-Apps) bereits enthalten, ohne dass weitere Installationen erforderlich sind. Die Blazor-Erweiterung wird jetzt nur noch zum Installieren der Blazor-Projektvorlagen in Visual Studio benötigt.


Laufzeitverbesserungen


Blazor 0.8.0 enthält einige .NET-Laufzeitverbesserungen wie eine verbesserte Laufzeitleistung in Chrome und einen verbesserten IL-Linker. In unseren Leistungsbenchmarks ist die Leistung von Blazor 0.8.0 in Chrome jetzt etwa 25% schneller. Sie können jetzt auch auf vorhandene Bibliotheken wie Json.NET aus einer Blazor-App ohne zusätzliche Linkerkonfiguration verweisen:


 @functions { WeatherForecast[] forecasts; protected override async Task OnInitAsync() { var json = await Http.GetStringAsync("api/SampleData/WeatherForecasts"); forecasts = Newtonsoft.Json.JsonConvert.DeserializeObject<WeatherForecast[]>(json); } } 

Bekannte Probleme


Es gibt einige bekannte Probleme mit dieser Version, auf die Sie möglicherweise stoßen:


  • "Es konnte keine kompatible Framework-Version gefunden werden. Das angegebene Framework 'Microsoft.NETCore.App', Version '2.0.0' wurde nicht gefunden. ” : Möglicherweise wird dieser Fehler beim Erstellen einer Blazor-App angezeigt, da für die Ausführung des IL-Linkers derzeit .NET Core 2.x erforderlich ist. Um dieses Problem zu <BlazorLinkOnBuild>false</BlazorLinkOnBuild> , installieren Sie entweder .NET Core 2.2 oder deaktivieren Sie die IL-Verknüpfung, indem Sie die <BlazorLinkOnBuild>false</BlazorLinkOnBuild> in Ihrer Projektdatei <BlazorLinkOnBuild>false</BlazorLinkOnBuild> .
  • "Deps.json kann nicht generiert werden. Möglicherweise wurde es bereits generiert." : Möglicherweise wird dieser Fehler angezeigt, wenn Sie eine eigenständige Blazor-App ausführen und noch keine Pakete für .NET Core-Apps wiederhergestellt haben. Um dieses Problem zu dotnet new console erstellen Sie eine beliebige .NET Core-App (ex dotnet new console ) und führen Sie die Blazor-App erneut aus.

Diese Probleme werden in einem zukünftigen Blazor-Update behoben.


Zukünftige Updates


Diese Version von Blazor konzentrierte sich hauptsächlich darauf, zuerst Razor Components in ASP.NET Core 3.0 zu integrieren und Blazor darüber hinaus neu zu erstellen. In Zukunft planen wir, Blazor-Updates mit jedem .NET Core 3.0-Update zu liefern.


Blazor und die Unterstützung für die Ausführung von Razor Components auf WebAssembly im Browser werden nicht mit .NET Core 3.0 ausgeliefert, aber wir arbeiten weiter daran, Blazor zu einem späteren Zeitpunkt zu liefern.


Feedback geben


Wir wünschen Ihnen viel Spaß mit dieser neuesten Vorschau von Blazor. Wie bei früheren Versionen ist uns Ihr Feedback wichtig. Wenn Sie beim Ausprobieren von Blazor auf Probleme stoßen oder Fragen haben, legen Sie Probleme auf GitHub ab . Sie können auch mit uns und der Blazor-Community auf Gitter chatten, wenn Sie nicht weiterkommen oder mitteilen, wie Blazor für Sie arbeitet. Nachdem Sie Blazor eine Weile ausprobiert haben, teilen Sie uns bitte Ihre Meinung mit, indem Sie an unserer In-Product-Umfrage teilnehmen. Klicken Sie auf den Umfragelink auf der App-Startseite, wenn Sie eine der Blazor-Projektvorlagen ausführen:


Blazor Umfrage


Danke, dass du Blazor ausprobiert hast!

Source: https://habr.com/ru/post/de440544/


All Articles