XivoBlue.CleanArchitecture.MechanicalEngineering.Template
3.0.1
See the version list below for details.
dotnet add package XivoBlue.CleanArchitecture.MechanicalEngineering.Template --version 3.0.1
NuGet\Install-Package XivoBlue.CleanArchitecture.MechanicalEngineering.Template -Version 3.0.1
<PackageReference Include="XivoBlue.CleanArchitecture.MechanicalEngineering.Template" Version="3.0.1" />
paket add XivoBlue.CleanArchitecture.MechanicalEngineering.Template --version 3.0.1
#r "nuget: XivoBlue.CleanArchitecture.MechanicalEngineering.Template, 3.0.1"
// Install XivoBlue.CleanArchitecture.MechanicalEngineering.Template as a Cake Addin #addin nuget:?package=XivoBlue.CleanArchitecture.MechanicalEngineering.Template&version=3.0.1 // Install XivoBlue.CleanArchitecture.MechanicalEngineering.Template as a Cake Tool #tool nuget:?package=XivoBlue.CleanArchitecture.MechanicalEngineering.Template&version=3.0.1
A Clean Architecture .NET Mechanical Engineering Template
The goal of this template is to provide a straightforward and efficient approach for application development in the area of mechanical engineering, leveraging the power of Clean Architecture. Using this template, you can easily create a multi platform app for communicating with multiple hardware devices, while adhering to the core principles of Clean Architecture.
Getting Started
The easiest way to get started with this template is to install the NuGet package
Prerequisites
- Install the latest .NET 8.x SDK & Tools
- Install the latest version of Visual Studio IDE
- Install the latest .NET MAUI package
- Install node.js
- Install / have access to a PostgreSQL database (optional, see below)
- Enable Developer Mode on your device (required for debugging .NET MAUI applications)
Installation
[1] Open the command prompt and run:
dotnet new install XivoBlue.CleanArchitecture.MechanicalEngineering.Template
[2] Once installed, create a new solution in your project folder or from Visual Studio :
dotnet new xt-came-sln -n <YourProjectName>
Because .NET MAUI is packaged by default, dotnet run
won't work.
Instead, open your solution in Visual Studio directly and run it from there.
You may need to run dotnet workload update
via the command line or a rebuild action in Visual Studio if build errors occur.
Angular
Start the Xivotec.CleanArchitecture.Presentation.Angular.Server project. It uses the default port 4200. You can use the the Angular project in a browser of your choice with localhost:4200.
Database
PostgreSQL
The template is configured to use PostgreSQL as a relational database provider by default. If you want to use another provider, you need to exchange .RegisterPostgreSqlPortServices()
in the Presentation
project MauiProgram.cs
file and the Infrastructure.PostgreSQLPort
project itself with a corresponding implementation.
The database connection string is set in the appsettings.json
file in the Presentation
project.
To start the database with default settings, run:
docker run -e POSTGRES_PASSWORD=postgres -e POSTGRES_USER=postgres -p 5432:5432 postgres:latest
Once you run the application, the database will be created automatically (if necessary) and the latest migrations will be applied.
InfluxDB
The template uses the InfluxDB time series database by default. The implementation can be changed just like the relational database.
The database connection properties are set in the appsettings.json
file in the Presentation
project.
To start the database with default settings, run:
docker run -d --publish 8086:8086 influxdb:2.7.4
Afterwards, complete the initial setup via the InfluxDB UI, which is available via the exposed container port. After completion, fill in a valid InfluxDB API Token for the InfluxToken
property in the appsettings.json
file in the Presentation
project. Be sure that the organization name in your InfluxDB setup matches the InfluxOrg
property provided in the appsettings.json
in the Presentation
project.
Once you run the application, the required buckets will be created automatically (if necessary).
License
This project is licensed with the MIT license.
Support
If you have any problem, please let us know by raising a new issue.
If you have suggestions on how to improve or extend the template, let us know via email.
Our homepage is linked in the banners at the top.
Known Error
It can happen, that a specific using in ToDoListController
in Presentation.Angular.Server.Controllers
was not correctly transformed to <YourProjectName> and the modification has to be done manually.
MAUI
If an error while starting .Net MAUI with the message, that a specified AndroidManifest file can not be found, occurs, copy the file AndroidManifest.xml from the location \src\<YourProjectName>.Presentation.Maui\Platforms\Android\
to the location \src\<YourProjectName>.Presentation.Maui\
. You can remove the copied file after building.
Angular
If the error: "Micorosoft.AspNetCore.SpaProxy.SpaProxyLaunchManager[0] Couldn't start the SPA development server with command 'npm start'" appears, then delete the folder node_modules
in Xivotec.CleanArchitecture.Presentation.Angular.FrontEnd
. After that execute the command npm install
at the exact location in the command line.
Technologies Used
Main technologies:
- .NET MAUI
- Angular
- CommunityToolkit.Maui
- CommunityToolkit.Mvvm
- Entity Framework Core
- InfluxDB
- MediatR
- AutoMapper
- FluentValidation
Unit Tests:
Learn More
Learn more about Target Frameworks and .NET Standard.
This package has no dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
XivoBlue Version 3 Release with InfluxDB and Angular