Schritt-Liste um "Vorhandene Netzwerke" erweitert (jetzt 11 Schritte), neuen Abschnitt zur Funktion ergänzt, Architektur-Diagramm um den neuen Schritt und ein Nodify/NetworkAnalysisService-Flowdiagramm erweitert, Nodify in "Verwendete Bibliotheken" aufgenommen und die Roadmap-Tabelle um den neuen Milestone ergänzt. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
6b90a4d836
commit
669e653cf4
1 file changed
+32
-10
@@ -15,20 +15,25 @@ Schritt für Schritt, mit Erklär-Tooltips (ⓘ) bei jedem Fachbegriff:
|
||||
|
||||
1. **Verbindung** – IP-Adresse, Benutzername, Passwort
|
||||
2. **Geräte-Erkennung** – liest Modell, RouterOS-Version und Schnittstellen aus
|
||||
3. **Modus wählen** – geführter Assistent (Standard) oder **Experten-Modus**: Letzterer blendet in den folgenden Schritten zusätzliche, technischere RouterOS-Optionen ein (siehe unten)
|
||||
4. **Internet-Zugang** – WAN-Schnittstelle, DHCP oder feste IP, NAT
|
||||
5. **Heimnetzwerk (DHCP)** – Bridge, IP-Bereich, DHCP-Server, DNS
|
||||
6. **VLANs** *(optional)* – zusätzliche, getrennte Netzwerke (z. B. Gäste, IoT)
|
||||
7. **WLAN** *(übersprungen, wenn nicht vorhanden – oder bewusst abwählbar, z. B. bei einem reinen Switch)*
|
||||
8. **Firewall** – sichere Basisregeln, optionale Portfreigaben
|
||||
9. **Zusammenfassung** – alle geplanten Änderungen im Klartext, automatisches Backup auf dem Gerät vor dem Anwenden, **PDF-Export** mit allen Zugangsdaten inkl. WLAN-QR-Code zum Ausdrucken/Aufbewahren
|
||||
10. **RouterOS-Update** *(optional)* – prüft auf eine neuere RouterOS-Version und kann sie mit deutlicher Warnung starten
|
||||
3. **Vorhandene Netzwerke** – bei einem Bestandsgerät: anklickbare Grafik der bereits eingerichteten Bridges, VLANs, IP-Adressen, DHCP-Server, Routen und WLANs (siehe unten); bei werksneuen Geräten erscheint nur ein kurzer Hinweis
|
||||
4. **Modus wählen** – geführter Assistent (Standard) oder **Experten-Modus**: Letzterer blendet in den folgenden Schritten zusätzliche, technischere RouterOS-Optionen ein (siehe unten)
|
||||
5. **Internet-Zugang** – WAN-Schnittstelle, DHCP oder feste IP, NAT
|
||||
6. **Heimnetzwerk (DHCP)** – Bridge, IP-Bereich, DHCP-Server, DNS
|
||||
7. **VLANs** *(optional)* – zusätzliche, getrennte Netzwerke (z. B. Gäste, IoT)
|
||||
8. **WLAN** *(übersprungen, wenn nicht vorhanden – oder bewusst abwählbar, z. B. bei einem reinen Switch)*
|
||||
9. **Firewall** – sichere Basisregeln, optionale Portfreigaben
|
||||
10. **Zusammenfassung** – alle geplanten Änderungen im Klartext, automatisches Backup auf dem Gerät vor dem Anwenden, **PDF-Export** mit allen Zugangsdaten inkl. WLAN-QR-Code zum Ausdrucken/Aufbewahren
|
||||
11. **RouterOS-Update** *(optional)* – prüft auf eine neuere RouterOS-Version und kann sie mit deutlicher Warnung starten
|
||||
|
||||
Nichts wird am Gerät verändert, bevor der Nutzer in der Zusammenfassung ausdrücklich auf „Jetzt einrichten“ klickt.
|
||||
|
||||
### Vorhandene Netzwerke (IST-Zustand-Analyse)
|
||||
|
||||
Bei einem bereits konfigurierten Bestandsgerät liest der dritte Schritt automatisch aus, was dort schon eingerichtet ist, und zeichnet es als Diagramm: jeder Knoten ist eine Bridge, ein VLAN, eine IP-Adresse, ein DHCP-Server, ein WLAN oder der Internet-Zugang. Ein Klick auf einen Knoten hebt seinen kompletten Weg („Hops") bis zum Internet-Zugang hervor. Rein informativ — verändert nichts am Gerät und fließt nicht in die vom Assistenten geplante Konfiguration ein. Bei einem werksneuen Gerät ohne bestehende Konfiguration erscheint statt der Grafik nur ein kurzer Hinweis.
|
||||
|
||||
### Experten-Modus
|
||||
|
||||
Wer RouterOS kennt, kann im dritten Schritt den Experten-Modus wählen. Die Schritte 4–8 zeigen dann zusätzlich (Laien-Modus bleibt exakt wie zuvor, Defaults entsprechen dem bisherigen Verhalten):
|
||||
Wer RouterOS kennt, kann im vierten Schritt den Experten-Modus wählen. Die Schritte 5–9 zeigen dann zusätzlich (Laien-Modus bleibt exakt wie zuvor, Defaults entsprechen dem bisherigen Verhalten):
|
||||
|
||||
- **Internet-Zugang:** DHCP-Standardroute/-DNS an/aus, feste MTU, NAT nur für ein bestimmtes Subnetz
|
||||
- **Heimnetzwerk:** DHCP-Lease-Zeit, Domainname, NTP-Server
|
||||
@@ -98,7 +103,7 @@ src/
|
||||
flowchart TB
|
||||
subgraph App["MikrotikInstaller.App (WPF, MVVM)"]
|
||||
MainVM["MainViewModel<br/>Wizard-Navigation"]
|
||||
Steps["Step-ViewModels<br/>Connection - DeviceOverview - ModeSelection -<br/>Wan - Lan - Vlan - Wlan - Firewall - Summary - Update"]
|
||||
Steps["Step-ViewModels<br/>Connection - DeviceOverview - NetworkAnalysis - ModeSelection -<br/>Wan - Lan - Vlan - Wlan - Firewall - Summary - Update"]
|
||||
Session["WizardSession<br/>geteilter Zustand über alle Schritte"]
|
||||
MainVM --> Steps --> Session
|
||||
end
|
||||
@@ -137,6 +142,21 @@ Verbindungsaufbau läuft immer über `RouterOsClientFactory`: REST-API zuerst, b
|
||||
|
||||
Der `ModeSelectionStepViewModel`-Schritt setzt lediglich `WizardSession.IsExpertMode` (bool). Jeder folgende Step-ViewModel liest dieses Flag als Passthrough-Property; die zugehörige View blendet damit zusätzliche Eingabefelder ein oder aus (`Visibility`-Binding auf denselben `BoolToVisibilityConverter`, der auch sonst im Wizard verwendet wird). Es gibt keine zweite Steps-Liste und keinen separaten Codepfad — bei nicht gesetzten Experten-Feldern (Default) erzeugen die Configurators exakt dieselben RouterOS-Befehle wie im reinen Laien-Modus.
|
||||
|
||||
### IST-Zustand-Analyse
|
||||
|
||||
```mermaid
|
||||
flowchart LR
|
||||
Service["NetworkAnalysisService<br/>Core/Analysis"]
|
||||
Facts["Existing*-Records<br/>Bridge-Ports, VLANs, IP-Adressen,<br/>DHCP-Server, Routen, WLANs"]
|
||||
StepVM["NetworkAnalysisStepViewModel<br/>App"]
|
||||
Graph["TopologyNodeViewModel / TopologyConnectionViewModel<br/>Spalten-Layout, IsHighlighted"]
|
||||
Editor["nodify:NodifyEditor<br/>Klick -> SelectedItem -> Pfad-Hervorhebung"]
|
||||
|
||||
Service --> Facts --> StepVM --> Graph --> Editor
|
||||
```
|
||||
|
||||
`NetworkAnalysisService` fragt (fehlertolerant pro Endpunkt) `/interface/bridge/port`, `/interface/vlan`, `/ip/address`, `/ip/pool`, `/ip/dhcp-server`, `/ip/route` und `/interface/wireless` ab und liefert reine Fakten — keine Positions-/Grafik-Konzepte, Core bleibt UI-frei. Der Step-ViewModel (App) baut daraus einen Baum: jeder Knoten hat höchstens einen `ParentNodeId` (Bridge-Port → Bridge, VLAN → Eltern-Interface, IP/DHCP → ihr Interface, WAN-Interface → synthetischer „Internet"-Knoten anhand der Standardroute). Das macht Pfad-Hervorhebung trivial (Eltern-Kette hochlaufen) und ein eigenes Auto-Layout überflüssig (Spalte = Tiefe im Baum). Die Grafik selbst nutzt [Nodify](https://github.com/miroiu/nodify) (reines, abhängigkeitsfreies WPF-Steuerelement für MVVM-Node-Editoren) — Klicks laufen über dessen eingebautes `SelectedItem`-Binding, nicht über eigene Maus-Behandlung.
|
||||
|
||||
### Datenstruktur
|
||||
|
||||
Die wichtigsten Records, die während eines Assistenten-Durchlaufs entstehen und durch `WizardSession` zusammengehalten werden:
|
||||
@@ -328,6 +348,7 @@ classDiagram
|
||||
|
||||
- [WPF-UI](https://github.com/lepoco/wpfui) – modernes Fluent-Design für WPF
|
||||
- [CommunityToolkit.Mvvm](https://github.com/CommunityToolkit/dotnet) – MVVM-Grundgerüst
|
||||
- [Nodify](https://github.com/miroiu/nodify) – anklickbare Netzwerk-Grafik im Schritt „Vorhandene Netzwerke"
|
||||
- [PDFsharp](https://github.com/empira/PDFsharp) – PDF-Erzeugung
|
||||
- [QRCoder](https://github.com/codebude/QRCoder) – WLAN-QR-Code
|
||||
|
||||
@@ -343,6 +364,7 @@ Die Weiterentwicklung wird als Milestones mit zugehörigen Issues im internen Gi
|
||||
| **v1.1 – Release-Housekeeping** | `v1.0.0`-Tag-Strategie klären, Copyright-Name in `LICENSE` bestätigen, Trennung Gitea (laufendes Dev) / GitHub (nur Releases) wiederherstellen |
|
||||
| **v1.2 – Eingabevalidierung** | Rest von Phase 7: Live-Fehlermeldungen bei ungültigen Eingaben (z. B. IP-/Subnetz-Format) direkt im jeweiligen Wizard-Schritt |
|
||||
| **v1.3 – SFTP-Backup-Download** | Backup-Download aufs PC per SFTP nachrüsten (bisher liegt das Backup nur auf dem Gerät selbst) |
|
||||
| **IST-Zustand-Analyse** | Route-zu-Interface-Zuordnung und Gesamt-Layout der Netzwerk-Grafik gegen ein echtes Bestandsgerät verifizieren (Route→Interface-Auflösung ist derzeit best-effort, RouterOS-versionsabhängig) |
|
||||
| **CI/CD – Gitea-Actions-Runner** | Runner registrieren und `.gitea/workflows/build.yml` erstmals scharf testen |
|
||||
|
||||
## Lizenz
|
||||
|
||||
Reference in new issue
Block a user