Skip to content

V1

Templating & packaging

  • dotnet templates

    • Setup nuget package
    • "mcsp_cli" template
    • "mcsp_doc" template
      • Guidelines option
      • Tech doc option
      • Product doc option
      • Blog option
      • Organization option
    • "mcsp_distributed" template
      • "Terraform" option
      • "CLI“ option
      • "E2E" tests option
      • "BaaS" option
      • "Aspire" option
      • "Jaeger" option
      • "Minio" option
    • "mcsp_desktop" (avaloniaui + material template + layout & sidemenu)
    • "mcsp_bff_ssr_blazor" (blazor BFF SSR + auth template + hasura: aka #BLASURA)
      • serviceDefault option
      • aspire option
      • docker option
      • mudblazor
      • radzen
      • fluent
    • "mcsp_module" (standalone module template)
    • "mcsp_service" (standalone microservice template, module + api)
    • "mcsp_vertical_service" (standalone microservice template vertical slice style, module + api) template ?
    • "mcsp_bff_ssr_blazor_wasm" (blazor WASM + mudblazor + auth template) ?
    • "mcsp_mobile" (dotnet MAUI mobile / desktop app template) ?
    • "mcsp_mobile_avalonia" (dotnet avalonia mobile / desktop template) ?
  • dotnet tool

    • Setup nuget package
    • Clean label and options
    • install as global tool "microscope"

DISTRIBUTED TEMPLATE

Solution

  • Hasura JWT
  • Keycloak default role & role mapping
  • Dotnet 8 migration
  • Nullables
  • Clean warnings
  • Clean todos

Clients

  • Move to blazor WEB & SSR instead of WASM only
    • Go to BFF SSR Blazor template
  • Blazor PWA
    • Setup mudblazor UI
    • Setup Preferences & Settings
      • Dark / Light mode
      • Drawer open
      • Language support
    • Setup Authentication
    • Setup Feature management
    • Setup Globalization
    • Setup PWA
    • Refactoring program.cs
  • SDKs
    • GraphQL SDK
      • SDK generation with admin key dotnet graphql -x x-hasura-admin xxx
    • REST SDK
      • Setup
      • Automate swagger.json output from api project
  • BFF
    • blazor hosted
    • reverse proxy APIs (YARP)
    • GraphQL gateway & schema stitching
    • Forward all headers during schema stitching (related to sdk generation as admin)
    • File upload sample

Services

TodoApp service

  • Core
    • Domain

      • Setup aggregate root
      • Setup entities
      • Setup domain events
      • Setup repository interface
      • Setup exceptions
    • Application

      • Common behaviours
      • Mappings
      • Features
        • Todolist
          • Commands
            • Create todo list
            • Delete todo list
            • Update todo list
            • Create todo item
            • Delete todo item
            • Toggle todo item
          • Queries
            • Get all todo lists by user
            • Get todo list by id
          • Policies
            • Todolist created by policy requirement
          • Events
            • SendMailOnTodoListCompleted
            • OnTodoListCompletedIntegrationEvent
    • Infrastructure

      • Infrastructure settings (IOption validation)
      • Persistence
        • Entity framework
          • EF Entities configuration
          • EF Migration
        • MartenDB
      • External systems implementation
        • Storage
        • User
        • Mail
      • Bus
        • MassTransit
          • RabbitMQ
          • Azure Service Bus
          • Amazon SQS
          • OpenTelemetry
    • Interface

      • GraphQL API
        • GraphQL documentation
        • Refactoring with QueryType et MutationType attributes ?
      • REST API
        • OpenAPI documentation
        • Complete missing operations
        • API versioning
      • Async API / messenging documentation
      • Authentication
        • OPENID JWT
        • MASTER KEY
      • Authorization
      • HealthCheck
      • Feature management
      • Auto migration option
      • Interface settings (IOption validation)
      • Users endpoints
        • Keycloak service
        • AAD service
      • SignalR websocket use case
        • Listen service bus
      • OpenTelemetry
        • REST api
        • GraphQL api
    • Tests

      • Unit tests
      • Architecture tests
      • Integration tests
      • E2E tests
        • Setup playwright NUnit project
        • Home page test
        • Login test
        • Todolist test
          • Create todo list test
          • Update todo list test
          • Create todo item test
          • Toggle todo item test
          • Delete todo item test
          • Delete todo list test

POC service "Backend As A Service"

  • Hasura
    • Docker
    • Auth
  • Azure Data API Builder
    • Docker
    • Auth

Storage (optional) ?

  • File system
  • Azure blob storage
  • AWS S3
  • Minio
    • Upgrade minio sdk to 6.x

Workflow (optional)

  • Elsa core

Scheduled Jobs (optional)

  • Hangfire

Cross cutting

  • SharedKernel
    • use mediatr contract only
  • Refactoring to move Microscope.Storage crosscutting lib
  • ServiceDefaults
    • OpenTelemetry
    • Default Healthcheck

IAC

  • Docker compose

    • BFF
    • TodoAPI
    • IAM (keycloak)
    • Storage (minio)
    • Database (postgres)
    • Bus (rabbitmq)
    • BaaS (hasura)
    • OTEL (Jaeger)
  • Aspire

    • BFF
    • TodoAPI
    • IAM (keycloak)
    • Storage (minio)
    • Database (postgres)
    • Bus (rabbitmq)
    • BaaS (hasura)
    • OTEL (aspire)
  • Terraform

    • Azure
    • AWS
    • GCP
  • K8S


DOCUMENTATION TEMPLATE

  • Setup vitepress
  • Setup revealjs slides
  • Setup docs web server as static files & container
  • Refactoring documentation in template
  • Templating options