WPF реализация

This commit is contained in:
Roman Pytkov
2026-06-04 22:02:15 +03:00
parent 85e9092d14
commit f9da101c4a
17 changed files with 521 additions and 4 deletions

View File

@@ -1,6 +1,6 @@
# SMS Task Two — редактор переменных среды
Десктопное приложение на **Avalonia** (.NET 8) для чтения и изменения пользовательских переменных среды. Ядро, ViewModels и модуль окружения вынесены в переносимые проекты для последующего порта на **WPF**.
Десктопное приложение на **Avalonia** и **WPF** (.NET 8) для чтения и изменения пользовательских переменных среды. Ядро, ViewModels и модуль окружения вынесены в общие проекты.
## Solution
@@ -15,7 +15,8 @@
| `Sms.Environment.Linux` | `~/.config/environment.d/99-sms-task-two.conf` |
| `Sms.TaskTwo.Core` | Конфигурация, сервис, логирование |
| `Sms.TaskTwo.ViewModels` | MVVM (`CommunityToolkit.Mvvm`) |
| `Sms.TaskTwo.Avalonia` | UI-хост |
| `Sms.TaskTwo.Avalonia` | UI-хост (Avalonia) |
| `Sms.TaskTwo.Wpf` | UI-хост (WPF) |
## Сборка и запуск
@@ -83,6 +84,10 @@ dotnet run --project src/Sms.TaskTwo.Avalonia/Sms.TaskTwo.Avalonia.csproj
2. Значения по умолчанию показываются в UI, в ОС записываются при первом изменении пользователем.
3. Pixel-perfect вёрстка не требуется; элементы стилизованы по макету (заголовок, DataGrid, кнопки «−» / «×»).
## Порт на WPF
## WPF
Создать `Sms.TaskTwo.Wpf`, подключить `Sms.TaskTwo.Core`, `Sms.TaskTwo.ViewModels`, зарегистрировать `IEnvironmentVariableStore` так же, как в `App.axaml.cs` Avalonia-проекта.
```bash
dotnet run --project src/Sms.TaskTwo.Wpf/Sms.TaskTwo.Wpf.csproj
```
Конфигурация: [`src/Sms.TaskTwo.Wpf/appsettings.json`](src/Sms.TaskTwo.Wpf/appsettings.json) (аналогично Avalonia).