Phase 5-UI (Fundament): Modul-UI-Contract im Core (Launcher-Modell)

- IPolyTraderModule um RegisterUi(IModuleUiHost) erweitert.
- Neu: IModuleUiHost + ModuleView (Core, Modularity) — Views sind designbare
  Controls (UserControls), die die Shell in eigenständigen Host-Fenstern öffnet.
- Core: UseWindowsForms aktiviert (fuer den Control-Typ im Contract).
- Build 0 Fehler. Noch keine View implementiert (folgt view-fuer-view).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Richard
2026-07-02 10:26:21 +02:00
co-authored by Claude Opus 4.8
parent 21eb686b9c
commit 26dd68a550
3 changed files with 52 additions and 6 deletions
@@ -8,12 +8,7 @@ namespace PolyTrader.Core.Modularity
/// <summary>
/// Vertrag für ein PolyTrader-Modul. Module referenzieren nur den Core, niemals
/// einander. Ein Modul kapselt einen eigenständigen Funktionsbereich (z.B. Copytrading)
/// mit eigenen Services, Jobs, DB-Objekten und – ab Phase 5 – eigenen UI-Tabs und
/// Settings-Sektionen.
///
/// Hinweis: Der UI-Beitrag (RegisterUi/IModuleUiHost) wird in Phase 5 ergänzt, sobald
/// die konkrete UI-Integration (Tabs + Settings-Sektion) feststeht. Bis dahin deckt der
/// Contract Lebenszyklus und Service-Registrierung ab.
/// mit eigenen Services, Jobs, DB-Objekten sowie eigenen UI-Ansichten und Settings-Sektionen.
/// </summary>
public interface IPolyTraderModule
{
@@ -32,6 +27,13 @@ namespace PolyTrader.Core.Modularity
/// </summary>
void RegisterServices(IServiceCollection services, IConfiguration configuration);
/// <summary>
/// Registriert die UI-Ansichten des Moduls bei der Shell (Launcher). Die Shell öffnet
/// jede Ansicht auf Wunsch in einem eigenen Host-Fenster. Module liefern designbare
/// UserControls; die Shell bleibt modul-agnostisch.
/// </summary>
void RegisterUi(IModuleUiHost host);
/// <summary>Wird nach der Core-Hydration gestartet (kein Anlaufen gegen leeren State).</summary>
Task StartAsync(CancellationToken cancellationToken);