Skip to content Skip to footer

Developer’s Guide

A simple thought to give when designing and coding Axonator new versions is to think how the future developers will work on it. How will they understand the design and code and how easily they should be able to find the location of code changes required to fix an issue or enhance the product.

Always prefer inheritance over modification – means new developers don’t need to modify the code but only add/inherit new classes for new features.

  • This will help us focus more on architecture in the future and support engineers will work fast and without frustration and losing time!
  • Even support engineers may find the doing work more rewarding if they have to extend the system instead of modify for new features.
  • Modification requires a lot of testing and retesting.
  • Inheritance will limit the new issues to new class.
  • Even in enlighten think about pluggable architecture for chart types. A new person or our High-code clients or community should be able to contribute to the platform by extending enlighten with new charts easily (inherit from x class and override a few methods etc)
  • For example: developers can drop a new class or component in one folder and it will appear as a new chart type in Enlighten
  • For this to be effective the design should be like that from beginning
  • For example: everything related to one chart type must be in one folder only including it’s icon file.

Think in diagrams, write in code

Think in diagrams
Means start directly drawing diagrams, Object model must be a diagram first
SQL query generator or builder will be a class in the diagram
And keep modifying until finalized
And keep updated

Whatever concepts you are thinking must be in a diagram from the first moment

embedded UI objects

UI -> object model -> JSON
Object model embedded in UI

The query builder UI there has group rows and group columns and these must be handled in class models in typescript

JSON is only for sending to server

The query will be built using an object model in typescript tied to UI

This applies to all UI elements

Whatever UI we build will have object model attached to UI

And finally serialize into JSON for transport

UI -> object model -> JSON serialization -> Rest API transport -> deserialize JSON-> C# object model -> SQL query -> execute

Was This Article Helpful?


There are no comments yet

Leave a comment

Your email address will not be published. Required fields are marked *

Close Bitnami banner