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 ​

f

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

External ​

Suppress the generation of a DTO for a component

Suppress the generation of a DTO for a component, insert a using statement for the origin namespace

Suppresses the generation of a DTO for a component, auto generate using statement for namespace by convention

External Event ​

Suppress the generation of an event contract, and supply a namespace

Section ​

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