Domain-Driven Design language for usage with DSL Platform
DDD language is a syntax highlighter for the declarative model specification used by DSL Platform.
DSL Platform is not a framework, but rather integrates with various frameworks by providing libraries tailored to DSL model. All external dependencies are open sourced with a BSD license and are available on Github for download.
Visual studio plugin source code is available at: Github repository
This extension provides integration with DSL Platform compiler. Compiler will run in server mode at localhost.
Integration consists from syntax highlighting, outlining, descriptions and grammar exploration for .ddd and .dsl files and compilations to various target languages/libraries.
Project settings will be saved in the sln file.
Diff with latest successfully compiled DSL.
Migration description with visual DSL comparison.
DSL parsing is done through DSL Platform compiler.
Autocomplete is available with CTRL + space.
Compilation for client/portable/server/wpf projects. Compilation is done on the client using source code created by the DSL Platform compiler. Source is not saved locally, but compiled in memory. If you are interested in source code, use an alternative tool.
Download of latest dependencies from the Github/DSL Platform server. Compatible libraries can be used instead of original DSL Platform libraries.
SQL migration script which can be automatically or manually applied to the database.
It uses an ANTLR generated grammar for parsing.
PostgreSQL and Oracle are supported.
Domain-Driven Design is a term coined by Eric Evans for developing systems of highest complexities. It combines extensive knowledge and defines building blocks and patterns for usage in modeling complex domains.
DDD building blocks are used for domain modeling:
Modeling patterns and various features are available:
Automatic schema and data migration
DSL model is converted to appropriate database objects in Postgres/Oracle:
On model change, DSL Platform analyzes difference between the models and creates appropriate SQL commands for migration. Various complex migrations can be performed without data loss and interaction with SQL. Unsafe migrations are detected and description of changes is provided.
WPF GUI client
By writing DSL model for describing GUI, functional WPF application can be built. Some of the available GUI concepts:
Typesafe PHP source
DSL compiler can create "typesafe" PHP based on provided model. Typesafe means, objects will have type checks embedded in code, which runs in runtime and will fail early, rather than later when wrong type is used.