TimeWarp Architecture

NuGet NuGet

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.

Footnotes


  1. https://docs.microsoft.com/en-us/azure/cosmos-db/emulator-command-line-parameters#:%7E:text=Install%20the%20latest%20version%20of,Azure.↩

  • Improve this Doc
In This Article
Back to top Generated by DocFX