Describes the overall goal of different Nasdanika products and provides a brief overview of the core products.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
LICENSE
README.md
SUMMARY.md

README.md

Nasdanika Manifesto

This manifesto outlines the guiding principles behind Nasdanika products and provides a brief overview of the core products.

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.
  • Focus - full stack T-shaped developer with deep knowledge of Java.

Products

  • Server - An OSGi-based framework for domain-driven development of web applications. Server contains a number of bundles some of them are listed below.
    • CDO - EMF CDO Model Repositiory provides transparent persistence for EMF Ecore models, i.e. all you need to persist a model is to generate CDO code from it, CDO takes care of the rest. Nasdanika CDO bundles provide several OSGi components for building CDO applications and several CDO contexts.
      • Security - provides classes and interfaces for implementing application-level security.
      • Web - CDO Web provides contexts which merge HTTP request context with CDO View or Transaction context, so requests are executed in a context of CDO view/transaction with security checks and read or write locks applied. This bundle also contains routes for dispatching HTTP requests to specific objects in the repository, i.e. repository objects can have their unique base URL and a number of sub-urls for different operations on the object.
        • Doc - Documentation bundle serves CDO models and OSGi components documentation including visualizations of CDO models as UML class diagrams and OSGi components wiring as component diagrams. With this bundle you can show your stakeholders how your system actually works. This bundle also serves hand-crafted documentation, user stories models documentation with visualizations as use case and activity diagrams, and WebTest test results with slideshows of captured screenshots, so people can explore different flows in the system.
    • Web - this bundle contains the Nasdanika HTTP handling framework, which is buit on the Servlet API and uses the concept of routes (inpspired by ExpressJS. There are three types of routes - root routes, object routes matching object class and executed in the context of an object, and EObject routes matching EClass name and namespace URI and executed in the context of EObject and, typically, CDOView or CDOTransaction.
  • HTML - Java bindings for HTML, Bootstrap, Font Awesome, KnockoutJS and AngularJS. This bundle provides a fluent API for building HTML/Bootstrap code. It allows the developer to stay in Java IDE and leverage code assist and other features of Eclipse IDE and Java language. For example, this bundle makes it easy to build "polymorphic Web UI's" where base UI is built by the foundation classes and customized as needed by sub-classes.
  • Workspace Wizard - Wizards to generate modeling project workspace and NFS-based application workspace. These wizards generate Maven/Tycho projects to produce an Eclipse product and P2 repository for the application.
  • Code generation - 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.
    • 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 hundereds of features and operations, but generate Web UI classes just for a couple of classes and a dozen of features.
      • Web UI Generation Target - Generators and templates for generating rendereres, routes, and resource bundles from selected EClasses and their features and operations.
  • WebTest - Web/mobile UI testing framework built on JUnit and Selenium WebDriver. Nasdanika WebTest encourages abstraction of tests from the low-level UI manipulation logic using the "Application UI Driver" which contains Actors and Pages. WebTest records test execution flow in a model and captures screenshots during execution. The model can then be served by the org.nasdanika.cdo.web.doc bundle. WebTest supports "sketched" execution where you may not have a UI yet, only sketches, and can already write the UI driver and tests and run them. See Tests with sketches chapter in the "Server-side Java Development for Innovators" book (see below).
    • Model - Ecore/CDO model for storing results of Web UI tests.
  • Story - User story model and editor. User story models can be used for capturing descriptions of software features from an end-user perspective. Results of automated tests executed by WebTest can be linked to user stories scenarios documentation by the CDO Web Doc bundle.
  • Server-side Java Development for Innovators - Sources of the Server-side Java Development for Innovators book. The goal of this book to walk the reader through the process of creation of a model-driven web application built using Eclipse and Nasdanika tools and frameworks.