Files

67 lines
2.6 KiB
Markdown

# StandardProducts — desktop-приложение (C# / .NET 8 / WPF)
Каталог стандартных изделий для Windows 11: таблицы ГОСТ, поиск, импорт/экспорт JSON.
Хранилище — SQLite, та же схема, что в Python-версии проекта.
## Требования
- Windows 10/11 (для запуска)
- .NET SDK 8.0+ (для сборки)
- Visual Studio 2022 не обязательна: достаточно `dotnet` CLI
## Сборка и запуск
```bash
cd dotnet
dotnet build
dotnet run --project src/StandardProducts.App
```
## Публикация
Self-contained один файл (не требует .NET у пользователя):
```bash
dotnet publish src/StandardProducts.App \
-c Release -r win-x64 --self-contained true \
-p:PublishSingleFile=true \
-o publish
```
Результат — `dotnet/publish/StandardProducts.exe` (~150 МБ, включает WPF и SQLite).
Для MSIX используйте Windows Application Packaging Project или `MakeAppx`; для
внутреннего распространения достаточно exe.
## Возможности
- таблица изделий с поиском по обозначению, наименованию, стандарту и атрибутам;
- загрузка семейства болтов ГОСТ 7805-70 (5 размеров × 9 длин = 45 изделий);
- импорт/экспорт JSON (формат совместим с Python-версией);
- удаление изделий, просмотр атрибутов выбранной позиции;
- регистронезависимый поиск по кириллице (SQLite-функция `ulower`).
База создаётся автоматически:
`%LOCALAPPDATA%\StandardProducts\catalog.db`.
## Структура
```
dotnet/
StandardProducts.sln
src/StandardProducts.Core/ # модели, SQLite, ГОСТ 7805-70, JSON — net8.0
src/StandardProducts.App/ # WPF-интерфейс — net8.0-windows
tests/StandardProducts.Core.Tests/ # xunit
```
Ядро (`Core`) не зависит от WPF и собирается/тестируется на любой ОС:
```bash
dotnet test tests/StandardProducts.Core.Tests
```
## 3D / STEP
В текущей версии не реализованы и не нужны. Если появятся:
отдельная нативная библиотека на OpenCASCADE (C++), вызываемая из C#
через P/Invoke/C++/CLI; UI и каталог при этом не меняются.