Die Änderungen umfassen das Hinzufügen von neuen `.resx`-Dateien für verschiedene Formulare, die Ressourcen wie Bilder und Texte enthalten. XML-Schemata und Metadaten wurden hinzugefügt, um die Struktur der Ressourcen zu definieren. Neue `.vbproj`-Dateien wurden hinzugefügt, die die Kompilierungs- und Build-Konfigurationen spezifizieren, einschließlich Referenzen zu DevExpress-Komponenten und anderen Bibliotheken. Eingebettete Ressourcen und Projektverweise wurden ebenfalls hinzugefügt. Build-Ziele und Bedingungen wurden definiert, um die Einbindung aller erforderlichen NuGet-Pakete sicherzustellen.
Verbesserungen und Caching-Updates
In `MSSQLServer.vb` wurde `NOLOCK` zur SQL-Abfrage hinzugefügt, um die Leistung zu verbessern. Die Assembly-Versionen in `AssemblyInfo.vb` wurden aktualisiert. In `DatabaseWithFallback.vb` wurden umfangreiche Änderungen vorgenommen, darunter die Einführung von Caches und Unterstützung für URI-Cache-Syntax. Einige Projekte wurden aus `Modules.sln` entfernt. DevExpress-Referenzen in `Patterns.vbproj` wurden aktualisiert. Eine Backup-Datei `Patterns.vbproj.bak` wurde hinzugefügt.
Die Änderungen umfassen:
- Einführung von `ReaderWriterLockSlim` für Thread-Sicherheit.
- Optimierung von `IsOnline` mit atomaren Operationen.
- Verbesserte Reconnect-Logik und Fehlerbehandlung.
- Neue Methoden für Datenbankoperationen (`GetDatatableByName` etc.).
- Gemeinsame `ChannelFactory` zur Ressourcenschonung.
- Logging-Verbesserungen mit präziseren Meldungen und Symbolen.
- Aktualisierte WCF-Bindings für höhere Verbindungszahlen und kürzere Timeouts.
- Aktualisierte Service-Referenzen mit asynchronen Methoden.
- Bereinigung von veralteten Methoden und Eigenschaften.
- Assembly-Version auf `2.8.0.0` aktualisiert.
- Implementierung von `IDisposable` in der Klasse `Client`, um Ressourcen wie Timer und Kanäle ordnungsgemäß freizugeben.
- Einführung von `ActiveClients` und `ClientStatus` zur Verfolgung und Statusanzeige aktiver Clients.
- Verbesserte Fehlerbehandlung mit der Methode `HandleCommunicationError`, die Kommunikationsfehler protokolliert, den Client offline setzt und einen Reconnect auslöst.
- Optimierung der Reconnect-Logik mit asynchronen Wiederverbindungsversuchen und gestaffelten Verzögerungen.
- Erweiterung der Konstruktoren in `Client` um einen optionalen `pClientName`-Parameter und Generierung eines eindeutigen `ClientId`.
- Verbesserte Timer-Logik und asynchrone Verarbeitung in `UpdateTimer_Elapsed`.
- Einführung der Methode `EnsureAvailable`, um sicherzustellen, dass der Kanal vor Service-Aufrufen verfügbar ist.
- Hinzufügen asynchroner Varianten für Service-Methoden (`GetDatatable`, `GetScalarValue`, `ExecuteNonQuery`) und Fallback auf direkte Datenbankzugriffe.
- Verbesserte Timeout-Einstellungen und Verbindungsverwaltung in der Klasse `Channel`.
- Erweiterungen in `DatabaseWithFallback` für asynchrone Methoden und detaillierteres Logging.
- Aktualisierung der Assembly-Version auf `2.7.0`.
Die Funktion `SetVariableValue` wurde aus `Client.vb` entfernt, da sie umfangreiche, aber nicht mehr benötigte Logik zur Attributverarbeitung enthielt.
In `EDMI.API.vbproj` wurden Projektreferenzen durch DLL-Referenzen ersetzt (`DigitalData.Modules.Base`, `Config`, `Database`, `Logging`), um die Modularität zu verbessern.
Die Assembly-Metadaten in `AssemblyInfo.vb` wurden aktualisiert, einschließlich Copyright (2026), Trademark (2.0.0) und Assembly-Version (2.0.0.0), um die neue Hauptversion zu reflektieren.