Skip to content

Syntax

A MethodSketch consists of many StaticAspect and UseCase blocks, if there is only one StaticAspect naming the block is optional

StaticAspect

Define an Architecture

Define an named Architecture aspect

Defining Components

Client, Manager, Engine, Access, Resource and Utility are the only valid architecture Components as long as they are seperated with whitespace any token ending in a component name will be recognised.

Static aspect

Resource Components

Static aspect: no sql

Static aspect: file

Static aspect: api

UseCase

Define a use case

Synchronous call

Usecase: call chain sync

Usecase: sequence sync

Asynchronous call

Usecase: call chain async

Usecase: sequance async

Markdown Annotation

Usecase: Include markdown annotation

CallDetail

Synchronous OperationName

Usecase: call detail sequence sync

Asynchronous OperationName

Usecase: call detail sequence async

Facet and OperationName

Usecase: call detail facet and operation

Context, Facet and OperationName

Usecase: call detail context facet and operation

Request Type

Usecase: call detail request type

Request Type and parameter name

Usecase: calldetail request type and paramter name

Context RequestType and parameter name

Usecase: call detail context request type and parameter name

ResponseType

Usecase: call detail response type

Context.ResponseType

Usecase: calldetail context response type

Generic Wrapper Context.ResponseType

Usecase: call detail generic wrapper with context response type

Dto

Name only

This will match the dto name across all components that use it

Inheritence

Context

Facet and Name

This will specialise and only match a specific facet

Facet context and inheritence

Abstract

If you are defining a DTO that is referenced as the type for a property within another DTO, you can mark it abstract

Activity

PlantUML activtity diagram syntax is passed through without processing

Activity: PlantUml activity diagram

Identifiers & Values

Define value types including for Identifiers. When generated they will be created as partial structs. Values are out of scope of the enforcer, the generator will ensure they exist. The definition of the values is an implementation detail. They are include to allow building the projects when the types are referenced from an enforced DTO.

Identifer

Identifiers are attributed with StronglyTypedId by default.

Identifiers will be generated in the namespace Common.Identifier

Value

Values are attributed with Vogen by default

Values will be generated in the namespace Common.Value

Section

A section does not affect your architecture. It is used for code folding and navigation in the editor.