MyKode

Framework for developing single page web application and powerful web service



MyKode

Framework for developing single page web application and powerful web service

MAIN PRINCIPLES

– Convention over configuration
– Testability by design
– Boost OOP and Functional programming
– Open source (see https://github.com/TempoSrl)
BACKEND
– Node.js ws rapid development
– Access to all main databases
– Database indipendent programming
– Single statement read/write of entire datasets
– Extended business logic management
– Deep integration of user environment and security rules
FRONTEND
– Pure HTML design, no preprocessing, no injections
– Rich client javascript pages, no postbacks
– No-code pages for default Behaviours
– Rapid development of complex UI
– Seemless integration with MyKode Backend
– Easy creation of new custom controls
– Autamtic management of complex dataset

MyKode Frontend

MyKode frontend è un framework che consente di sviluppare maschere web anche molto sofisticate con pochissimo codice.

Il frontend javascript è un rich client, quindi l’interazione avviene senza continui postback.

Tramite dei servizi presenti nel backend (disponibile sia in versione Node.js che .NET), svolge un set di operazioni che consentono una “normale “”operatività nelle maschere web, consentendo al tempo stesso una facile estendibilità sia dal punto di vista delle componenti visuali contenute nella maschera e sia delle funzioni di interazione specifiche che la maschera può prevedere.

Una generica maschera si intenda associata ad un DataSet, (simile a quelli di ADO.NET) che contiene la copia locale di un set di righe che sono presenti sul database (o che lo saranno in futuro)

Per “normale operatività” si intende, a mero titolo di esempio:

  • la possibilità di impostare una ricerca in modalità “query by example”, ossia immettendo i dati che si desidera confrontare nella maschera e poi avviare la ricerca sulla base dei dati inseriti [1]
  • modificare dei dati esistenti
  • inserire nuovi dati
  • aprire delle maschere “di dettaglio” (anche di secondo o terzo livello ) sulle righe “figlie” della riga principale
  • cancellare una riga e con tutti i relativi dettagli
  • visualizzare elenchi sulla selezione di righe parent della riga principale, al fine di valorizzare campi della tabella principale

L’idea di base è avere un DataSet (simile a quelli di ADO.NET) per memorizzare la copia locale dei dati oggetti dell’elaborazione, e operare sul database sulla base di un insieme di convenzioni e proprietà delle colonne del DataSet, oltre che alle righe (DataRow) contenute dei DataTable.

Tuttavia il DataSet non si intende contenere un set di righe qualsiasi del database, ma dei dati che devono rispettare una certa logica.

 

Approfondimento su GitHub: MyKode Frontend

MyKode Backend

MyKode Backend è un insieme di classi node.js, corredate da un backend minimale progettate per minimizzare i tempi di scrittura di un’applicazione node.

Le classi del framework sono progettate per poter accedere a vari database relazionali in modo intercambiabile. La struttura scelta per gestire in memoria i set di dati è jsDataSet, una classe simile ai DataSet di .NET, in cui i DataRow sono molto simili a plain object, però conservano lo stato originale della riga, ossia lo stato successivo all’ultimo acceptChanges (metodo che rende le modifiche permanenti) o rejectChanges (metodo che annulla le modifiche alla riga).

La classe jsDataQuery è usata per rappresentare filtri ed espressioni e le sue istanze possono essere indifferentemente applicate a tabelle del database o a qualsiasi collezione di oggetti javascript, in particolar modo ai DataRow dei DataTable di un DataSet.

Sono previste classi per la gestione di diverse applicazioni e diversi database.

 

Approfondimento su GitHub: MyKode Backend

MyKode Generator

MyKode Generator è un generatore di interfacce

 

 

Approfondimento su GitHub: MyKode Generator

MDL Core C#

MDL (acronimo di myKode Library) è un framework nato per velocizzare e rendere molto efficiente la scrittura di applicazioni rich-client javascript. Per la parte client esiste un progetto javascript che si basa su un backend che deve esporre una specifica interfaccia per l’accesso ai dati. Della parte backend sono state sviluppate due versioni distinte, una node-js ed una c#, che è il presente progetto. MDL non nasce per semplificare i programmini usa e getta, bensì progetti di grandezza media ed enterprise. Infatti per piccoli programmi non ha molto senso preoccuparsi di gestione della sicurezza avanzata, differenziare i layer, validare i dati a più livelli etc. Tuttavia anche per piccoli programmi può essere molto utile.

 

Approfondimento su GitHub: MyKode Core