Nasdanika

Principles

  • Effective knowledge elicitation, retention, and dissemination:
    • Capturing of knowledge in documented models.
    • Web-based documentation system serving models documentation and visualizations.
  • Working at a high level of abstraction by leveraging model-driven development.
  • Elimination of repetitive tasks through code generation and metadata-driven logic.

Target audiences

A full stack T-shaped Java developer, an innovator, leveraging visual and declarative techniques provided by Eclipse and Nasdanika tools to collaborate with and delegate to other technologists, not necessarily developers, and technically minded business people to test ideas and build prototypes and applications together.

Visual/declarative approach to software development heightens the level of abstraction and reduces the amount of hand-coding, sometimes just to a few lines of code or no code in simple cases. By doing so it increases the pool of developers, the speed of application and innovation delivery, and the rate of success because people build applications for themselves and their teams and as such have a good understanding of the requirements.

Products

  • HTML - Nasdanika HTML features several libraries providing fluent API for building HTML user interfaces.

  • Config - provides a model and an editor for creating hierarchical configurations.

  • Codegen - Code generation Ecore/CDO model and editor. The model provides classes which can generate Eclipse project, file, Java compilation unit (with merging of generated code with existing), etc.
  • Codegen Ecore - Code generation from EMF Ecore models. The Nasdanika Ecore code generation editor allows to select generation targets and then select model elements for which the code should be generated. E.g. you may have a model with dozens of classes and hundreds of features and operations, but generate Web UI classes just for a couple of classes and a dozen of features.
  • Help provides:

    • The primary toc for other Nasdanika help toc’s to link to.
    • Markdown content producer which converts intercepts *.md.html help resource requests, finds corresponding *.md files and converts them to HTML on the fly.
    • Markdown processor extensions.
  • Docgen - Documentation generation framework.
  • Docgen Ecore - Documentation generator for Ecore models - static HTML and Eclipse help.
  • Presentation - features classes and extension points related to the Eclipse UI presentation such as SWT, JFace, and EMF editors.

Dependencies

Composite repository

https://www.nasdanika.org/products/site/repository

Documentation

Reference implementations

  • Bank - A simple enough bank domain model to use for demonstration purposes in different Nasdanika products.

Roadmap

This sections outlines ideas for future Nasdanika projects. Some of those ideas may be already implemented elsewhere and additional research is required before proceeding with implementations. Shall you be aware of such an implementation - drop us a line. If you’d like to implement some of the below ideas - we can probably collaborate on this!

  • Maven classloader service - construct a classloader for a Maven artifact version, load a class, run it - lambda-like execution in OSGi environment.
  • Dynamic bundles - similar to the above but using bundles and P2.
  • EMF/CD - Store Java objects as a graph of EMF/CDO objects.
  • Stored functions and proxies - Store functions as EMF/CDO objects. Provide support of bind(arguments) to compose functions.
  • Stored promises - Store promises as EMF/CDO objects. Promises provide then() methods which allow to build asynchronous long-running processes using Java concepts and API’s.
  • Human as a service - “Invoke” humans in the same way as you invoke asynchronous Java methods.