Compose Architecture Up close and personal - PowerPoint PPT Presentation

1 / 31
About This Presentation
Title:

Compose Architecture Up close and personal

Description:

Gets all the information from the VSCodeDom model ... VS AddIn: Attribute Manager. Generates attributes.xml. Contains all attribute information ... – PowerPoint PPT presentation

Number of Views:75
Avg rating:3.0/5.0
Slides: 32
Provided by: tomst73
Category:

less

Transcript and Presenter's Notes

Title: Compose Architecture Up close and personal


1
Compose ArchitectureUp close and personal
  • Pascal Dürr

2
Compose Architecture High level
  • Visual Studio Plug-in
  • Compile-time
  • Run-time

3
Overview
4
Overview Visual Studio Addin
5
VS AddIn Config Manager
  • Creates a project specific configuration file
  • Chooses between Compose.ini and project.ini
  • All VS project specific information is gathered,
    which files, what language, which compiler

6
VS AddIn Master Manager
  • Initiates the Master for Phase 1
  • Parse files and extract embedded code
  • Two phases are required for type information and
    dummies

7
VS AddIn embedded source manager
  • Extracts the source in all implementation parts
  • Dumps this source into the specified files
  • Adds these files to the project

8
VS AddIn Dummy Manager
  • Gets all the information from the VSCodeDom model
  • Constructs dummies that can compile via
    .NetCodeDom
  • Compiles the dummies

9
VS AddIn Config Manager
  • Updates the project specific configuration file
  • All new sources and assemblies are added.
  • E.g. for TYM

10
VS AddIn Master Manager
  • Initiates the Master for Phase 2
  • Do all the fancy stuff
  • Here all the magic happens

11
VS AddIn Attribute Manager
  • Generates attributes.xml
  • Contains all attribute information
  • Is extracted from the VSCodeDom model

12
VS AddIn Assembly Manager
  • Copies all referenced and Compose specific
    assemblies (.NET compilation unit) to the output
    folder.

13
Overview Compile Time
14
CA Compose Parser
  • Parses all .cps files
  • Initializes and fills the DataStore a.k.a the
    Repository
  • Extracts embedded source
  • Only active in phase 1!

15
CA Embedded Source Extractor
  • Takes the extracted source and puts it into the
    specified files.
  • Only active in phase 1!

16
CA Type Mystification
  • Extracts all type information of all specified
    assemblies, like signature information
  • This includes
  • The dummies

17
CA Logical Language
  • Interprets all selector superimposition
    statements
  • Queries the Repository about certain properties
  • Subclass
  • Annotations

18
CA Resolve References
  • Resolves all references
  • Internal conditions, internals en externals
  • External filtermodules in other concerns

19
CA Check Repository
  • Currently not really active
  • But should be the main checking place
  • Especially for
  • Internal references conditions, internals en
    externals
  • External references filtermodules in other
    concerns
  • Can the external init method be found?
  • Sanity checks within concerns

20
CA Superimposition Analysis
  • Evaluates all filtermodule superimpositions
  • For each concern a SInfo object is added with
    the imposed concerns

21
CA Filter Ordering Tool
  • Evaluates all ordering constraints
  • Calculates / decides a specific order
    SingleOrder
  • Produces all possible valid orders
    MultipleOrders

22
CA Signature Generation
  • For each concern the adapted signature is
    calculated
  • There is a lot of interaction with FIRE
  • Determines whether the signature is expanded or
    reduced and detects cyclic dependencies

23
CA Consistency Reasoning Engine
  • Currently checks for not reachable filters and
    produces a warning
  • Currently not active, problem with the
    DefaultInnerDispatch ?

24
CA Semantic Reasoning Tool
  • Analysis all or the chosen order of filtermodules
  • Based on the resourceoperation model it will try
    to identify semantic conflicts
  • May change the chosen orders

25
CA Filter Reasoning Engine
  • Reasons about the control flow with filters
  • Accepts queries like
  • Give the message will it pass through all
    filters?
  • Currently a lot of problems with the scalability
    and performance of the algorithm ?

26
CA Assembly Transformer
  • Updates the .NET signature with the Compose
    signatures
  • Only the assemblies of the dummies are updated,
    via the metadata

27
CA Recompile Assemblies
  • Compiles the original code against the dummies
  • Now we can compile!
  • Although all references are now to the dummies

28
CA Code Generation
  • Generates an .NET compatible XML dump of the
    Repository (repository.xml)
  • Generates the weaving specification of the IL
    weaver (weavespec.xml)

29
CA IL weaver
  • Manipulates the IL code of the assemblies
  • Inserts the interception code for all concerns
    with filters
  • Adjusts all references from dummies to real
    assemblies
  • Adds an application initialization hook
  • Captures the casts of concerns

30
Overview Runtime
31
CA Runtime Interpreter
  • All intercepted messages are handled here
  • Has a shadow structure of the Repository
  • Dynamically evaluates all patterns and conditions
  • Using patterns to allow for different
    implementations
  • Not really fast and hard de debug
  • !!! Be careful when adding new classes to the Rep.
Write a Comment
User Comments (0)
About PowerShow.com