Slide 1

Slide 1 text

SPAs & APIs mal anders: gRPC Code-First mit Blazor WebAssembly & ASP.NET Core 7 Patrick Jahr @jahr_patrick Developer Consultant

Slide 2

Slide 2 text

Hello, it’s me. Patrick Jahr Developer Consultant @ Thinktecture AG E-Mail: [email protected] Twitter: @jahr_patrick Slides: https://thinktecture.com/patrick-jahr SPAs & APIs mal anders: gRPC Code-First mit Blazor WebAssembly & ASP.NET Core 7 Patrick Jahr P

Slide 3

Slide 3 text

Warum gRPC bzw. gRPC-Web? Contract First vs Code First Single Point of Interface Vom Backend zur SPA Resumé SPAs & APIs mal anders: gRPC Code-First mit Blazor WebAssembly & ASP.NET Core 7

Slide 4

Slide 4 text

• Typsicherheit und Codegenerierung • Schnittstellendefinition mit Protocol Buffers (ProtoBuf) • Codegenerierung für sowohl den Client- als auch den Servercode • Performante Serialisierung der Daten • Deserialisierung erfolgt etwa 2-3 Mal schneller als mit JSON. • Bidirektionale Streaming-Kommunikation • (Client) und Server-Streaming • Unterstützung für Webanwendungen durch gRPC-Web • .NET, Java, Python, Go und viele weitere SPAs & APIs mal anders: gRPC Code-First mit Blazor WebAssembly & ASP.NET Core 7 Warum gRPC bzw. gRPC-Web?

Slide 5

Slide 5 text

SPAs & APIs mal anders: gRPC Code-First mit Blazor WebAssembly & ASP.NET Core 7

Slide 6

Slide 6 text

Warum gRPC bzw. gRPC-Web? Contract First vs Code First Single Point of Interface Vom Backend zur SPA Resumé SPAs & APIs mal anders: gRPC Code-First mit Blazor WebAssembly & ASP.NET Core 7

Slide 7

Slide 7 text

Contract First • Service Schnittstellen mit Hilfe von .proto Dateien erstellen • Plattform- und Programmiersprachenunabhängig • Definieren von: • message-Objekten (Models) • service-Objecten (Services) • Code generation via MSBuild Task • Erstellt Server und Client Code SPAs & APIs mal anders: gRPC Code-First mit Blazor WebAssembly & ASP.NET Core 7 Contract First vs. Code First

Slide 8

Slide 8 text

Contract First – Service Sample SPAs & APIs mal anders: gRPC Code-First mit Blazor WebAssembly & ASP.NET Core 7 Contract First vs. Code First

Slide 9

Slide 9 text

Contract First – Model Sample SPAs & APIs mal anders: gRPC Code-First mit Blazor WebAssembly & ASP.NET Core 7 Contract First vs. Code First

Slide 10

Slide 10 text

Code First • NuGet Package: protobuf-net.Grpc • Entwickelt von Marc Gravell • Statt service- und message-Objekte, direkt im .NET-Code definieren • Streng typisierte .NET-Klassen sowohl im Backend als auch im Frontend • Code Sharing SPAs & APIs mal anders: gRPC Code-First mit Blazor WebAssembly & ASP.NET Core 7 Contract First vs. Code First

Slide 11

Slide 11 text

Warum gRPC bzw. gRPC-Web? Contract First vs Code First Single Point of Interface Vom Backend zur SPA Resumé SPAs & APIs mal anders: gRPC Code-First mit Blazor WebAssembly & ASP.NET Core 7

Slide 12

Slide 12 text

• Definieren eines Interface in einer Shared Library • Implementierung wird Serverseitig durchgeführt • Client nutzt lediglich das Interface, um mit dem Server zu kommunizieren Vom Backend bis zum Frontend mit nur einem Interface SPAs & APIs mal anders: gRPC Code-First mit Blazor WebAssembly & ASP.NET Core 7 Single Point of Interface

Slide 13

Slide 13 text

SPAs & APIs mal anders: gRPC Code-First mit Blazor WebAssembly & ASP.NET Core 7 Single Point of Interface

Slide 14

Slide 14 text

Warum gRPC bzw. gRPC-Web? Contract First vs Code First Single Point of Interface Vom Backend zur SPA Resumé SPAs & APIs mal anders: gRPC Code-First mit Blazor WebAssembly & ASP.NET Core 7

Slide 15

Slide 15 text

1. Server startet gRPC-Server um Clientaufrufe zu verarbeiten 2. Client enthält einen Stub, der dieselben Methoden wie der Server bereitstellt 3. gRPC-Stub sendet Proto- Anforderung(en) an den gRPC-Server und dieser gibt die Proto-Antwort(en) zurück SPAs & APIs mal anders: gRPC Code-First mit Blazor WebAssembly & ASP.NET Core 7 Vom Backend zur SPA 1 2 2 3

Slide 16

Slide 16 text

SPAs & APIs mal anders: gRPC Code-First mit Blazor WebAssembly & ASP.NET Core 7 LET`S CODE

Slide 17

Slide 17 text

Warum gRPC bzw. gRPC-Web? Contract First vs Code First Single Point of Interface Vom Backend zur SPA Resumé SPAs & APIs mal anders: gRPC Code-First mit Blazor WebAssembly & ASP.NET Core 7

Slide 18

Slide 18 text

- Höhere Performance bei der Deserialisierung als mit JSON - frühzeitige Fehlererkennung während der Kompilierung - Bessere IntelliSense-Unterstützung - Code Sharing - Server-Streaming SPAs & APIs mal anders: gRPC Code-First mit Blazor WebAssembly & ASP.NET Core 7 Resumé

Slide 19

Slide 19 text

Vielen Dank für Ihre Aufmerksamkeit! Patrick Jahr @jahr_patrick [email protected]