XivoBlue.CleanArchitecture.MechanicalEngineering.Template 3.0.1

There is a newer version of this package available.
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                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="XivoBlue.CleanArchitecture.MechanicalEngineering.Template" Version="3.0.1" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add XivoBlue.CleanArchitecture.MechanicalEngineering.Template --version 3.0.1                
#r "nuget: XivoBlue.CleanArchitecture.MechanicalEngineering.Template, 3.0.1"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// 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

License Forks Issues

NugetLinkNugetDownloads

Website Instagram LinkedIn

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:

Unit Tests:

Learn More

There are no supported framework assets in this package.

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.

Version Downloads Last updated
3.0.2 84 11/14/2024
3.0.1 337 10/16/2024
2.1.2 170 7/2/2024
2.1.0 111 7/1/2024
2.0.1 468 5/16/2024

XivoBlue Version 3 Release with InfluxDB and Angular