Desktop application built in C# + WPF (.NET 8) focused on the dayβtoβday operation of a distribution business: inventory, combos, deliveries, costs, and movements. It prioritizes clean architecture, explicit business rules, and a consistent UX.
Actively in development. The system is continuously evolving and improvements are added progressively. This repository reflects ongoing work.
- π¦ Inventory with stock control and movement traceability.
- π§© Combos/groupings and product relationships.
- π Deliveries with priorities and dateβbased alerts.
- πΎ Local persistence with SQLite + EF Core.
- π§ Modular navigation and reactive UI through MVVM.
- π§© MVVM with strict separation of View β ViewModel β Model.
- π§° Dependency Injection for services, navigation, and ViewModels.
- π§ Domain services encapsulating business rules.
- ποΈ Soft delete to preserve traceability.
- πͺ Windows 10/11 (WPF is Windowsβonly).
- 𧬠.NET SDK 8.0 or later.
dotnet restore
dotnet build
dotnet runIf the process is blocking compilation:
taskkill /F /IM GestionApp.exe
dotnet buildLocal SQLite database created automatically at startup using EnsureCreated():
%APPDATA%\GestionApp\gestion.db
Technical note: if you change models or relationships, delete
gestion.dband run again. Migrations are not used in this workflow.
GestionApp/
βββ Data/ # DbContext and EF Core configuration
βββ Helpers/ # Commands, converters, and MVVM utilities
βββ Models/ # Domain entities
βββ Services/ # Business and navigation services
βββ ViewModels/ # Presentation logic
βββ Views/ # WPF views (XAML)
βββ App.xaml # Resources and DataTemplates
βββ MainWindow.xaml # Main shell
βββ GestionApp.csproj
| Package | Purpose |
|---|---|
| Microsoft.EntityFrameworkCore.Sqlite | SQLite persistence |
| Microsoft.EntityFrameworkCore.Tools | EF Core tooling |
| Microsoft.Extensions.DependencyInjection | DI container |
- Keep logic in services and ViewModels; views should be βthinβ.
- Forms use
stringfor numeric fields to avoid decimal format issues. - Critical operations register movements for auditability.
- Extended technical documentation in
docs/DOCUMENTACION.md.
If you want to collaborate, open an issue describing the proposed change. PRs should include a clear technical description and minimal manual verification steps.
Built with C# and WPF (.NET 8).