TimeWarp Architecture
TimeWarp Architecture is a dotnet net 6 template for creating a distributed or monolithic application.
Prerequisites
Install the latest Powershell
winget install Microsoft.PowerShell
Install the latest released .NET 6 SDK
trust the developer cert with
dotnet dev-certs https --trust
Install the latest LTS of Node.js
Install the latest Cosmos Db Emulator
Edit your powershell profile (
code $Profile
) to include the following 1 :
$env:PSModulePath += ";$env:ProgramFiles\Azure Cosmos DB Emulator\PSModules"
Import-Module Microsoft.Azure.CosmosDB.Emulator
- Install Tye dotnet tool
dotnet tool install -g Microsoft.Tye --version "0.11.0-alpha.22111.1"
Caution
Currently Project Tye will use the latest installed SDK regardless of the global.json
settings when building the projects.
It will not work with Visual Studio 2022 preview 3,4 or 5. installed.
Installation
- Install TimeWarp Architecture Templates
dotnet new --install TimeWarp.Architecture
Usage
To create new solution enter the following:
dotnet new timewarp-architecture -n MyTimeWarpApp
To run the new solution change to the newly created directory.
cd .\MyTimeWarpApp\
Execute the Run.ps1
powershell script
./Run.ps1
You should see the Tye Dashboard opened in your browser.
Technologies
- Dotnet 6
- Blazor
- Tailwind
- Entity Framework Core
- MediatR
- Automapper
- FluentValidation
- Fixie
- FluentAssertions
- Playwright
- Project Tye
- YARP
- Cosmos DB
Content
The template creates the distributed app projects and their corresponding test projects.
Projects
- Api.Contracts
- Api.Server
- Grpc.Contracts
- Grpc.Server
- Web.Server
- Web.Shared
- Web.Spa - The Blazor Single Page Application (SPA)
- Web.TypeScript - Project that contains any needed TypeScript for Web.Spa
- Yarp
- SourceCodeGenerators
Test Projects
- Spa.Integration.Tests - contains integration tests for the SPA
- Server.Integration.Tests - contains integration tests for the web api
- EndToEnd.Playwright.Tests - contains TestCafe based end-to-end tests.
- TimeWarp.Testing - a shared library used for testing.
- EndToEnd.TestCafe.Tests - contains TestCafe based end-to-end tests.
- SourceCodeGenerators.Tests
Test Library
TimeWarp.Testing - Share testing library.