Developer's Guide
May 31, 2016 ยท View on GitHub
Prerequisites
- Visual Studio 2013
- Visual Studio Installer Projects Extensions
- Enterprise Architect 10 or newer
Set up the Project
- Checkout the ADMentor repository
- Copy
Interop.EA.dllfrom your local Enterprise Architect installation to the root folder of the checked out repository - Start Visual Studio as Administrator
- Open the ADMentor solution (
ADMentor.slnin root folder of repository) - Right click on the ADMentor project and choose "Set as StartUp Project"
- Open the properties of the ADMentor project and go to the "Debug" tab
- Set the path to the executable in your EA installation in the "Start external program" field
- Make sure the "Register for COM interop" checkbox is selected in the "Build" tab of the ADMentor and EAAddInBase project properties
- Run the PowerShell command
registerADMentor.ps1as Administrator to register the add-in class as an EA extension (adds required entries to the registry)
Update Model Templates
- Modify one of the template models in docs/ModelTemplates.eap.
- Right click on the updated template model and select "Import/Export" -> "Export Package to XMI File..."
- Select the path of the according template XML (e.g. ADMentor\ADTechnology\DemoTemplate.xml)
- Select Export Type XMI 1.1
- Run
release.ps1to clean up unnecessary meta data in the XMI files.
Release a new Version
- Update
versionandmodelVersion(if necessary) inAdAddIn.ADTechnology.Technologies - Make sure all model templates are up to date:
- Open
ModelTemplates.eapand recreate the examples and templates if necessary - Export the templates (as XMI) to the according .XML files in
ADTechnology - Run
realease.ps1. This script performs mandatory clean up steps on the model templates. - Rebuild the ADMentor.Setup project. The build puts the installer into the
ADMentor.Setup\Debug/ADMentor.Setup\Releasefolder. - Make sure all changes have been committed (usual git workflow)
- Tag the release in your local repository:
git tag vX.Y.Z - Push the tag to remote:
git push --tags
Project Layout
EAAddInBase
EAAddInBase is a small framework for EA Add-Ins that provides core functionalities required by many EA Add-Ins:
- Event Processing
- Context Item Handling
- Menu Handling
- Validation Rules
- C# DSL for defining MDG technologies
- Unified hierarchy for EA entities
EAAddInBase.Utils
Some useful utility classes and functions that support a more functional and generic programming style in C#. For example implementations of the Option and Unit types and various extension methods.
ADMentor
The ADMentor add-in.
ADMentor.Setup
The ADMentor installer based on Visual Studio Installer Projects Extensions.
ADMentor.ADRepoConnector
A separated add-in that integrates an ADRepo client into ADMentor (experimental).