-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy patherstelle_app_projekt.ps1
More file actions
79 lines (68 loc) · 2.41 KB
/
erstelle_app_projekt.ps1
File metadata and controls
79 lines (68 loc) · 2.41 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
<#
.SYNOPSIS
App-Projekt Scaffolder (MVVM Pattern)
Erstellt eine professionelle Struktur für GUI/Mobile Apps.
#>
# 1. Parameter abfragen
$ProjektName = Read-Host "Wie soll die App heissen? (z.B. FinanceApp)"
if ([string]::IsNullOrWhiteSpace($ProjektName)) {
Write-Warning "Kein Name eingegeben. Abbruch."
exit
}
# 2. Pfade setzen
$BasisPfad = "$HOME\Projekte"
$ZielPfad = Join-Path -Path $BasisPfad -ChildPath $ProjektName
# 3. Hauptordner erstellen
if (-not (Test-Path $ZielPfad)) {
New-Item -ItemType Directory -Path $ZielPfad -Force | Out-Null
Write-Host " [INIT] App-Projekt initialisiert: $ZielPfad" -ForegroundColor Cyan
}
# 4. Die MVVM-Struktur (Industriestandard)
$OrdnerStruktur = @(
"src\Models", # Datenstrukturen (Datenbank-Objekte)
"src\Views", # Die Benutzeroberfläche (XAML, Pages)
"src\ViewModels", # Die Logik dahinter (Verbindung View <-> Model)
"src\Services", # API-Aufrufe, Datenbank-Logik
"resources\fonts", # Schriftarten
"resources\images", # Icons und Bilder
"tests\UnitTests" # Automatische Tests
)
foreach ($Ordner in $OrdnerStruktur) {
$Pfad = Join-Path -Path $ZielPfad -ChildPath $Ordner
if (-not (Test-Path $Pfad)) {
New-Item -ItemType Directory -Path $Pfad -Force | Out-Null
Write-Host " + Layer: $Ordner" -ForegroundColor Green
}
}
# 5. Dokumentation (README mit Architektur-Erklärung)
$ReadmeInhalt = @"
# $ProjektName
App-Architektur basierend auf MVVM.
## Struktur
- **Models**: Reine Datenobjekte.
- **Views**: UI-Komponenten (Fenster/Screens).
- **ViewModels**: Geschäftslogik und State-Management.
- **Services**: Externe Schnittstellen (API, DB).
"@
$ReadmePfad = Join-Path -Path $ZielPfad -ChildPath "README.md"
Set-Content -Path $ReadmePfad -Value $ReadmeInhalt -Encoding UTF8
Write-Host " + Doc: README.md (MVVM Info)" -ForegroundColor Green
# 6. Konfigurations-Dummy (JSON)
$ConfigInhalt = @"
{
"AppSettings": {
"AppName": "$ProjektName",
"Version": "1.0.0",
"Theme": "Dark"
}
}
"@
$ConfigPfad = Join-Path -Path $ZielPfad -ChildPath "appsettings.json"
Set-Content -Path $ConfigPfad -Value $ConfigInhalt -Encoding UTF8
Write-Host " + Config: appsettings.json" -ForegroundColor Green
# 7. Abschluss
Write-Host ">>> App-Struktur bereit. Coding time!" -ForegroundColor Cyan
Start-Sleep -Milliseconds 500
if (Get-Command "code" -ErrorAction SilentlyContinue) {
code $ZielPfad
}