HARIA Web

HARIA Web generates ASP.NET Core MVC applications and REST API facades from HARIA domain and service models. It is designed for HARIA Clean Architecture solutions and keeps generated presentation code editable and safe to customize.
Highlights
- Create an ASP.NET Core MVC project directly from a HARIA
.tdm Domain Model.
- Generate one MVC controller per Entity from the operations implemented by the Application layer.
- Map standard domain CRUD operations to familiar scaffold actions:
Index, Details, Create, Edit, and Delete.
- Generate editable ViewModels with DataAnnotations while excluding passwords, tokens, collections, and association fields.
- Generate responsive Razor views using the latest stable Bootstrap 5 release.
- Configure cookie authentication from a HARIA
<User> class and its verified Login operation.
- Reuse
ConnectionStrings:DbConnection from InitializeDB/appsettings.json.
- Generate and validate Service Model-driven ASP.NET Core REST facades from
.smd files.
Requirements
- Windows, macOS, or Linux (x64 or ARM64).
- Visual Studio Code 1.90 or newer.
- The
alisoftua.haria extension. VS Code installs it automatically as an extension dependency when it is available in the Marketplace.
- The .NET 9 SDK available as
dotnet. It runs the bundled portable CLI and builds generated HARIA solutions.
- A HARIA-generated Clean Architecture solution containing its Application, Infrastructure, InitializeDB, and solution files.
HARIA Web runs only in trusted, local workspaces because project creation executes the local dotnet CLI and writes generated files.
Create an MVC web project
- Generate the Clean Architecture backend from the
.tdm with HARIA.
- Right-click the
.tdm and select Create ASP.MVC Core Project, or run HARIA Web: New ASP.MVC Core Project from the Explorer view.
- Select one of the generated directories located inside the Domain Model project directory.
- Enter the ASP.NET Core project name. The default is
<Model>.Web.
HARIA Web infers the solution, Application, Infrastructure, and InitializeDB projects. It checks that the backend compiles, verifies the selected login service contract, adds the project references, and creates the Web project beside the other Clean Architecture projects.
New controllers and views are public by default. Add [Authorize] or a policy only to the actions that require protection.
Database connection
The generated Web project receives ConnectionStrings:DbConnection from InitializeDB/appsettings.json. Relative SQLite data sources are resolved against the sibling InitializeDB directory at runtime, preventing ASP.NET Core from silently creating an empty database inside the Web project.
Controllers generated from the domain
Initial project creation generates one controller per non-value-object Entity. Standard CRUD operations follow the MVC scaffolding contract:
| MVC action |
Domain operation |
Index |
ReadAll |
Details |
ReadOID |
Create |
New |
Edit |
ReadOID + Modify |
Delete |
ReadOID + Destroy |
Read filters, custom, and customTransaction operations retain their domain operation names. If an operation is not implemented by the selected persistence backend, its action returns HTTP 501 instead of referencing a method that does not exist.
ViewModels and Razor scaffolding
Project creation generates one create-only ViewModel per Entity. Existing ViewModels are never overwritten, so they remain user-owned and can be reduced to the fields needed by each screen.
Open or right-click a ViewModel .cs file and run HARIA Web: Generate MVC Scaffold. Select any combination of Index, Details, Create, Edit, and Delete.
Generated Razor files:
- use only properties present in the selected ViewModel;
- exclude password, secret, token, and non-scaffolded properties;
- use Tag Helpers, validation messages, and anti-forgery tokens;
- create only missing files and preserve customized files;
- never write below a
manual directory;
- use responsive Bootstrap cards, forms, and tables.
REST API facade
Run HARIA Web: Create Project, choose REST API Facade, and select an existing .smd Service Model. HARIA Web validates the model and delegates generation to the bundled HARIA Web CLI.
Privacy
HARIA Web does not collect telemetry or upload source code. Model analysis, generation, and builds run locally. Generated applications reference the jsDelivr Bootstrap CDN unless the project owner replaces those links. See PRIVACY.md.
Support and license
See SUPPORT.md for support information and SECURITY.md for responsible vulnerability reporting. HARIA Web is licensed under GPL-3.0-or-later; see LICENSE.
Build from source
From this directory on Windows, macOS, or Linux:
npm run marketplace:package
This produces the same universal haria-web-1.0.1.vsix artifact on every supported operating system. On Windows, the convenience wrapper is also available:
.\build-install-haria-web.bat
To create the audited public Marketplace artifact without publishing it:
.\prepare-marketplace-release.bat