Skip to content

Repository files navigation

SKS-Winforms

SKS-Winforms (Salmon King Seafood) is a .NET 10 Windows Forms desktop application that modernizes the legacy VB6 SKSVB6 desktop application into a maintainable .NET codebase, backed by EF Core + SQLite, while deliberately preserving the original desktop, forms-based user experience rather than moving to the web.

This modernization was performed using VELO AI Tools from Growth Acceleration Partners.

It's a sales and inventory management system for a seafood distribution company: customer and supplier management, product catalog maintenance, purchase order reception, sales order requests, inventory stock tracking, order approval workflows, and employee account management.

For a deeper architectural walkthrough, see technical-doc/SKS-Winforms-Technical-Documentation.html.

Tech Stack

  • .NET 10 / Windows Forms
  • Microsoft.Extensions.Hosting (Generic Host + DI)
  • Entity Framework Core + SQLite
  • Serilog (console + rolling file sinks)
  • xUnit + EF Core InMemory (tests)

Prerequisites

  • .NET 10.0 SDK (or later) — https://dotnet.microsoft.com
  • Windows — this is a net10.0-windows WinForms app; it does not run on Linux/macOS
  • Visual Studio 2022 (17.12+) or VS Code with the C# extension
  • Git (optional, for version control)

Build and Run

cd SKS-Winforms
dotnet build
dotnet run --project SKS-Winforms

The app connects directly to the Orders.db SQLite file at the repository root (see appsettings.json / appsettings.Development.jsonConnectionStrings:DefaultConnection). The path is relative and resolved against the build output directory at startup, so keep the project layout intact if you relocate the solution.

Note: Login is currently bypassed at startup — the app auto-authenticates as an Administrator (MainForm.ShowSplashAndLogin) instead of showing LoginDialog. This is a temporary development convenience; the original login form/service are still in the codebase (Pages/Login, Application/Services/Login) and can be wired back in when needed.

Running Tests

dotnet test SKS-Winforms.Tests/SKS-Winforms.Tests.csproj

Tests use xUnit and EF Core's InMemory provider, so they don't touch the real Orders.db.

Project Structure

SKS-Winforms/               Main WinForms application
  Domain/                   Entities (EF Core models)
  Application/              DTOs and service interfaces/implementations (business logic)
  Infrastructure/           DbContext, AppState, security, caching, export, printing, audit
  Pages/                    WinForms UserControls/Forms (one folder per feature area)
SKS-Winforms.Tests/         xUnit test project
legacy/                     Original VB6 source and migration reference material
technical-doc/              Generated technical documentation

Architecture Notes

  • Clean Architecture layering: Domain / Application / Infrastructure / Pages, with business logic extracted into service interfaces (dependency-injected) rather than living in form code-behind.
  • The legacy VB6 application's 19 forms and 3 code modules all have functional equivalents here.
  • Unlike the sibling SKS-Blazor modernization, this project does not seed a fresh database on startup — it operates on the real historical Orders.db data from the VB6 application.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages