Wie funktionierts

Übergreifende Anleitungen zum Zusammenspiel der Komponenten.

Bundles

  • Bundles im Überblick JavaScript und Styles der Komponenten werden zur Laufzeit zu wenigen Dateien zusammengefasst. Dahinter steht LigerShark.WebOptimizer und ein schmaler Aufsatz in FMH.Komponente.Infrastruktur, der die Beiträge der Pakete einsammelt.
  • JavaScript einbinden Eine neue Komponente bringt ihr JavaScript über eine Klasse ins Bundle. Der Regelfall ist das Standard-Bundle fmh-scripts, das über BodyIncludes am Seitenende geladen wird.
  • SCSS einbinden Styles laufen über dieselbe Mechanik wie JavaScript, nur über die Schnittstelle IScssStyleProvider. Kompiliert wird zur Laufzeit von LigerShark.WebOptimizer.Sass.
  • Eigene Bundle-Namen und Grenzfälle Ein abweichender BundleName erzeugt einen eigenen Endpunkt. Das ist schnell gemacht — und genauso schnell übersehen, dass ihn niemand ausliefert.
  • Native ES-Module einbinden Module gehören nicht ins Bundle — NUglify versteht import/export nicht. Sie laufen deshalb über einen zweiten, bewusst schmalen Weg: den Modulkatalog. Er funktioniert wie das Bundle, nur dass er keine Datei zusammensetzt, sondern Adressen verwaltet.

Logging

  • Logging im Überblick Meldungen aus dem Browser landen im selben Serilog-Strom wie die Meldungen des Servers — dafür greifen drei Bausteine ineinander.
  • Server einrichten So ist Serilog in dieser Anwendung (FMH.Komponente.WebUI) konfiguriert — die Ausschnitte stammen unverändert aus Program.cs, appsettings.json und der Projektdatei.
  • Logging im Browser Das Modul fmh-web-log aus dem Paket Basis protokolliert aus dem Browser heraus an den Endpunkt /siwflog. Es ist über das Layout bereits eingebunden — es gibt nichts zu registrieren.
  • Blazor WASM anbinden In einer Blazor-WebAssembly-Oberfläche gibt es kein FMH-Layout und damit kein fmh-web-log. An seine Stelle tritt FMH.Komponente.Serilog.Sinks.Blazor.WASM — ein Serilog-Sink, der im Browser läuft und an denselben Endpunkt sendet.