• IT
betterdocs-cat-icon 1-svg

Qualcosa è andato storto?

Condividi con noi la tua opinione per migliorare la nostra documentazione.

    Getting Started

    • Introduzione Instant Developer Cloud
    • Composizione della piattaforma
    • Struttura dei progetti
    • La programmazione relazionale
    • Apprendere l’uso di Instant Developer Cloud

    Struttura di un'applicazione

    • Introduzione (applicazione e sessione)
    • Le videate
    • Classi e librerie
    • Risorse e CSS
    • I pacchetti
    • Programmazione asincrona

    Struttura del database

    • Introduzione (struttura del database)
    • Definizione degli schemi relazionali
    • Scrittura di query ed esecuzione di comandi
    • Gestione dei database nel cloud
    • Il Cloud Connector

    Document Orientation

    • Introduzione Document Orientation
    • Definire Documenti e Collection
    • Utilizzo dei documenti
    • Estensione dei documenti

    Datamap

    • Introduzione Datamap
    • Creazione di liste di documenti
    • Modifica dei documenti con videate di dettaglio
    • Datamap innestate e ricorsive

    IonicUI

    • Introduzione IonicUi
    • Le pagine IonicUI
    • Definire il contenuto delle pagine
    • Il page controller
    • Il metodo app.popup
    • Videate come elementi visuali
    • Personalizzazione di IonicUI
    • Configurazione dei ruoli e degli accessi

    Pannelli e Griglie

    • Introduzione (Pannelli e Griglie)
    • Anatomia di un pannello
    • I pannelli a runtime

    Web API e file system

    • Introduzione Web API
    • Il file system
    • Consumare Web API
    • Esporre Web API
    • Web API in formato OData
    • Utilizzare Web API Instant Developer Foundation
    • Web API in formato OpenAPI

    Sincronizzazione

    • Introduzione sistema di sincronizzazione
    • Scambio di messaggi in tempo reale
    • Document Orientation Remota
    • Sincronizzazione del database offline

    Debugging e Test

    • Introduzione Debugging e Test
    • Strumenti e tecniche di debug
    • Test automatico delle applicazioni

    Traduzioni

    • Introduzione (traduzioni)
    • Processo di traduzione
    • Funzionamento del framework di localizzazione
    • Localizzazione di numeri e date

    Integrazioni di componenti esterni

    • Introduzione (integrazioni di componenti esterni)
    • Integrazione di componenti JavaScript
    • Integrazione di librerie di back-end
    • Integrazione di un plugin Cordova

    Launcher e Pubblicazione

    • Introduzione Launcher
    • I plugin nativi
    • Test delle applicazioni nei launcher
    • Pubblicazione sugli store
    • Configurazioni per gli store
    • Fase di build e di invio
    • Gestione dell’applicazione

    Analitiche e Feedback

    • Introduzione Analytics e Feedback
    • Installazione ed uso di Analytics
    • Raccolta dei feedback degli utenti

    Server di Produzione

    • Introduzione server di produzione
    • I server di Instant Developer Cloud
    • I server My Cloud
    • I server Self Managed
    • Tabella comparativa

    Cloud Connector

    • Cos’è il Cloud Connector
    • Installazione Cloud Connector
    • Configurazione
    • Installazione come servizio
    • Esempio di utilizzo
    • Controllo remoto
    • Note

    Team Works

    • Perché non basta GitHub?
    • Team Works: concetti base
    • Organizzazione del lavoro consigliata
    • Risoluzione dei problemi relativi a Team Works
    • Domande sull’utilizzo di Team Works

    Manuale PWA

    • Cos’è una PWA?
    • Creazione di una PWA su Instant Developer Cloud
    • Life Cycle
    • Installazione PWA
    • Funzionalità
    • Plugin
    View Categories

    Estensione dei documenti

    Contenuti
    • Implementazione di eventi per i documenti estesi
    • Estensione con relazione di tipo is-a

    Tutti i documenti, considerati come classi di codice, devono derivare dalla classe del framework App.Document. Tuttavia questa derivazione può essere di tipo diretto o indiretto, cioè un documento può derivare da un documento base che a sua volta deriva da App.Document.

    Ci sono due casi d’uso di derivazione indiretta di documenti:

    1. Quando si desidera mettere a fattor comune una serie di comportamenti per un determinato insieme di documenti.
    2. Quando la struttura del database contiene relazioni di estensione (is-a) fra le tabelle. 

    Nel primo caso il documento base, quello che contiene i metodi comuni, non deve essere collegato a nessuna tabella di database. In questo caso, istanziando i documenti estesi, si potranno indifferentemente utilizzare i metodi specifici e quelli del documento base.

    Implementazione di eventi per i documenti estesi #

    Quando si implementa un evento in un documento esteso, se tale evento viene definito anche in quello base occorre ricordarsi di chiamare la versione base all’interno di quella estesa. 

    Per questa ragione, quando l’IDE genera il metodo per l’evento nella classe estesa viene inserita la chiamata a quello base, come si vede nell’esempio seguente:

    App.NBE.Impiegato.prototype.onValidate = function (options)
    {
      // Chiamo l'evento della classe base
      yield App.NBE.DocBase.prototype.onValidate.call(this, options);
    };

    La chiamata all’evento della classe base viene inserita solamente se l’evento è effettivamente stato implementato nel documento base.

    Estensione con relazione di tipo is-a #

    Una relazione di tipo is-a a livello di database esprime il concetto di estensione di un tipo di record contenuto in una tabella rispetto ad un altro. 

    Un esempio di questo può essere una tabella di soggetti che contiene i dati anagrafici generali e poi una tabella di clienti che, oltre ai dati anagrafici, contiene i dati specifici dei soggetti che sono anche clienti. Per esprimere una relazione di tipo is-a, la tabella dei clienti deve avere una relazione verso quella dei soggetti di tipo 1-1, cioè che collega le primary key delle due tabelle.

    La procedura di creazione documenti a partire dalla struttura del database identifica il caso indicato nell’esempio (relazioni 1-1 fra primary key di tabelle) e dichiara che il documento che possiede la relazione estende quello base.

    Quando nella catena delle estensioni viene coinvolto più di un documento collegato con il database, le query generate dal framework diventano più complesse, ed in particolare:

    1. La query di caricamento del documento mette in join tutte le tabelle coinvolte nella catena di estensione usando la relazione 1-1 fra le primary key delle tabelle. Vengono estratte contemporaneamente tutte le proprietà definite per l’intera catena di estensione.
    2. Durante il salvataggio, vengono generate più query di inserimento, aggiornamento o cancellazione, una per ogni tabella coinvolta nella catena di estensione. L’ordine delle query è dal padre al figlio in caso di inserimento o dal figlio al padre in caso di cancellazione.

    Si segnala che l’estensione di documenti di tipo is-a non è una pratica comune a causa del fatto che questo pattern genera strutture del database ritenute in genere meno leggibili. Più frequentemente si osserva l’utilizzo di normali relazioni identificative o possessive per esprimere concetti analoghi all’estensione.

    Ti è stato utile?
    Aggiornato il 25 Aprile 2024
    Utilizzo dei documenti
    Contenuti
    • Implementazione di eventi per i documenti estesi
    • Estensione con relazione di tipo is-a

    Caratteristiche

    • Perché Instant Developer
    • IDE e Ambiente di Sviluppo
    • Pubblicazione Web & Mobile
    • Software Life Cycle & DevOps
    • Database, Integrazione, Sync
    • Collaboration & Workflow

    Soluzioni

    • Freelance
    • Software House
    • Company IT
    • Casi di successo
    • Applicazioni Sviluppate

    Azienda

    • Chi Siamo
    • Contatti
    • Lavora con noi

    Risorse

    • Documentazione
    • Risorse e Tutorial
    • Blog
    • Starter Kit
    • Pricing
    • Inizia Ora
    Crea un account e Inizia Gratis
    • Seguici su Twitter
    • Seguici su Facebook
    • Seguici su LinkedIn
    • Seguici su YoutTubeSeguici su YouTube
    Questo sito è protetto dalla tecnologia reCAPTCHA Enterprise e si applicano l'Informativa sulla privacy e i Termini di servizio di Google.
    Google Policy | Termini
    © Pro Gamma - p.iva, c.f. e iscr. Camera di Commercio Bologna 01985091204 - Sede legale Via D'Azeglio, 51 40123 Bologna - Italia Pro Gamma Instant Developer® è un marchio registrato.
    Privacy Policy | Cookie Policy
    • IT