Downloads 17.06.2019, 00:00 Uhr

WebAssembly und Klassengenerator

Sie erhalten Tools für WebAssemblies, und Quicktype macht aus JSON wunderbare C#-Klassen.
(Quelle: dotnetpro)
Da war es wieder, das Problem: eine dicke, fette JSON-Datei von einem Kunden. Und nein, nicht eine JSON-Datei eines dicken, fetten Kunden. Daten dieser JSON-Struktur sollen in C#-Objekte deserialisiert werden, um die ­Daten dann weiterverarbeiten zu können. Nichts leichter als das.
Schwerpunkt
WasmWinforms
Mit Wasm.Winforms können Sie Ihre WinForms-Formulare im Browser ausführen.
https://github.com/roozbehid/WasmWinforms
WebAssembly für .NET
Diese Library kann WebAssembly-Dateien aus .NET-basierten Applikationen erstellen, lesen, modifizieren, schreiben und ausführen. Bei der Ausführung wird kein Interpreter verwendet.
https://github.com/RyanLamansky/dotnet-webassembly
wasm2cil
Wasm2cil ist ein .NET-Compiler für WebAssembly-Module, einschließlich Support für WASI. Es kann ein WebAssembly-Modul in eine .NET-Assembly auf Disk übersetzen. Die resultierende DLL ist nicht interpretiert.
https://github.com/ericsink/wasm2cil
vscode-wasm
WebAssembly Toolkit für VSCode
https://github.com/reklatsmasters/vscode-wasm
Uno.Wasm.Bootstrap
Uno.Wasm.Bootstrap bietet eine einfache Möglichkeit, eine C# .NET Standard 2.0 Library zu verpacken und sie einer kompatiblen Browserumgebung auszuführen. Es handelt sich um einen eigenständigen Mono Web Assembly (WASM) SDK Bootstrapper in Form eines Nuget-Packages.
https://github.com/nventive/Uno.Wasm.Bootstrap
Uno Quick Start
Dieses Repository ist ein Basismuster für eine Uno-Applikation für UWP, iOS, Android sowie WebAssembly. Verwenden Sie Visual Studio's UWP-Tools auf Windows, wie z.B. Xaml Edit und Continue, C# Edit und Continue, dann führen Sie Ihre App auf iOS, Android und Windows aus.
https://github.com/nventive/Uno.QuickStart
WasmLib
C#-Bibliothek zum Lesen, Ändern und Schreiben von WebAssembly-Binär-Dateien (WASM).
https://github.com/sailro/WasmLib
Uno
Die Uno Plattform ist eine Universal Windows Platform Bridge, mit deren Hilfe UWP-basierter Code auf iOS, Android sowie WebAssembly ausgeführt werden kann. Sie bietet die kompletten Definitionen des UWP Windows 10 October 2018 Updates (17763), und die Implementierung einer steigenden Anzahl an UWP APIs, wie z.B. Windows.UI.Xaml, so dass Anwendungen auf diesen Plattformen laufen können.
https://github.com/nventive/Uno
dna-redux
Ausführen von C#/F# Code in Node.js oder Browser mit WebAssembly.
https://github.com/ncave/dna-redux
WebAssembly (wasm) & Webpack Starter Projekt
Das Erstellen der WebAssembly Binary (wasm) basiert auf diesem Tutorial. Aber es werden Docker Container verwendet, um das Teilen der Compiler-Toolkette effizienter zu machen.
https://github.com/chrisber/webassembly-webpack-starter-project
Nethereum-Blazor-Wasm
Dieses Repo bietet einen Ansatzpunkt zum Testen der experimentellen .NET Wasm/Blazor Kompatibilität mit Nethereum.
https://github.com/Nethereum/Nethereum-Blazor-Wasm-test
dotWasmBenchmark
Kleiner Benchmark zum Vergleichen von .NET Core, Mono, mono-wasm und JS.
https://github.com/stefan-schweiger/dotWasmBenchmark
cs-wasm
Diese C#-Library kann binäre WebAssembly-Dateien lesen, schreiben und interpretieren. Das Lesen einer Datei in den Speicher sowie das Zurückschreiben auf Disk ist byte-für-byte equivalent zu einer einfachen Kopie.
https://github.com/jonathanvdc/cs-wasm
mono-wasm-js-bridge
Ein Tool zum Übergeben von C#-Typen, Objekten, Methoden oder Properties an JavaScript.
https://github.com/AlexusBlack/mono-wasm-js-bridge
Wasm.Samples
Eine Sammlung von Wasm-Beispielen unter Verwendung des Mono-Wasm SDK.
https://github.com/jeromelaban/Wasm.Samples




Doch halt. Bevor Sie jetzt anfangen, Properties per Hand einzutippen, sollten Sie lieber auf eines der Tools setzen, die es im Internet und auf GitHub gibt. Quicktype [1] ist ein solches Tool. Diesem Programm übergeben Sie eine JSON-Datei, und es produziert daraus ein – hm, ja was eigentlich?
Die App produziert nicht eines, nicht zwei, sondern viele mögliche Ausgabeformate. Dazu gehören Ruby, JavaScript, Flow, Rust, Kotlin, Dart, Python, C#, Go, C++, Java, Type­Script, Swift, Objective-C, Elm und JSON Schema.
Aktuelle Downloads
Azure SignalR Service SDK für .NET
Azure SignalR Service SDK für .NET hilft beim Erstellen von Azure-Anwendungen mit Echtzeit-Nachrichtenfunktion, mit dem Vorteil skalierbarer Cloud-Computing-Ressourcen.
https://github.com/Azure/azure-signalr
DotNetAutoTestExtras
DotNet-Automatisierungstest für API, Web, Mobile und Performance.
https://github.com/ParisHuang/DotNetAutoTestExtras
AspnetRun
Diese ASP.NET-Core-Referenzanwendung mit Entity Framework Core zeigt eine Anwendungsarchitektur mit DDD Best-Practices. Sie implementiert NLayer Hexagonal Architektur (Core, Application, Infrastructure and Presentation Layers) und Domain Driven Design (Entities, Repositories, Domain/Application Services, DTO's...).
https://github.com/aspnetrun/run-aspnetcore
HarmonyCore
Harmony Core ist ein Framework, das aus Libraries, CodeGen Templates und Konventionen besteht, mit deren Hilfe Sie Synergy-Logik und -Daten als RESTful-Webdienst verfügbar machen können unter Verwendung von OData und ASP.NET Core.
https://github.com/Synergex/HarmonyCore
Avalonia
Avalonia ist ein von WPF inspiriertes plattformübergreifendes XAML-basiertes UI-Framework, welches ein flexibles Styling-System bietet und eine Vielzahl von Betriebssystemen unterstützt: Windows (.NET Framework, .NET Core), Linux (GTK), MacOS, Android und iOS.
https://github.com/AvaloniaUI/Avalonia
ADN.Extensions
ADN.Extensions ist eine plattformübergreifende Open-Source-Bibliothek, die .NET-Entwicklern Erweiterungsmethoden zum Beispiel für Arrays oder Strings bietet.
https://github.com/andresdigiovanni/ADN.Extensions
DocFX
Mit DocFX können Sie ganz einfach Ihren Entwickler-Hub mit API-Referenz, Zielseite und Anleitungen erstellen.
https://github.com/dotnet/docfx
FastData.Core
.NET Core ORM (DB first, Code first,code frist) für SQL Server, MySql etc.
https://github.com/weizhonzhen/FastData.Core
ZKWeb
Ein flexibles Web-Framework für .NET Framework und .NET Core, das unter anderem ein Plug-in-System, ein MVC Framework und ein Template-System bietet.
https://github.com/zkweb-framework/ZKWeb
core-setup
Dieses Repository enthält den Code zum Erstellen der .NET Core Runtime, Libraries und Shared-Host Installationsprogramme für alle unterstützten Plattformen.
https://github.com/dotnet/core-setup
.NET Command Line Interface
Dieses Repository enthält den Quellcode für die plattformübergreifende .NET-Core-Befehlszeilen-Tools. Sie beinhaltet die Implementierung jedes Befehls sowie die Dokumentation.
https://github.com/dotnet/cli
TypeKitchen
TypeKitchen ist eine kleine Library für schnelle Meta-Programmierung in .NET.
https://github.com/blowdart-inc/TypeKitchen
DotNetToolkit.Repository
Eine Abstraktion des Datenlayers und Handling gängiger Datenzugangsfunktionalität.
https://github.com/johelvisguzman/DotNetToolkit.Repository
TagHelperPack
Eine Reihe nützlicher und möglicherweise kritischer Tag-Helfer für ASP.NET Core.
https://github.com/DamianEdwards/TagHelperPack
Langlib
LangLib ist eine Softwarebibliothek zur Lokalisierung von .NET-Anwendungen (WinForms und WPF). Die Lokalisierungsdaten werden in einer der folgenden Datenbanken gespeichert: SQLite, MySQL, PostgreSQL- oder Microsoft SQL Server.
https://github.com/VPKSoft/Langlib
Situational Awareness Tool
Dieses C#-Tool verwendet .NET zum Sammeln von interessanten Anfangsdaten und situationsbezogenen Informationen eines Windows Hosts, auf den ein Angreifer zugreifen will. Dieses Tool kann direkt auf dem Host (ex: via RDP) oder remote über Angriffstools (ex: Cobalt Strike's execute-assembly) ausgeführt werden.
https://github.com/cedowens/SituationalAwarenessTool
Peasy.NET
Dieses middle-tier Framework enthält Code, der das Erstellen von Business-Logik vereinfacht.
https://github.com/peasy/Peasy.NET
GMap.NET
GMap.NET ist ein leistungsstarkes, freies, plattformübergreifendes Open-Source .NET-Control. Es ermöglicht die Verwendung von Routing, Geocodierung, Richtungen und Karten aus Google, Bing, Yahoo, OpenStreetMap, ArcGIS, etc.
https://github.com/judero01col/GMap.NET
csharpmvc
Ein einfaches WinForms MVC .NET Framework, das den Erstellungsprozess von Anwendungen vereinfacht.
https://github.com/hsnmtw/csharpmvc
NUnitPlatformTests
Einfaches Unit-Test-Projekt zum Testen verschiedener Plattformen wie .NET Core.
https://github.com/rprouse/NUnitPlatformTests
Sie landen also mit Quicktype nicht in einer Sackgasse, sondern sind flexibel. Da der Quellcode zudem auf GitHub zur Verfügung steht, können Sie ihn bei Bedarf auch an weitere Sprachen anpassen.
Wenn Sie das Tool aber nicht häufiger einsetzen, sondern nur gelegentlich eine Klassenstruktur für eine JSON-Datei benötigen, können Sie die Umwandlung auch online auf einer Website vollziehen.
Unter [2] geben Sie dazu in der linken Spalte den Quelltext des JSON ein oder kopieren ihn per Copy-and-paste hinein. Innerhalb von Sekunden erscheint dann in der rechten Spalte der Quellcode für die Klassen in der ausgewählten Sprache. Gesetzt den Fall, Ihr JSON lautet folgendermaßen:
{
  "rohkost": {
    "gemüse" : [
      "Sellerie"
    ],
    "obst" : [
      "Apfel"
    ]
  }
}
Dann wird mit Quicktype daraus beispielsweise:

public partial class VegetarischesEssen
{
  [JsonProperty("rohkost")]
  public Rohkost Rohkost { get; set; }
}
public partial class Rohkost
{
  [JsonProperty("gemüse")]
  public string[] Gemüse { get; set; }
  [JsonProperty("obst")]
  public string[] Obst { get; set; }
}
Dokumente
Artikel als PDF herunterladen
Fußnoten
  1. https://github.com/quicktype/quicktype
  2. https://app.quicktype.io/ ausprobieren.


    Das könnte Sie auch interessieren