Vertragssuche 3.3.0
Vertragssuche
Ein NuGet-Paket für den HTTP-Zugriff auf den Vertragssuchserver, die gemeinsamen Fachmodelle (Vertrag, Person, Gesellschaft, Result) und die lokale Vertragsauswahl anhand von Vorvertrags- und Verwandtschaftsbeziehungen.
Zielplattformen
Ab Version 3.2.0 werden net48 und net10.0 direkt unterstützt. NuGet wählt die passenden Client- und Modell-DLLs aus demselben Paket. Es gibt keine netstandard-Zielversion. Auch die aufgelösten net48-Laufzeitabhängigkeiten sind Framework-Assemblies; die Tests prüfen zusätzlich rekursiv, dass sie keine netstandard-Assembly referenzieren.
Die net48-Variante verwendet Newtonsoft.Json aus dessen net45-Zielversion; net10.0 verwendet weiterhin System.Text.Json. Der HTTP-Vertrag ist derselbe, einschließlich Agenturnummer, optionaler VP, Status und Vertragsbeziehungen. Der Server muss für diesen zusätzlichen Client nicht neu veröffentlicht werden.
Asynchron, beide Plattformen
using Vertragssuche;
// HttpClient langfristig verwenden; der Client übernimmt dessen Lebensdauer nicht.
HttpClient http = new HttpClient { BaseAddress = new Uri("http://sqlserver:9755/") };
IVertragssuche suche = new Client(http);
Result[] ergebnisse = await suche.NearestNeighbor(20, vertrag);
Result[] imRadius = await suche.Range(0.15, vertrag, -mandantenId);
Vertrag[] geladen = await suche.GetVertraege(new decimal[] { 1032092 });
Synchron, beide Plattformen
Beide Plattformen verwenden denselben Konstruktor mit einem HttpClient. Framework 4.8 hat kein synchrones HttpClient.Send; diese Variante übernimmt Serveradresse und Timeout aus dem HttpClient und verwendet echte synchrone HTTP-WebRequests, keine synchron abgewarteten Tasks.
HttpClient http = new HttpClient { BaseAddress = new Uri("http://sqlserver:9755/"), Timeout = TimeSpan.FromSeconds(30) };
SynchronerClient suche = new SynchronerClient(http);
Result[] ergebnisse = suche.NearestNeighbor(20, vertrag);
Result[] imRadius = suche.Range(0.15, vertrag, -mandantenId);
Vertrag[] geladen = suche.GetVertraege(new decimal[] { 1032092 });
Unter .NET 10 verwendet der Client HttpClient.Send. Beide Varianten bieten dieselben Such-, Nachlade- und Umfeldmethoden sowie CancellationToken-Unterstützung. Die net48-WebRequests verwenden die Framework-/Systemstandards für Proxy und Authentifizierung, nicht die Handler eines HttpClient. Der Client übernimmt dessen Lebensdauer nicht.
Nachverarbeitung und DI
VertragsAuswahl bietet beste bzw. gleichbeste Treffer, Beginn-Auswahl, Vorvertragsketten, Vertragsfolgen und Neuorganisationen. GetVertragsUmfeld lädt über den Suchserver die referenzierten Verträge nach. DI ist optional; AddVertragssuche funktioniert auf beiden Plattformen.
Einseitig fehlende VP bleibt bei der serverseitigen Bewertung neutral. Die Transportanpassung für net48 ändert weder Bewertung noch Suchverfahren.
Build, Paket und Tests
dotnet build Vertragssuche.Client\Vertragssuche.csproj -c Release -p:GeneratePackageOnBuild=false
dotnet pack Vertragssuche.Client\Vertragssuche.csproj -c Release -p:PushPackage=false
dotnet test Vertragssuche.Client.Tests\Vertragssuche.Client.Tests.csproj -c Release --filter "TestCategory!=Live"
Für einen ausschließlich lesenden Live-Test gegen den Suchserver:
set VERTRAGSSUCHE_TEST_SERVER=http://sqlserver:9755/
dotnet test Vertragssuche.Client.Tests\Vertragssuche.Client.Tests.csproj -c Release --filter "TestCategory=Live"
Die übrigen Clienttests benötigen keine Datenbank und prüfen beide Laufzeiten gegen einen lokalen HTTP-Testpartner. Die bestehenden Engine-/Servertests bleiben unter net10.0. Für den Build der net48-Zielversion wird das .NET-Framework-4.8-Targeting-Pack benötigt.
Showing the top 20 packages that depend on Vertragssuche.
| Packages | Downloads |
|---|---|
|
Fibikon.Agenta.DB
Package Description
|
3 |
|
Abrechnung
Interne Abrechnungsimplementierung für EnterpriseServices. Enthält die serverseitige Berechnung und Speicherung von Provisionen, Freigaben und Abrechnungen. Anwendungen sollen die Abrechnungsfunktionen über Fibikon.Abrechnung.Net10Client oder Fibikon.Abrechnung.Net48Client verwenden, statt dieses Paket direkt einzubinden. Die bisherige net48-Bridge bleibt vorerst für bestehende direkte Einbindungen enthalten; neue Anbindungen verwenden die HTTP-Clients.
|
2 |
.NET 10.0
- Microsoft.Extensions.Http (>= 10.0.9)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.9)
.NET Framework 4.8
- Microsoft.Extensions.Http (>= 10.0.9)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.9)
- Newtonsoft.Json (>= 13.0.4)