• 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 Griglie e Alberi

    • Introduzione (Pannelli griglie e alberi)
    • Anatomia di un pannello
    • I pannelli a runtime
    • Anatomia di un albero
    • Gli alberi 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

    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

    Classi e librerie

    Contenuti
    • Tipi di librerie e di classi
    • Proprietà e passaggio di parametri
      • Proprietà di sessione (applicazione)
      • Proprietà di videata
      • Proprietà di documento
      • Proprietà di classe

    Nei paragrafi precedenti abbiamo definito due tipi di classi presenti nel progetto: la sessione (app) e le videate (view). Il primo tipo viene gestito autonomamente dal framework, il secondo viene usato per definire l’interfaccia utente dell’applicazione.

    In un progetto Instant Developer Cloud è possibile definire anche altri tipi di classi, sia specializzate che generiche. Le classi specializzate vengono utilizzate per gestire in modo strutturato i dati del database o l’interfaccia verso le webapi, e saranno trattate nei capitoli relativi. 

    Le classi di codice generiche possono essere definite sia a livello di applicazione che all’interno di una libreria. Le librerie sono dei sottoinsiemi riutilizzabili di elementi del progetto; il contenuto di una libreria può essere referenziato da tutte le applicazioni del progetto ed è facilmente esportabile come pacchetto per essere incluso in altri progetti.

    Una classe di codice generica è una classe JavaScript basata su prototype e può contenere proprietà di classe e metodi, sia statici che di istanza. Le proprietà, invece, sono definite solo a livello di istanza, in quanto le proprietà statiche sarebbero condivise fra tutte le sessioni del container generando effetti indesiderabili.

    Per referenziare una classe definita a livello di applicazione è sufficiente usare l’oggetto App, ad esempio:

    let m = new App.MyClass(app);

    Se invece la classe è contenuta in una libreria, si deve anteporre anche il nome di quest’ultima. Ad esempio:

    let m = new App.MyLibrary.MyClass(app);

    Tipi di librerie e di classi #

    Sono disponibili tre diversi tipi di librerie, selezionabili dalla videata delle proprietà delle stesse:

    1. Applicazione: la libreria definisce le interfacce con il framework server o client. Queste librerie non contengono codice specifico ma solo le definizioni; solitamente vengono importate con i pacchetti base del progetto.
    2. Datamodel: questo tipo di libreria definisce l’interfaccia con un determinato tipo di database (o di sistema di memorizzazione dati). Solitamente non vengono mai modificate.
    3. Personalizzata: questo tipo di librerie contiene elementi e codice specifico del progetto in cui sono contenute. È il tipo di default e normalmente è quello che si desidera utilizzare nei propri progetti.

    Anche le classi generiche possono essere di diversi tipi:

    1. Personalizzata: questo tipo di classi sono le più comuni e contengono il codice applicativo specifico del progetto in cui sono contenute.
    2. Stile / Tema: questo tipo di classi servono per personalizzare il tema grafico e lo stile dell’applicazione. In particolare le classi di tipo tema permettono di personalizzare a design time le proprietà del tema dell’applicazione. A tal fine, la proprietà deve avere lo stesso nome di quella del tema e la classe deve essere indicata come la classe “tema” nelle proprietà dell’applicazione.
    struttura applicazione 21 Instant Developer

    Creazione della classe di tipo tema

    struttura applicazione 22 Instant Developer

    Impostazione della proprietà primary

    struttura applicazione 23 Instant Developer

    Impostazione di MyTheme come tema dell’applicazione

    struttura applicazione 24 Instant Developer

    Ora il colore primary è definito come red

    1. Elemento: le classi di tipo elemento definiscono l’interfaccia verso un elemento visuale di uno specifico tipo. Per aggiungere al progetto componenti visuali non presenti nelle librerie di tipo è necessario definire una classe di tipo Elemento all’interno di una libreria di tipo Applicazione.
    2. Videata: definisce la classe base di tutte le videate. Non deve essere né usata né modificata. Solitamente viene importata con i pacchetti base del progetto.
    3. Documento: definisce la classe base di tutti i documenti. Non deve essere né usata né modificata. Solitamente viene importata con i pacchetti base del progetto.
    4. Datamodel: definisce un’interfaccia verso un database. Deve essere contenuta in una libreria di tipo Datamodel. Solitamente non viene utilizzata, ma solo importata con i pacchetti base del progetto.

    Proprietà e passaggio di parametri #

    In questo paragrafo abbiamo visto che tutti gli elementi costitutivi di un progetto Instant Developer Cloud sono classi, anche la sessione e le videate.

    Ognuna di queste classi può avere proprietà specifiche, inseribili tramite i comandi dell’IDE. Può essere interessante esemplificare il miglior modo di condividere il valore delle proprietà fra le istanze di queste classi.

    Proprietà di sessione (applicazione) #

    Le proprietà inserite a livello dell’oggetto applicazione vengono memorizzate a livello di ogni singola sessione e possono essere referenziate in tutto il codice applicativo tramite l’espressione app.<nome proprietà>. 

    Un esempio di proprietà che di solito si aggiunge alla sessione è l’oggetto che descrive l’utente collegato. Se ad esempio questa proprietà si chiama loggedUser e la tabella di database corrispondente ha un campo id, si potrà accedere a tale valore in tutta l’applicazione scrivendo app.loggedUser.id.

    Proprietà di videata #

    Le proprietà di videata sono visibili all’interno del codice della videata stessa tramite l’espressione view.<nome proprietà>. Solitamente vengono passate alla videata quando questa si apre tramite le opzioni del metodo di apertura. La videata riceve i parametri nell’evento onLoad.

    Proprietà di documento #

    Un documento è una classe speciale che rappresenta un’entità del framework ORM di Instant Developer Cloud. Le proprietà di un documento possono essere impostate nel costruttore passandole come oggetto. Ad esempio:

    var p = new App.BE.Product(app, {ProductName:”Chai”});

    Proprietà di classe #

    Le proprietà di una classe generica sono visibili all’interno del codice della classe stessa. Le proprietà possono essere impostate dopo aver costruito l’oggetto chiamando un metodo specifico.

    Ti è stato utile?
    Aggiornato il 13 Agosto 2025
    Le videateRisorse e CSS
    Contenuti
    • Tipi di librerie e di classi
    • Proprietà e passaggio di parametri
      • Proprietà di sessione (applicazione)
      • Proprietà di videata
      • Proprietà di documento
      • Proprietà di classe

    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