- Nachweisbar erledigt anhand des aktuellen Repository-Stands
- [-] Begonnen oder teilweise nachgewiesen; Abnahmekriterium noch nicht vollstaendig erreicht
- Offen oder im Repository derzeit nicht belastbar nachweisbar
Hinweis: Die Statusmarken in diesem Dokument basieren auf dem lokalen Repository-Stand vom 2026-03-23. Externe GitHub-Einstellungen oder nicht versionierte Nachweisartefakte sind nur dann als erledigt markiert, wenn sie im Repository direkt belegbar sind.
Dieses Pflichtenheft beschreibt die technische Umsetzung der im Lastenheft definierten Anforderungen fuer das Projekt TuiVision.
Grundlage ist der Quellcode im Ordner tv203s (Turbo Vision 2.0.3, C/C++).
Ziel ist eine wartbare, testbare und dokumentierte Portierung nach C#/.NET 10 (net10.0, .NET Core) inklusive Beispielanwendungen. TuiVision ist dabei ausdruecklich als Beispielprojekt zur Modernisierung mit Agentic-AI/Agentic-UI konzipiert.
- Lastenheft:
Lasten_Heft.md - Quellcodebasis:
tv203s/contrib/tvision - Herkunft des
tv203s/-Bestands laut Lastenheft: Download vonhttps://sourceforge.net/projects/tvision/files/DOS_Win32/2.0.3/ - Lokale Arbeitsumgebungen: macOS auf
MacBook Air M2undMac mini M4 Pro - Zusaetzliche Kompatibilitaets- und Validierungsumgebungen: Windows und Linux; unter Windows insbesondere WSL mit aktuellem Ubuntu (derzeit bevorzugt
Ubuntu 24.04) - Auf beiden Systemen vorhanden und authentifiziert:
gh(GitHub CLI),codex,claude,copilotundgemini; zusaetzlich ist GitHub Spec-Kit als verpflichtende Grundlage in allen vier KI-Agenten (codex,claude,copilot,gemini) installiert und nutzbar. Optional koennenglab(GitLab CLI) sowie die KI-Agentenopencodeund JetBrainsjunieeingerichtet werden; fallsopencodeoderjuniegenutzt werden, ist GitHub Spec-Kit auch dort zu installieren und dokumentiert nutzbar zu halten - Umfang der vorhandenen C/C++-Basis (Stand Analyse):
- ca. 130 oeffentliche Header in
include/tv - 105 Implementierungsdateien im Kernbereich
classes - 9 plattformspezifische Treiberordner:
dos,linux,qnx4,qnxrtp,unix,win32,wingr,winnt,x11 - 25 Beispielprogramme in
examples
- ca. 130 oeffentliche Header in
- Das Git-Repository ist initialisiert; grundlegende C#-Projektstruktur (
TuiVision.sln, Kernmodule insrc/) ist bereits vorhanden. - Portierung befindet sich in frueherer Phase; noch nicht alle Klassen und Beispiele sind portiert.
Bereitgestellt wird ein reines .NET-Core-Framework (Managed Code), das die zentralen Turbo-Vision-Konzepte fuer Text-UI in C# abbildet:
- Ereignisverarbeitung
- View-/Widget-Hierarchie
- Fenster, Dialoge, Menues, Statuszeile
- Text-/Editor-Komponenten
- Ressourcen/Streams
- Internationalisierung
- Beispielprogramme als Referenz und Regressionstest-Basis
- Keine nativen, betriebssystemspezifischen Bibliotheksabhaengigkeiten
Der Lieferumfang umfasst:
Statuscheckliste Lieferumfang:
- C#-Portierung des Frameworks als Loesung mit klarer Projektstruktur
- Unit-Tests mit MSTest fuer portierte Klassen/Methoden
- API-Dokumentation mit docfx
- [-] Portierung der vorhandenen Beispielprogramme aus
tv203s/contrib/tvision/examples - [-] Build- und Qualitaetssicherungsprozesse
- [-] CI/CD-Workflow mit automatischem Build und Test auf GitHub Actions
- Nutzerdokumentation (Leitfaeden fuer Einstieg und Verwendung)
- Ausfuehrliche Dokumentation aller portierten Beispielprogramme
- [-] Ausreichende Quellcode-Dokumentation fuer Lern- und Wartungszwecke
- [-] Dokumentierter lokaler Workflow fuer
gh,codex,claude,copilotundgeminiauf beiden macOS-Systemen einschliesslich GitHub Spec-Kit in allen vier KI-Agenten; optionale Zusatzwerkzeugeglab,opencodeundjuniesind bei Nutzung ebenfalls dokumentiert
Statuscheckliste Anforderungen:
-
M-01Lokales Git-Repository erstellen -
M-02.gitignorefuer JetBrains, C#/.NET, VS Code, Visual Studio -
M-03Remote auf GitHub unterhttps://github.com/hindermath/TuiVision.git -
M-04Verwendung von C#/.NET 10 (.NET Core) -
M-05Projektstruktur nach .NET-Best-Practices - [-]
M-06Portierung des Framework-Kerns austv203sReihenfolgehinweis: Phasen 1 bis 6 sind sichtbar umgesetzt; Phase 7 und die Vollstaendigkeitsnachweise ausM-07fehlen noch. -
M-07Portierung der Implementierungsdateien austv203s/contrib/tvision/classesReihenfolgehinweis: Vor dem Eingangstor aus Abschnitt 8.2 abschliessen und indocs/porting-status.mdnachweisen. -
M-08Unit-Tests fuer portierte Klassen/Methoden mit MSTest -
M-09API-Dokumentation mit docfx - [-]
M-10Portierung der vorhandenen Beispiele Reihenfolgehinweis: Die 25 Originalbeispiele bleiben der MUSS-Umfang und werden erst nach bestandenem Eingangstor aus Abschnitt 8.2 in den Wellen 1 bis 4 abgearbeitet; die neu aufgenommenen TP7-Beispiele inTVDEMOS/undTVFM/sind danach als Anschlusswellen 5 und 6 vorgesehen. - [-]
M-11Qualitaetssicherung zusaetzlich zu Unit-Tests -
M-12Keine nativen OS-Abhaengigkeiten -
M-13Lizenz-Disclaimer fuer Beispielcharakter - [-]
M-14CI/CD mit GitHub Actions Reihenfolgehinweis: Build/Test ist vorhanden; das Dokumentations-Deployment ausM-22fehlt noch. -
M-15Nutzerdokumentation - [-]
M-16Vollstaendige XML-Kommentierung der oeffentlichen API -
M-17Einheitlicher didaktischer Dokumentationsstil -
M-18Ausfuehrliche Dokumentation der Beispielprogramme - [-]
M-19Ausreichende Quellcode-Dokumentation im gesamten TuiVision-Code -
M-20Messbarer Mindest-Testumfang (MUSS-Tests) - [-]
M-21Reproduzierbarer Multi-Mac-Entwicklungsworkflow -
M-22Automatische Veroeffentlichung der Dokumentation auf GitHub Pages
| ID | Anforderung | Technische Umsetzung | Abnahmekriterium |
|---|---|---|---|
| M-01 | Lokales Git-Repository erstellen | git init, sinnvolle Branch-/Commit-Strategie |
Repository ist initialisiert, Historie nachvollziehbar |
| M-02 | .gitignore fuer JetBrains, C#/.NET, VS Code, Visual Studio |
Kombination etablierter Ignore-Regeln | Keine IDE-/Build-Artefakte im Repo |
| M-03 | Remote auf GitHub unter https://github.com/hindermath/TuiVision.git |
origin konfigurieren, Push faehig |
Remote ist gesetzt, Push/Fetch funktionieren |
| M-04 | Verwendung von C#/.NET 10 (.NET Core) | SDK-Target net10.0 in allen Projekten |
dotnet build laeuft ohne Target-Konflikte |
| M-05 | Projektstruktur nach .NET-Best-Practices | Trennung in src, tests, examples, docs |
Struktur ist konsistent, Build reproduzierbar |
| M-06 | Portierung des Framework-Kerns aus tv203s |
API- und Verhaltensport in C# | Definierte Kernmodule sind funktional und testbar |
| M-07 | Portierung der Implementierungsdateien aus tv203s/contrib/tvision/classes |
Alle .cc-Dateien aus dem Ordner tv203s/contrib/tvision/classes (z. B. tview.cc, tgroup.cc, tapplica.cc, teditor.cc u. v. m.) dienen als direkte C/C++-Vorlage fuer M-06; jede Datei wird gemaess Modulmapping (Abschnitt 7.2) einem Zielmodul (TuiVision.Core, TuiVision.Controls, TuiVision.Serialization, TuiVision.Compatibility oder TuiVision.Drivers.Console) zugeordnet und portiert |
Alle identifizierten .cc-Quelldateien aus tv203s/contrib/tvision/classes (einschliesslich der plattformspezifischen Unterordner fuer TuiVision.Drivers.Console) sind in den entsprechenden C#-Zielmodulen nachweisbar abgebildet und durch Unit-Tests abgesichert |
| M-08 | Unit-Tests fuer portierte Klassen/Methoden mit MSTest | Testprojekte pro Modul, CI-faehig | Tests laufen lokal und in CI stabil durch |
| M-09 | API-Dokumentation mit docfx | docfx-Konfiguration, API-Generierung und erneute Doku-Erstellung bei API-/XML-Kommentar-Aenderungen | Doku erzeugbar, verlinkt alle Kern-Namespaces und ist nach API-/XML-Aenderungen aktualisiert |
| M-10 | Portierung der vorhandenen Beispiele | Alle 25 Originalbeispiele aus tv203s/contrib/tvision/examples als .NET-Beispiele abbilden; zusaetzlich koennen die Anschlusswellen aus TVDEMOS/ und TVFM/ nachgelagert portiert werden |
Die 25 Originalbeispiele bauen, bestehen die definierten Smoke-Tests und zeigen bei interaktiv gedachten Beispielen einen sichtbaren normalen Startpfad; die TP7-Anschlusswellen werden als Zusatzumfang separat verfolgt |
| M-11 | Qualitaetssicherung zusaetzlich zu Unit-Tests | Analyzer, Format- und Build-Gates | Qualitaets-Gates sind dokumentiert und aktiv |
| M-12 | Keine nativen OS-Abhaengigkeiten | Keine P/Invoke-/Native-Library-Pflicht, keine OS-spezifischen Zusatzpakete | Build/Tests laufen mit .NET 10 Runtime ohne native Zusatzinstallation |
| M-13 | Lizenz-Disclaimer fuer Beispielcharakter | Sichtbarer Hinweis in LICENSE/README |
Hinweis beschreibt: Beispielprojekt, keine Konkurrenzabsicht, keine beabsichtigte Lizenzverletzung |
| M-14 | CI/CD mit GitHub Actions | Build-/Test-Workflow und Dokumentations-Deployment-Workflow unter .github/workflows; GitHub-Pages-Deployment gemaess M-22 ist Bestandteil der CI/CD-Pipeline; dabei werden die primaeren Entwicklungsumgebungen auf macOS und zusaetzliche Kompatibilitaetspruefungen fuer Linux und nach Moeglichkeit auch Windows/WSL beruecksichtigt |
Automatischer Build und Testlauf pro Push/PR ist aktiv; GitHub-Pages-Deployment laeuft automatisch bei Doku-Aenderungen auf main (M-22); Kompatibilitaetsnachweise fuer Linux und Windows/WSL sind dokumentiert oder in der CI sichtbar |
| M-15 | Nutzerdokumentation | Pflichtguides unter docs/guides/ gemaess Abschnitt 10.7; Quellenrangfolge und Adaptionspflicht gemaess Abschnitt 10.7 eingehalten; Sprache bilingual (Deutsch zuerst, Englisch) auf CEFR-B2-Niveau |
Alle Pflichtguides unter docs/guides/ sind vorhanden; Quellenrangfolge nachvollziehbar eingehalten; Sprache und Struktur entsprechen dem didaktischen Standard gemaess Abschnitt 10.3 und 10.7 |
| M-16 | Vollstaendige XML-Kommentierung der oeffentlichen API | Alle public Typen, Member, Parameter, Rueckgabewerte und Ausnahmen mit XML-Dokumentation |
API ist durchgaengig und didaktisch ausfuehrlich kommentiert; docfx erzeugt daraus vollstaendige Referenzseiten |
| M-17 | Einheitlicher didaktischer Dokumentationsstil | Alle Dokumentationsartefakte folgen einem verbindlichen Lehr-/Beispielstandard fuer Fachinformatiker (Anwendungsentwicklung) | Struktur, Detailtiefe und Beispiele sind ueber alle Dokuarten konsistent und nachvollziehbar |
| M-18 | Ausfuehrliche Dokumentation der Beispielprogramme | Pro Beispielprogramm eigener Guide mit Lernziel, Voraussetzungen, Start, Bedienung, Architekturhinweisen und Uebungen | Alle portierten Beispiele sind didaktisch nachvollziehbar dokumentiert und reproduzierbar ausfuehrbar |
| M-19 | Ausreichende Quellcode-Dokumentation im gesamten TuiVision-Code | Nicht-triviale Logik, Architekturentscheidungen und interne Zusammenhaenge werden im Code nachvollziehbar kommentiert | Der Quellcode erfuellt die pruefbaren Kriterien aus Abschnitt 10.5 und ist fuer Fachinformatiker (Anwendungsentwicklung) lern- und wartbar |
| M-20 | Messbarer Mindest-Testumfang (MUSS-Tests) | Definierte Mindestabdeckung, Pflichttestfaelle und vollstaendige Smoke-Tests gemaess Abschnitt 9.4 | Die in Abschnitt 9.4 definierten Kennzahlen und Testumfaenge sind vollstaendig erreicht |
| M-21 | Reproduzierbarer Multi-Mac-Entwicklungsworkflow | Build-, Test-, GitHub- und KI-Agenten-Arbeitsablaeufe sind fuer MacBook Air M2 und Mac mini M4 Pro mit gh, codex, claude, copilot und gemini dokumentiert; GitHub Spec-Kit ist in allen vier KI-Agenten verpflichtend installiert und in den Workflows beruecksichtigt. Optionale Zusatzwerkzeuge glab, opencode und junie werden bei Nutzung ebenfalls dokumentiert; fuer opencode und junie gilt dann ebenfalls die Spec-Kit-Pflicht. Windows und Linux, insbesondere WSL mit aktuellem Ubuntu, dienen ergaenzend als Kompatibilitaets- und Validierungsumgebungen |
Die dokumentierten Schluesselablaeufe funktionieren auf beiden macOS-Systemen mit den dokumentierten Voraussetzungen und ggf. automatisierter Tool-Bereitstellung (z. B. DocFX als .NET-Tool); die Spec-Kit-gestuetzten Agentenablaeufe sind fuer codex, claude, copilot und gemini nachvollziehbar nachweisbar, bei Nutzung optional zusaetzlich auch fuer opencode und junie; Kompatibilitaetsnachweise fuer Linux und Windows/WSL sind reproduzierbar dokumentiert oder in der CI sichtbar |
| M-22 | Automatische Veroeffentlichung der Dokumentation auf GitHub Pages | Dedizierter Workflow .github/workflows/docs-deploy.yml gemaess Abschnitt 10.8: Trigger auf push nach main fuer Pfade docs/**, src/**, docfx.json; Schritte: checkout, dotnet-build (XML-Docs), docfx, upload-pages-artifact, deploy-pages; Repository-Setting auf Source „GitHub Actions"; Umgebung github-pages |
Workflow existiert gemaess Abschnitt 10.8; docfx-Dokumentation ist ueber GitHub Pages erreichbar; Deployment laeuft automatisch nach jedem relevanten Merge auf main; Deployment-Status im Actions-Tab sichtbar |
Statuscheckliste optionale Anforderungen:
-
O-01NuGet-Paketierung
| ID | Option | Umsetzung | Ergebnisartefakt |
|---|---|---|---|
| O-01 | NuGet-Paketierung | Pack-/Versionierungsprozess | erzeugbares .nupkg |
TuiVision.sln
src/
TuiVision.Core/
TuiVision.Controls/
TuiVision.Drivers.Console/
TuiVision.Serialization/
TuiVision.Compatibility/
tests/
TuiVision.Core.Tests/
TuiVision.Controls.Tests/
TuiVision.Drivers.Tests/
TuiVision.Examples.SmokeTests/
examples/
(portierte Beispielprogramme)
docs/
docfx.json
api/
guides/
Quelle tv203s |
Zielmodul |
|---|---|
include/tv/*.h, classes/t*.cc |
TuiVision.Core, TuiVision.Controls |
classes/* (streams, resource, file/help/editor) |
TuiVision.Serialization, TuiVision.Core |
classes/dos, classes/linux, classes/unix, classes/win32, ... |
Konsolidierung in TuiVision.Drivers.Console (managed, ohne native Bindings) |
compat/* |
TuiVision.Compatibility |
intl/* |
TuiVision.Core (I18N-Teil) |
examples/* |
examples/* in C# |
- 1. Basisinfrastruktur: Loesung, Build, Tests, Doku-Pipeline Reihenfolgehinweis: abgeschlossen; Grundlage fuer alle Folgephasen.
- 2. Kernobjekte:
TObject, Collections, Geometrie (TPoint,TRect), Events Reihenfolgehinweis: abgeschlossen; Voraussetzung fuer View- und Event-System. - 3. View-System:
TView,TGroup, Zeichenpuffer, Fokus/States Reihenfolgehinweis: abgeschlossen; Voraussetzung fuer App-Rahmen und Controls. - 4. Anwendungsrahmen:
TProgram,TApplication, Menues, Statuszeile, Desktop Reihenfolgehinweis: abgeschlossen; Voraussetzung fuer Welle 1 der Beispiele. - 5. Dialog-/Control-Schicht: Eingabezeilen, Listen, Scrollbars, Buttons, usw. Reihenfolgehinweis: abgeschlossen; Voraussetzung fuer Welle 2 der Beispiele.
- 6. Editor/Datei/Hilfe/Streams: Editor, Resource-, Stream- und Help-Komponenten Reihenfolgehinweis: abgeschlossen; Voraussetzung fuer Welle 3 der Beispiele.
- 7. Treiberkonsolidierung: Managed Console-Treiber unter .NET Core ohne native OS-Bindings
Reihenfolgehinweis: als naechstes fachliches Hauptpaket vorziehen; Voraussetzung fuer Welle 4 und fuer den Vollstaendigkeitsnachweis aus
M-07. - 8. Beispiele: Portierung aller 25 MUSS-Beispiele in vier thematisch-technischen Wellen; anschliessend optionale Anschlusswellen 5 und 6 fuer die zusaetzlich im Repository abgelegten TP7-Beispiele aus
TVDEMOS/undTVFM/; jede Welle wird erst begonnen, wenn die zugehoerigen Framework-Phasen abgeschlossen sind (Abhaengigkeitsprinzip); vor Welle 1 ist das Eingangstor gemaess Abschnitt 8.2 vollstaendig zu bestehen Reihenfolgehinweis: erst nach Phase 7 und bestandenem Eingangstor starten; TP7-Anschlusswellen erst nach den vier MUSS-Wellen.
Bevor das erste Beispielprogramm portiert wird (Welle 1, Abschnitt 8.3), muessen alle nachfolgenden Kriterien nachweisbar erfuellt sein. Jedes offene Kriterium blockiert den Start von Phase 8 und ist als Issue im Repository zu erfassen und zu schliessen.
Statuscheckliste Eingangstor:
- Kriterium 1 - M-07-Vollstaendigkeitsnachweis (Mapping-Tabelle)
Reihenfolgehinweis: abgeschlossen;
docs/porting-status.mdbildet alle 151 historischen.cc-Dateien final ab. - Kriterium 2 - Keine portierten Luecken ohne Begruendung
Reihenfolgehinweis: abgeschlossen; nicht portierte Faelle sind als
bewusst ausgelassen + Begruendungdokumentiert. - Kriterium 3 - Build-Gate
- Kriterium 4 - Test-Gate
Reihenfolgehinweis: abgeschlossen;
dotnet testist gruen, und es gibt keine dokumentationspflichtigen Skip-/Ignored-Faelle. - Kriterium 5 - Coverage-Gate
Reihenfolgehinweis: abgeschlossen;
TuiVision.Core89,11 %,TuiVision.Controls84,10 %,TuiVision.Serialization83,33 %,TuiVision.Compatibility80,95 %undTuiVision.Drivers.Console97,43 %Line Coverage. - Kriterium 6 - API-Doku-Gate
Reihenfolgehinweis: abgeschlossen;
docfx docfx.jsonlief im 006-Closure-Paket fehlerfrei. - Nachweisdokument
Reihenfolgehinweis: dedizierter Closure-Commit
docs: close phase-8 entrance gate for feature 006.
Die Datei docs/porting-status.md muss existieren und fuer jede .cc-Quelldatei aus tv203s/contrib/tvision/classes (einschliesslich plattformspezifischer Unterordner) einen Eintrag enthalten mit:
- Quelldatei (relativer Pfad in
tv203s/) - Zugeordnetes C#-Zielmodul (
TuiVision.Core,TuiVision.Controls,TuiVision.Serialization,TuiVision.CompatibilityoderTuiVision.Drivers.Console) - Zugehoerige C#-Zieldatei(en)
- Teststatus (
portiert + getestet/portiert + Test ausstehend/bewusst ausgelassen + Begruendung)
Kein Eintrag darf den Status ausstehend oder TODO ohne zugehoerigen offenen Issue tragen.
Jede .cc-Datei, die nicht portiert wurde, muss in docs/porting-status.md mit einer nachvollziehbaren Begruendung als bewusst ausgelassen markiert sein (z. B. plattformspezifischer Treiber, der durch TuiVision.Drivers.Console ersetzt wird).
dotnet build --configuration Release laeuft ohne Fehler und ohne als Fehler konfigurierte Warnungen fuer alle Projekte in src/.
Alle Unit-Tests in tests/ laufen gruen durch, lokal und in CI (M-08). Kein Test darf als Ignored oder Skip markiert sein, ohne einen zugehoerigen offenen Issue.
Line Coverage in TuiVision.Core, TuiVision.Controls, TuiVision.Serialization, TuiVision.Compatibility und TuiVision.Drivers.Console betraegt jeweils mindestens 70 % (gemaess §9.4 Nr. 1), gemessen mit Coverlet. Das Coverage-Ergebnis ist als CI-Artefakt oder lokaler Report nachweisbar.
docfx laeuft ohne Fehler durch; keine oeffentliche API ist undokumentiert (M-09, M-16). Das erzeugte Ausgabeverzeichnis ist im Repository oder als CI-Artefakt vorhanden.
Der Abschluss des Eingangstors wird durch den dedizierten Commit
docs: close phase-8 entrance gate for feature 006 auf dem Feature-Branch
dokumentiert. Diese Commit-Nachricht verweist implizit auf die sechs erfuellten
Kriterien und auf docs/porting-status.md als kanonische Nachweisflaeche.
Zu portieren sind alle 25 vorhandenen Beispielordner, eingeteilt in vier Wellen nach technischer Abhaengigkeit.
Fuer jedes portierte Beispiel ist eine eigene didaktische Dokumentationsseite in docs/guides/examples/ bereitzustellen.
Die nachfolgend aufgefuehrten Turbo-Pascal-Beispiele aus dem Repository (TVDEMOS/, TVFM/) erweitern diesen Umfang als Anschlusswellen, ersetzen aber nicht den MUSS-Nachweis fuer die 25 Originalbeispiele aus tv203s/contrib/tvision/examples.
Fuer groessere Beispielwellen ist ein zweistufiges Spec-Kit-Liefermuster zulaessig und bevorzugt, wenn Portierungs-/Nachweisarbeit und interaktive Runtime-Politur sonst zu gross fuer einen einzelnen Feature-Lauf wuerden: Stufe 1 liefert den funktionalen Portierungs- und Smoke-Test-Nachweis, Stufe 2 macht dieselben Funktionen ueber sichtbare Menues, Statuszeilen, Desktop-Controls, Dialoge, Tastaturpfade und UI-Event-Smoke-Tests als echte Demo bedienbar. Eine Welle gilt fuer Lernende und manuelle Reviews erst nach der interaktiven Showcase-Stufe als vollstaendig reif, sofern der Scope nicht ausdruecklich nur einen minimalen nicht-interaktiven Nachweis verlangt.
Statuscheckliste Beispielwellen:
- Welle 1 - Grundlegende Anwendungsstruktur
Reihenfolgehinweis: abgeschlossen (Branch
007-port-wave1-examples); 4 Beispiele portiert, 41 Smoke-Tests gruen, Guides geliefert. - Welle 2 - Controls und Dialoge
Reihenfolgehinweis: Portierungs-/Smoke-Nachweis abgeschlossen (Branch
011-port-wave2-examples); 11 Controls-/Dialog-Beispiele portiert, alle 15 gelieferten Beispiele per Smoke-Test abgedeckt, Guides geliefert. Die interaktive Showcase-Stufe wurde im Follow-up012-interactive-wave2-demosnachgezogen. - Welle 2 - Interaktive Showcase-Stufe
Reihenfolgehinweis: abgeschlossen (Branch
012-interactive-wave2-demos); die elf Wave-2-Beispiele zeigen beim normalen Start sichtbare Menue-/Command-Pfade mit text-first Rueckmeldung und besitzen app-loop-basierte Smoke-Nachweise. - Welle 2 - Sichtbarer Komponenten-Nachweis
Reihenfolgehinweis: abgeschlossen (Branch
013-wave2-visual-component-remediation); die elf Wave-2-Beispiele besitzen echte sichtbare Hauptkomponenten, echteTStatusLine-Rueckmeldung,Help -> Descriptionund primaere App-Loop-Smokes mit View-Baum- plus Buffer-/Cell-Nachweis. - Welle 3 - Editor, Dateien, Hilfe und Streams
Reihenfolgehinweis: nach Welle 2;
tvedit,bhelpundhelpdemoeignen sich als fruehe Validierungsbeispiele fuer Phase 6. - Welle 4 - Terminal-Emulation und erweiterte Zeichensaetze Reihenfolgehinweis: zuletzt; haengt direkt an der noch offenen Treiberkonsolidierung aus Phase 7.
- Welle 5 - Turbo-Pascal-Demos aus TP7 (
TVDEMOS/) Reihenfolgehinweis: erst nach Abschluss der MUSS-Wellen 1 bis 4; bevorzugt nach stabilen Portierungen vontvdemo,tvedit, Hilfesystem und Dialogschicht. - Welle 6 - Turbo-Pascal-Dateimanager
TVFM/Reihenfolgehinweis: zuletzt; setzt die Erkenntnisse aus Welle 5, Datei-/Verzeichnisdialoge, Drag/Drop-Analoga und eine robuste Event-/Fensterintegration voraus. - Beispiel-Guides unter
docs/guides/examples/Reihenfolgehinweis: jedes portierte Beispiel im selben Arbeitsgang mit eigenem Guide dokumentieren.
Welle 1 – Grundlegende Anwendungsstruktur (nach Abschluss Phase 4: Anwendungsrahmen)
Benoetigt: TProgram, TApplication, TDesktop, TMenuBar, TStatusLine.
Keine Controls, keine Dialoge, kein Editor, kein Hilfesystem.
Checkliste Welle 1:
-
desklogo- Minimale App: statisches Logo auf dem Desktop -
msgcls- Benutzerdefinierte Ereignisklassen und Nachrichtenverarbeitung -
tutorial- Schrittweise Einfuehrung in die TuiVision-Grundkonzepte (16 Schritte, token-basiert) -
videomode- Wechsel von Anzeigemodi (Pufferbreite/-hoehe)
Welle 2 – Controls und Dialoge (nach Abschluss Phase 5: Dialog-/Control-Schicht)
Benoetigt: Eingabezeilen, Listen, Scrollbars, Buttons, Checkboxes, RadioButtons, Dialoge.
Hinweis:
sdlg/sdlg2konsumieren das neue managedTScrollGroup(siehedocs/architecture/adr/0001-tscrollgroup-foundation.md). / Note:sdlg/sdlg2consume the new managedTScrollGroup(seedocs/architecture/adr/0001-tscrollgroup-foundation.md).
Checkliste Welle 2:
-
clipboard- Zwischenablage-Integration in Controls -
demo- Vollstaendige Turbo-Vision-Kerndemo (zeigt alle Basis-Controls) -
dlgdsn- Dialog-Designer: dynamisch zusammengesetzte Dialoge -
dyntxt- Dynamisch erzeugter Text in Views -
inplis- Eingabelisten mitTInputLine -
listvi- Listenansichten mitTListViewer -
progba- Einfacher Fortschrittsbalken -
sdlg- Scrollbarer Dialog mitScrollDialog/ScrollGroupund vertikalem Scrollen -
sdlg2- Erweiterter scrollbarer Dialog mit horizontalem und vertikalem Scrollen -
tcombo- Kombinationsfelder (TComboBox) -
tprogb- Erweiterter Fortschrittsbalken mit Abbruch
Abgrenzung: Die Welle-2-Checkliste dokumentiert den funktionalen Portierungs- und Smoke-Test-Nachweis aus 011-port-wave2-examples. Die interaktive Demo-Reife fuer normale CLI-Starts wurde in 012-interactive-wave2-demos als eigene Showcase-Stufe nachgezogen. Der sichtbare Komponenten-Nachweis aus 013-wave2-visual-component-remediation schaerft die Abnahme: echte Hauptkomponente, echte TStatusLine, Help -> Description und gerenderter Buffer-/Cell-Nachweis sind nun dokumentiert.
Welle 3 – Editor, Dateien, Hilfe und Streams (nach Abschluss Phase 6: Editor/Datei/Hilfe/Streams)
Benoetigt: TEditor, TFileDialog, THelpViewer, Stream- und Ressourcen-Infrastruktur.
Checkliste Welle 3:
-
bhelp- Grundlegendes Hilfesystem mit kontextsensitiven Themen -
helpdemo- Interaktive Demonstration des Hilfesystems -
i18n- Internationalisierung: mehrsprachige Texte und Ressourcen -
tvedit- Vollstaendiger Texteditor (Datei oeffnen, bearbeiten, speichern) -
tvhc- Hilfe-Compiler: Konvertierung von Quelltext in binaere Hilfedatei
Welle 4 – Terminal-Emulation und erweiterte Zeichensaetze (nach Abschluss Phase 7: Treiberkonsolidierung)
Benoetigt: Managed Console-Treiber, plattformunabhaengige Zeichensatz- und Terminalpufferverwaltung.
Checkliste Welle 4:
-
cyrillic- Kyrillische Zeichensatz-Unterstuetzung im Textpuffer -
eterm- Erweiterter Terminal-Emulator -
fonts- Zeichensatz-Verwaltung und Darstellung alternativer Fonts -
terminal- Einfache Terminal-Integration -
xterm- XTerm-Protokoll-Emulation
Welle 5 – Turbo-Pascal-Demos aus TP7 (TVDEMOS/) (Anschlusswelle nach Abschluss der MUSS-Wellen 1 bis 4)
Portierungsmeinung: Die Portierung von Turbo-Pascal-Beispielen nach C# ist grundsaetzlich gut machbar. Turbo Pascal und C# liegen fuer diesen Einsatzzweck semantisch naeher beieinander als C++ und C#: die Pascal-Turbo-Vision-Beispiele arbeiten meist klarer mit Units, Records/Objects, Menues, Dialogen und Ereignissen. Zusatzauswand entsteht vor allem bei DOS-/CRT-Annahmen, Dateisystemdetails, Ressourcenformaten und dem alten Pascal-Objektmodell.
Benoetigt: stabile Dialog-/Control-Schicht, Editor-/Hilfe-/Datei-Infrastruktur, saubere Abbildung von Pascal-Object/Unit-Strukturen auf C#-Klassen und Namespaces.
Checkliste Welle 5:
-
TVDEMO.PAS- grosse Turbo-Vision-Gesamtdemo als Pascal-Gegenstueck zudemo -
TVEDIT.PAS- Pascal-Editorbeispiel als zusaetzlicher Validierer fuer den Editor-Stack -
TVHC.PAS,HELPFILE.PAS,DEMOHELP.PAS- Pascal-Hilfesystem und Hilfe-Compiler-Flows -
CALC.PAS,CALENDAR.PAS,ASCIITAB.PAS,PUZZLE.PAS- in sich geschlossene Fach-/Widget-Demos -
GADGETS.PAS,MOUSEDLG.PAS,TVRDEMO.PAS,GENRDEMO.PAS- Interaktions-, Maus- und Ressourcen-Demos
Welle 6 – Turbo-Pascal-Dateimanager TVFM/ (Anschlusswelle nach Welle 5)
Benoetigt: robuste Datei-/Verzeichnisnavigation, View-/Window-Komposition, Ressourcenverwaltung, zusaetzliche Portierungsentscheidungen fuer Dateimanager-spezifische Arbeitsablaeufe.
Checkliste Welle 6:
-
TVFM.PAS- Hauptanwendung des Dateimanagers -
DIRVIEW.PAS,TREEWIN.PAS,FILEVIEW.PAS,VIEWTEXT.PAS,VIEWHEX.PAS,INFOVIEW.PAS- Navigations- und Viewer-Komponenten -
FILECOPY.PAS,FILEFIND.PAS,DRAGDROP.PAS,TRASH.PAS- Dateioperationen und Interaktionsfluesse -
COLORS.PAS,EDITPAL.PAS,GAUGES.PAS,TOOLS.PAS,GLOBALS.PAS,ASSOC.PAS,EQU.PAS- Hilfs- und Konfigurationsmodule - Ressourcen- und Build-Begleitdateien (
MAKERES.PAS,MAKETVFM.BAT,.PAL,.TVR) dokumentiert sichten und als C#-kompatible Assets/Generatoren neu zuschneiden
- Unit-Tests (MSTest) fuer alle portierten Klassen/Methoden
- Integrations-/Verhaltenstests fuer Event-Loop, Fokus, Menue-/Dialogfluss
- [-] Snapshot-/Golden-Tests fuer Render-/Zeichenpuffer-Verhalten
- Smoke-Tests fuer alle portierten Beispiele
- [-] Runtime-Kompatibilitaetstests fuer .NET 10 (net10.0) ohne native Zusatzkomponenten auf macOS, Linux sowie ergaenzend Windows/WSL
- MUSS-Tests: Sammelbegriff fuer alle in Abschnitt 9.4 als verpflichtend markierten Tests und Kennzahlen
- [-] Umgebungs-/Workflow-Checks fuer lokale Arbeit auf
MacBook Air M2undMac mini M4 Prosowie fuer ergaenzende Kompatibilitaetspruefungen auf Linux und Windows/WSL
- Build ohne Warnungsfehler fuer freigegebene Konfiguration
- Alle MUSS-Tests erfolgreich
- API-Doku erfolgreich generierbar
- [-] Bei Aenderungen an oeffentlicher API oder XML-Kommentaren wird die docfx-Dokumentation im selben Arbeitsgang neu erzeugt
- Einheitliche Formatierung/Analyzer-Regeln aktiv
- Fehlende XML-Kommentare fuer oeffentliche API werden als Qualitaetsverstoss behandelt (z. B. CS1591 nicht ignoriert)
- Dokumentations-Review gegen den didaktischen Standard gemaess Abschnitt 10.3 ist fuer Releases verpflichtend
- Beispielprogramme gelten erst als abgeschlossen, wenn die zugehoerigen Guides gemaess Abschnitt 10.4 vorliegen
- Quellcode-Review gegen den Standard gemaess Abschnitt 10.5 ist fuer Releases verpflichtend
- GitHub-Pages-Deployment der docfx-Dokumentation ist nach jedem Merge auf
mainmit Aenderungen andocs/,src/oderdocfx.jsonautomatisch erfolgreich abgeschlossen (M-22)
Jede MUSS-Anforderung (M-xx) wird mindestens einem Nachweisartefakt zugeordnet. Zulaessige Nachweisartefakte sind Testfall, Smoke-Test, Build-/CI-Nachweis, Dokumentationsartefakt oder Checklisten-/Review-Nachweis.
Die folgenden Punkte sind verpflichtend und bilden die "MUSS-Tests" im Sinne dieses Pflichtenhefts:
- [-] Unit-Test-Abdeckung (Line Coverage) von mindestens 70% in
TuiVision.Core,TuiVision.Controls,TuiVision.Serialization,TuiVision.CompatibilityundTuiVision.Drivers.Console. Reihenfolgehinweis: Fuer den Gesamtabschluss muessen die finalen Coverlet-Nachweise fuer alle fuenf Gate-Module gemeinsam vorliegen. - [-] Fuer jede portierte Kernkomponente existieren mindestens ein Positivtest und ein Negativ-/Fehlerfalltest (sofern fachlich sinnvoll).
- Integrations-/Verhaltenstests decken mindestens Event-Loop, Fokuswechsel, Menueausfuehrung und Dialoginteraktion ab.
- Smoke-Tests laufen fuer alle 25 portierten Beispielprogramme automatisiert in CI.
- Alle MUSS-Tests laufen in GitHub Actions auf jedem Pull Request und auf dem Hauptbranch.
- [-] Die dokumentierten lokalen Schluesselablaeufe mit
gh,codex,claude,copilotundgeminisind aufMacBook Air M2undMac mini M4 Pronachvollziehbar und reproduzierbar; GitHub Spec-Kit ist dabei in allen vier KI-Agenten installiert und Bestandteil der nachgewiesenen Agentenablaeufe. Fallsglab,opencodeoderjuniegenutzt werden, sind auch diese Ablaeufe dokumentiert; fueropencodeundjunieebenfalls mit installiertem Spec-Kit. Linux- und Windows/WSL-Kompatibilitaetschecks sind als zusaetzliche Validierung nachgewiesen oder eingeplant. - Bei API-/XML-Kommentar-Aenderungen ist die erfolgreiche docfx-Erzeugung als Nachweisartefakt vorhanden.
- API-Dokumentation mit docfx aus dem Code
- Architektur- und Migrationsdokumentation in
docs/guides - Changelog fuer Portierungsfortschritt und Abweichungen vom Originalverhalten
- Saemtliche Projektdokumentation folgt einem einheitlichen didaktischen Lehr-/Beispielstandard
- [-] Der Quellcode selbst ist didaktisch und wartungsorientiert dokumentiert
- [-] Lokale Arbeitsablaeufe mit
gh,codex,claude,copilotundgeminisind fuer beide macOS-Systeme dokumentiert; GitHub Spec-Kit ist als Pflichtbestandteil in allen vier KI-Agenten beruecksichtigt. Optionale Zusatzwerkzeugeglab,opencodeundjuniesind bei Nutzung ebenfalls dokumentiert; fueropencodeundjuniemit Spec-Kit.
Fuer den Lehr- und Beispielcharakter des Projekts gelten folgende verbindliche Regeln:
- Alle oeffentlichen Bestandteile der TuiVision-API sind mit XML-Kommentaren zu versehen.
- Die Kommentare sind ausfuehrlich und didaktisch zu schreiben (Zweck, Verhalten, Randfaelle, Nebenwirkungen, typische Nutzung).
- Pro oeffentlichem API-Element sind mindestens
summarysowie bei Bedarfremarkszu verwenden. - Bei Methoden sind
paramfuer alle Parameter undreturnsfuer Rueckgabewerte verpflichtend. - Erwartete Fehlerfaelle sind mit
exceptionzu dokumentieren. - Wo sinnvoll sind
example-Abschnitte fuer Fachinformatiker (Anwendungsentwicklung) bereitzustellen. - Docfx muss diese XML-Kommentare ohne Luecken in der API-Referenz verarbeiten.
- Wenn API-Signaturen oder XML-Kommentare geaendert werden, muss die docfx-Ausgabe im selben Arbeitsgang neu erstellt werden.
Im Projekt muss ein klarer Hinweis enthalten sein, der mindestens folgende Punkte abdeckt:
- TuiVision ist ein Lern-/Beispielprojekt zur Modernisierung von Turbo-Vision-Konzepten mit C#/.NET 10 und Agentic-AI.
- Das Projekt beabsichtigt keine Verletzung von Rechten oder Lizenzen des Originalprojekts Turbo Vision.
- Das Projekt verfolgt keine Konkurrenzabsicht gegenueber Turbo Vision.
- Es handelt sich nicht um eine offizielle Fortfuehrung oder ein offiziell verbundenes Produkt.
- Fuer uebernommene Originalquellen gelten deren jeweilige Lizenz- und Rechtehinweise weiterhin.
Der folgende Standard gilt fuer alle Dokumentationsartefakte (API-Referenz, Guides, Architektur, README, Changelog):
- Zielgruppe ist Fachinformatiker (Anwendungsentwicklung) mit Lern- und Praxisfokus.
- Jede Dokumentationsart folgt einer passenden Mindeststruktur: Guides mit Zweck, Voraussetzungen, Schritten und Ergebnis; API-Referenz mit Signatur und Verhalten; Changelog mit Aenderung, Motivation und Auswirkung.
- Fachbegriffe werden kontextbezogen erklaert; Abkuerzungen werden beim ersten Auftreten aufgeloest.
- Inhalte enthalten dort, wo fachlich sinnvoll, nachvollziehbare Beispiele (Code, Ablauf oder Nutzungsszenario), nicht nur Theorie.
- Entscheidungen und Trade-offs werden begruendet, damit technische Hintergruende lernbar sind.
- Komplexe Themen werden schrittweise von Grundlagen zu Details aufgebaut.
- Die Struktur ist ueber alle Dokumente konsistent (einheitliche Kapitel- und Benennungslogik).
- Dokumentation wird bei API- oder Verhaltensaenderungen im selben Arbeitsgang aktualisiert.
Fuer jedes portierte Beispielprogramm ist eine eigene Dokumentationsseite mit mindestens folgenden Inhalten verpflichtend. Dies gilt sowohl fuer die 25 MUSS-Beispiele aus examples/ als auch fuer spaeter portierte TP7-Anschlussbeispiele aus TVDEMOS/ und TVFM/:
- Ziel und Lernnutzen des Beispiels (welche Konzepte werden vermittelt).
- Voraussetzungen (SDK, Build-Schritte, ggf. Eingabedaten).
- Startanleitung (Befehle, erwartete Konsolenausgabe/Verhalten).
- Bedienung und typische Interaktionen im Beispiel.
- Technische Einordnung (relevante Klassen, Events, Datenfluss).
- Varianten oder Uebungen fuer Lernende (z. B. Erweiterungsaufgaben).
- Typische Fehlerbilder und Troubleshooting-Hinweise.
- Verweis auf Quellcode und zugehoerige Tests.
Fuer den Lehr- und Beispielcharakter gilt fuer den TuiVision-Quellcode:
- Jede fachlich gepflegte Quelldatei in
src/beginnt mit einem kurzen Datei-/Modulkommentar (1 bis 3 Zeilen, Deutsch zuerst, Englisch danach). Der Kommentar benennt mindestens: a) die Hauptverantwortung der Datei, b) ihren technischen oder fachlichen Kontext im TuiVision-System und c) bei Bedarf die wichtigste Abgrenzung zu anderen Modulen. Diese Pflicht gilt ausdruecklich auch fuer von KI-Agenten sowie in Spec-/SDD-Workflows erzeugte Quelldateien. Ausgenommen sind nur rein technische, vollautomatisch regenerierbare Artefakte. Triviale Kommentare ohne Zusatznutzen, insbesondere blosse Wiederholungen von Klassen-, Typ- oder Dateinamen, gelten nicht als Erfuellung dieses Kriteriums. - Methoden mit nicht-trivialer Logik (z. B. mehrere Verzweigungen, komplexe Zustandswechsel, nicht offensichtliche Algorithmen) erhalten erklaerende Kommentare.
- Kommentare erklaeren das Warum (Entscheidung, Randbedingung, Trade-off), nicht nur das Was.
- Interne Invarianten, Vorbedingungen und Nachbedingungen werden bei komplexer Logik explizit dokumentiert.
- Relevante Nebenwirkungen, Fehlerfaelle und Verhaltensgrenzen werden am Codepunkt beschrieben.
- Historische Portierungsentscheidungen und bewusst abweichendes Verhalten zum Original werden am Codepunkt begruendet.
- Kommentare werden bei Codeaenderungen im selben Arbeitsgang aktualisiert; veraltete Kommentare gelten als Qualitaetsmangel.
Fuer die Arbeitsumgebungen MacBook Air M2 und Mac mini M4 Pro gilt:
- Die Nutzung von
gh,codex,claude,copilotundgeminifuer taegliche Entwicklungsschritte ist indocs/guidesnachvollziehbar beschrieben.codex,claude,copilotundgeminisind auf beiden Systemen als Pflichtinstallation vorzuhalten.glab,opencodeund JetBrainsjuniekoennen optional ergaenzt werden und sind bei Nutzung ebenfalls nachvollziehbar zu dokumentieren. - Mindestens die Schluesselablaeufe Build, Test, Branch/PR-Workflow und Repository-Operationen sind dokumentiert.
- Die Befehle sind so dokumentiert, dass sie auf beiden Systemen mit den angegebenen Voraussetzungen reproduzierbar funktionieren.
- Voraussetzungen (authentifizierte CLI-Tools) und die Versionspruefung sind explizit dokumentiert.
- GitHub Spec-Kit ist als Pflichtbestandteil in allen vier KI-Agenten (
codex,claude,copilot,gemini) installiert; Installation, Versionspruefung und Grundnutzung sind fuer beide Systeme dokumentiert. - Fuer optional genutzte KI-Agenten
opencodeund JetBrainsjuniegilt ebenfalls: Wenn sie lokal eingerichtet sind, ist GitHub Spec-Kit auch dort zu installieren, mit Versionspruefung zu versehen und in der Workflow-Dokumentation nachweisbar zu nutzen. - Falls zusaetzliche Tools noetig sind (z. B. DocFX), ist die automatisierte Bereitstellung per dokumentiertem Befehl Bestandteil des Workflows.
- Der Multi-Mac-Workflow ist der primaere Entwicklungs- und Testworkflow des Projekts. Zusaetzlich sind Windows und Linux als Kompatibilitaetsumgebungen zu beruecksichtigen; unter Windows bevorzugt WSL mit aktuellem Ubuntu (derzeit
Ubuntu 24.04). - Soweit praktikabel, werden Linux- und Windows/WSL-Kompatibilitaetspruefungen auch in GitHub Actions oder aequivalenten automatisierten Nachweisen mitgefuehrt.
Statuscheckliste Pflichtguides:
-
docs/guides/getting-started.md -
docs/guides/architecture.md -
docs/guides/concepts/event-loop.md -
docs/guides/concepts/view-hierarchy.md -
docs/guides/concepts/coordinate-system.md -
docs/guides/concepts/serialization.md -
docs/guides/tutorials/first-dialog.md -
docs/guides/examples/mit einer Seite pro portiertem Beispielprogramm - [-] Reihenfolgehinweis: zuerst die allgemeinen Guides (
getting-started,architecture,concepts/*) aufbauen, danach Tutorials, danach die Beispiel-Guides parallel zu den Beispielportierungen pflegen.
Die folgenden Guides sind verpflichtend bereitzustellen:
| Datei/Ordner | Mindestinhalt |
|---|---|
getting-started.md |
Installation, Build, erstes Beispielprogramm starten; Zielgruppe: Azubis ohne TV-Vorkenntnisse |
architecture.md |
Moduluebersicht, View-Hierarchie, Event-System, Koordinatensystem — konzeptuell mit Diagrammen oder Codeauszuegen |
concepts/event-loop.md |
Wie Ereignisse entstehen, weitergeleitet und verarbeitet werden (HandleEvent, PutEvent, Broadcast) |
concepts/view-hierarchy.md |
TView, TGroup, Fokus, Owner/Parent-Beziehungen, Draw-Zyklus |
concepts/coordinate-system.md |
Lokale vs. globale Koordinaten, MakeLocal/MakeGlobal, TRect-Semantik |
concepts/serialization.md |
Envelopenformat, TRecordRegistry, polymorphe De-/Serialisierung |
tutorials/first-dialog.md |
Vollstaendiger Schritt-fuer-Schritt-Guide: eigenen Dialog aufbauen und in eine App einbinden |
examples/ |
Pro portiertem Beispielprogramm eine Seite gemaess M-18 und Abschnitt 10.4; fuer TP7-Anschlusswellen koennen parallele Unterordner oder klar benannte Zusatzseiten verwendet werden |
Die Nutzerdokumentation speist sich aus folgenden Quellen in absteigender Prioritaet:
-
Borland-Originaldokumentation (Tier 1 – Konzepte und Struktur)
- Turbo Vision for C++ User's Guide (Borland International, 1992; lokale Quelle: TVDocs/Borland-Turbo-Vision-for-C-User-s-Guide.pdf) – Konzepte, Architektur, Tutorials, Event-Modell
- Turbo Vision for C++ Reference Guide (Borland International, 1992) – vollstaendige Klassenreferenz mit Verhalten und Beispielen
- Zusaetzlich verifiziertes oeffentlich zugaengliches Begleitdokument: Turbo Vision Version 2.0 Programming Guide (Borland, 1992; lokale Quelle: TVDocs/Turbo_Vision_Version_2.0_Programming_Guide_1992.pdf)
- Das User's Guide und das zusaetzlich genannte Programming Guide liegen damit in diesem Repository als originale PDF-Quellen unter
TVDocs/; fuer das separat benannte Reference Guide ist derzeit keine eigenstaendig verifizierte Einzeldatei hinterlegt. - Adaptionspflicht: Diese Werke dienen ausschliesslich als inhaltliche Vorlage und Inspirationsquelle. Jeder Text ist vollstaendig neu zu formulieren: C++ wird zu C#, DOS- und Borland-Terminologie wird durch TuiVision- und .NET-Terminologie ersetzt, das Sprachniveau wird auf CEFR B2 angepasst. Woertliche Textuebernahmen sind nicht zulaessig.
-
Lokale Hilfsfassungen fuer Recherche und agentische Dokuarbeit (nicht normative Arbeitsmittel)
- OCR-Textfassungen und Markdown-Arbeitsfassungen: TVDocs/Borland-Turbo-Vision-for-C-User-s-Guide.txt, TVDocs/Borland-Turbo-Vision-for-C-User-s-Guide.md, TVDocs/Turbo_Vision_Version_2.0_Programming_Guide_1992.txt, TVDocs/Turbo_Vision_Version_2.0_Programming_Guide_1992.md
- Diese Fassungen dienen ausschliesslich der lokalen Suche, Navigation und agentischen Aufbereitung. Bei Konflikten oder OCR-Fehlern haben die PDF-Originalquellen aus Tier 1 Vorrang.
-
tv203s C/C++-Quellcode (Tier 2 – Verhaltensreferenz)
tv203s/contrib/tvision/als massgebliche Referenz fuer das Originalverhalten- Wird genutzt, um Verhalten zu erklaeren und bewusste Abweichungen der C#-Portierung zu begruenden
-
C# Quellcode und XML-Kommentare (Tier 3 – API-Dokumentation)
- Primaerquelle fuer alle API-Referenzseiten; docfx erzeugt daraus automatisch die API-Doku
- XML-Kommentare muessen vollstaendig und didaktisch gemaess Abschnitt 10.1 sein
-
Portierte Beispielprogramme (Tier 4 – Nutzungsszenarien)
examples/liefert konkrete Anwendungsszenarien fuer Tutorials und konzeptuelle Guides
- Alle Guides sind bilingual zu verfassen: Deutsch zuerst, Englisch als gleichwertiger zweiter Abschnitt oder parallel.
- Sprachniveau: CEFR B2 – klare Satzstruktur, keine Umgangssprache, Fachbegriffe beim ersten Auftreten erklaert und mit Originalbegriff in Klammern angegeben.
- Zielgruppe: Auszubildende Fachinformatiker Anwendungsentwicklung mit grundlegenden C#-Kenntnissen, ohne Vorkenntnisse in TUI-Frameworks.
- Fuer grosse normative Dokumente wie
Pflichtenheft*.mdundLastenheft*.mdist aus Uebersichtsgruenden eine synchron gepflegte englische Parallelfassung mit Suffix.EN.mdzulaessig und empfohlen; die deutsche Fassung bleibt kanonisch, sofern nicht explizit anders markiert. - Der didaktische Standard gemaess Abschnitt 10.3 gilt ergaenzend fuer alle Nutzerdokumentation.
Statuscheckliste GitHub Pages:
- Repository-Einstellung
Settings -> Pages -> Source = GitHub Actions - Workflow-Datei
.github/workflows/docs-deploy.yml - Trigger auf
mainfuerdocs/**,src/**,docfx.json - Schritte
checkout,setup-dotnet,restore/build,docfx,upload-pages-artifact,deploy-pages - Berechtigungen
pages: write,id-token: write,contents: read - Erfolgreicher Deployment-Nachweis nach relevantem Merge auf
main - Veroeffentlichte GitHub-Pages-URL liefert die aktuelle docfx-Ausgabe aus
Im GitHub-Repository hindermath/TuiVision muss unter Settings → Pages → Source die Option GitHub Actions aktiviert sein. Eine manuelle Branch-basierte Veroeffentlichung (z. B. gh-pages-Branch) ist nicht zulaessig, da sie keinen nachvollziehbaren Deployment-Status im CI-Workflow erzeugt.
Das Deployment wird in einer dedizierten Workflow-Datei .github/workflows/docs-deploy.yml konfiguriert, getrennt vom Build-/Test-Workflow. Die Trennung stellt sicher, dass ein fehlgeschlagenes Deployment den Build-/Test-Status nicht beeinflusst und umgekehrt.
Der Workflow wird ausgeloest durch einen push auf den Branch main, eingeschraenkt auf folgende Pfade:
on:
push:
branches:
- main
paths:
- 'docs/**'
- 'src/**'
- 'docfx.json'Dadurch wird ein Deployment nur ausgeloest, wenn Dokumentationsinhalte, XML-Kommentare im Quellcode oder die docfx-Konfiguration geaendert wurden. Reine Code-Commits ohne Doku-Relevanz loesen kein Deployment aus.
Der Workflow benoetigt folgende GitHub Actions in dieser Reihenfolge:
| Schritt | Action | Zweck |
|---|---|---|
| 1 | actions/checkout |
Repository auschecken |
| 2 | actions/setup-dotnet |
.NET 10 SDK bereitstellen (fuer dotnet build zur XML-Doc-Erzeugung) |
| 3 | dotnet restore + dotnet build |
XML-Kommentardateien erzeugen, die docfx als API-Quelle benoetigt |
| 4 | docfx docfx.json |
Statische Dokumentationsseiten generieren |
| 5 | actions/upload-pages-artifact |
Erzeugtes Ausgabeverzeichnis als Pages-Artefakt hochladen |
| 6 | actions/deploy-pages |
Artefakt auf GitHub Pages veroeffentlichen |
Der Job benoetigt folgende explizite Berechtigungen im Workflow:
permissions:
pages: write
id-token: write
contents: readDer Deployment-Job muss der GitHub-Pages-Umgebung zugeordnet sein:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}- Der Workflow
.github/workflows/docs-deploy.ymlexistiert und enthaelt Trigger, Berechtigungen, Umgebung und alle sechs Schritte gemaess diesem Abschnitt. - Nach einem Merge auf
mainmit Aenderungen an den definierten Pfaden ist der Deployment-Job im Actions-Tab des Repositories als erfolgreich abgeschlossen sichtbar. - Die veroeffentlichte GitHub-Pages-URL liefert die aktuelle docfx-Ausgabe aus.
| Risiko | Bewertung | Gegenmassnahme |
|---|---|---|
| Lizenzlage der historischen Quellen (Borland/Inprise + spaetere GPL/BSD-Anteile) | mittel/hoch | Klarer Disclaimer (M-13), saubere Trennung eigener und uebernommener Inhalte, juristisch-technische Klaerung |
| API-/Verhaltensunterschiede zwischen Original und Port | mittel | Golden-Tests mit Beispielprogrammen, dokumentierte Abweichungen |
| Konsolidierung vieler historischer Treiber auf einen Managed-.NET-Treiber | mittel | Funktionale Priorisierung nach Kernfeatures, Regressionstests |
| Umfang der Beispielportierung | mittel | Inkrementelle Wellen, pro Beispiel Smoke-Test |
| Vermeidung nativer Abhaengigkeiten bei zugleich hoher Funktionsnahe | mittel | Architekturregeln (M-12) und Build-Checks ohne Native-Payload |
Die verbleibenden Arbeiten sind in folgender Reihenfolge abzuarbeiten, damit die MUSS-Abnahme mit moeglichst geringem Ruecksprungrisiko erreicht wird:
Dieser Marker ist bei jeder wesentlichen Fortschreibung des Pflichtenhefts auf den dann hoechstprioren offenen Arbeitsschritt zu verschieben.
-
Phase 7 Treiberkonsolidierung abschliessen — ✓ ABGESCHLOSSEN (Branch
005-driver-consolidation-m07)- Managed-Console-Treiber stabilisiert;
DriverCapabilityMapmit 5 Faehigkeitsgruppen dokumentiert. - 151 historische
.cc-Dateien indocs/porting-status.mdabgebildet; alle mit Primaerziel, Statuswert, Nachweis und Begruendung. - 30 MSTests in
tests/TuiVision.Drivers.Tests/— alle bestanden.
- Managed-Console-Treiber stabilisiert;
-
M-07 vollstaendig schliessen und das Eingangstor fuer Phase 8 (Beginn der Beispielportierungen) nachweisbar schliessen — ✓ ABGESCHLOSSEN (Branch
006-close-phase8-gate)docs/porting-status.mdschliesst alle 151 historischen.cc-Zeilen final alsportiert + getestetoderbewusst ausgelassen + Begruendung.dotnet build --configuration Release,dotnet test,dotnet format --verify-no-changesunddocfx docfx.jsonsind fuer das Closure-Paket vom2026-03-27erfolgreich.- Die harte 5x-70-%-Coverage-Huerde ist erfuellt:
TuiVision.Core89,11 %,TuiVision.Controls84,10 %,TuiVision.Serialization83,33 %,TuiVision.Compatibility80,95 %,TuiVision.Drivers.Console97,43 %. - Closure-Commit-Referenz:
docs: close phase-8 entrance gate for feature 006.
-
MUSS-Beispielwellen 1 bis 4 portieren
- Das Eingangstor aus Abschnitt 8.2 ist bestanden; Welle 1 ist abgeschlossen (Branch
007-port-wave1-examples, 2026-03-28). - Welle-1-Lieferumfang:
desklogo,msgcls,tutorial(16 Schritte),videomode; 41 Smoke-Tests gruen; Guides unterdocs/guides/examples/geliefert; Release-Build sauber,dotnet format --verify-no-changesbestanden. - Die 25 Originalbeispiele aus
tv203s/contrib/tvision/examplesbleiben bis zur Abnahme der einzige verpflichtende Beispielumfang. - Die vier Wellen sind als vier eigenstaendige Unterphasen
3.1bis3.4zu behandeln; sie werden nacheinander abgearbeitet und jeweils separat geplant, portiert, getestet und dokumentiert. 3.1= Welle 1: Grundlegende Anwendungsstruktur — ✓ ABGESCHLOSSEN3.2= Welle 2: Controls und Dialoge — ✓ ABGESCHLOSSEN3.2a= Welle 2: Interaktive Showcase-Stufe — ✓ ABGESCHLOSSEN (Branch012-interactive-wave2-demos)3.2b= Welle 2: Sichtbarer Komponenten-Nachweis — ✓ ABGESCHLOSSEN (Branch013-wave2-visual-component-remediation)3.3= Welle 3: Editor, Dateien, Hilfe und Streams3.4= Welle 4: Terminal-Emulation und erweiterte Zeichensaetze
- Das Eingangstor aus Abschnitt 8.2 ist bestanden; Welle 1 ist abgeschlossen (Branch
NAECHSTER SCHRITT <<< Welle 3 - Editor, Dateien, Hilfe und Streams: Den naechsten Spec-Kit-Feature-Lauf fuer
tvedit,bhelpundhelpdemovorbereiten, nachdem Welle 2 inklusive sichtbarem Komponenten-Nachweis abgeschlossen ist.
-
MUSS-Testumfang und Beispiel-Smoke-Tests schliessen
- Fuer alle 25 portierten Originalbeispiele automatisierte Smoke-Tests in CI bereitstellen.
- Die MUSS-Tests gemaess Abschnitt 9.4 fuer Pull Requests und
mainvollstaendig nachweisbar machen.
-
Pflichtdokumentation parallel zur Portierung fertigstellen
- Pflichtguides unter
docs/guides/, Beispiel-Guides gemaess Abschnitt 10.4, XML-Dokumentation, Changelog und didaktische Vereinheitlichung nicht auf den Projektabschluss verschieben. - Dokumentation ist im selben Arbeitsgang wie API-, Verhaltens- und Beispielaenderungen nachzuziehen.
- Pflichtguides unter
-
Multi-Mac-Workflow und GitHub Pages abschliessen
- Die dokumentierten Schluesselablaeufe fuer
gh,codex,claude,copilot,geminiund GitHub Spec-Kit auf beiden Macs nachvollziehbar absichern; optionale Werkzeugeglab,opencodeundjuniebei Nutzung einschliessen, bei den beiden optionalen KI-Agenten jeweils ebenfalls mit Spec-Kit. M-22mit automatischem GitHub-Pages-Deployment der docfx-Dokumentation aufmainschliessen.
- Die dokumentierten Schluesselablaeufe fuer
-
TP7-Anschlusswellen erst nach MUSS-Abnahme verfolgen
TVDEMOS/undTVFM/bleiben wertvolle Anschlussarbeit, duerfen aber wederM-10noch die Abschlusskriterien fuer die 25 Originalbeispiele verwischen.
Die Abnahme gilt als bestanden, wenn:
- Alle MUSS-Anforderungen M-01 bis M-22 nachweisbar erfuellt sind.
- [-] Das Framework in C#/.NET 10 (net10.0) buildbar ist und die definierten Tests durchlaufen.
- Die API-Dokumentation mit docfx erzeugt wird.
- Alle 25 identifizierten Original-Beispielprogramme in portierter Form vorliegen und mindestens per Smoke-Test validiert sind; TP7-Anschlussbeispiele werden zusaetzlich und getrennt nachverfolgt.
- Interaktiv gedachte Beispielprogramme zeigen beim normalen Start ueber
dotnet run --project examples/<Name>einen sichtbaren Bedienpfad mit Rueckmeldung; reine Headless-Seams oder direkte Testmethoden reichen fuer die finale Lern- und Review-Reife nicht aus. - Das Projekt im GitHub-Repository
https://github.com/hindermath/TuiVision.gitnachvollziehbar versioniert ist. - Der verbindliche Lizenz-/Disclaimer-Hinweis gemaess Abschnitt 10.2 sichtbar enthalten ist.
- Die Gesamtdokumentation den didaktischen Standard gemaess Abschnitt 10.3 nachweisbar einhaelt.
- Alle lernrelevanten Dokumente, Guides sowie die aktiven
Pflichtenheft-/Lastenheft-Artefakte liegen fuer Auszubildende nachvollziehbar in Deutsch und Englisch auf CEFR-B2-Niveau vor; grosse normative Dokumente duerfen dafuer als synchron gepflegte.EN.md-Parallelfassung statt als inline zweisprachiger Block bereitgestellt werden. - Fuer alle 25 portierten Original-Beispielprogramme liegt eine Dokumentation gemaess Abschnitt 10.4 vor; fuer TP7-Anschlussbeispiele gilt derselbe Dokumentationsstandard, sobald sie portiert werden.
- [-] Der Quellcode erfuellt den Dokumentationsstandard gemaess Abschnitt 10.5 nachweisbar.
- Der Mindest-Testumfang gemaess Abschnitt 9.4 ist nachweisbar vollstaendig erfuellt.
- [-] Der lokale Workflow mit
gh,codex,claude,copilotundgeminigemaess Abschnitt 10.6 ist auf beiden macOS-Systemen nachweisbar anwendbar; GitHub Spec-Kit ist in allen vier KI-Agenten installiert und in den dokumentierten Ablaeufen nutzbar. Optionale Werkzeugeglab,opencodeundjuniesind bei Nutzung ebenfalls erfasst; fueropencodeundjuniemit installierter Spec-Kit-Unterstuetzung. - Bei API-/XML-Kommentar-Aenderungen ist die docfx-Dokumentation nachweisbar neu erzeugt worden.
- Fuer erzeugte HTML-Dokumentation und textorientierte Review-Pfade liegt ein nachvollziehbarer A11Y-Nachweis gemaess
Programmierung #include<everyone>vor: WCAG 2.2 AA als Baseline, textorientierter Review nach DocFX-Neubau sowie Nutzbarkeit fuer Braille-Zeile, Screenreader und Textbrowser. - Die docfx-Dokumentation ist ueber GitHub Pages des Repositories
hindermath/TuiVisionerreichbar und wird bei jedem Merge aufmainmit Doku-relevanten Aenderungen automatisch aktualisiert (M-22).
Nicht Bestandteil der MUSS-Abnahme:
- Vollstaendige bitgenaue Replikation jeder historischen Plattformbesonderheit
- NuGet-Veroeffentlichung (optional)
- Native OS-Bindings oder betriebssystemspezifische Zusatzruntimes