English
Instant Developer Foundation Documentazione
  • Approfondimenti
  • IDE
  • Uso delle Subject Area

Come si usano le Subject Area

copia link

Creazione di una nuova Subject Area

Le Subject Area non sono una novità per chi utilizza Instant Developer per produrre applicazioni di una certa dimensione. Infatti sono molto utili per ridurre il numero di oggetti mostrati nell'albero del progetto e permettono ai programmatori di concentrarsi solo su porzioni di progetto, nascondendo quanto non interessa.

A partire dalla versione 6.7, le Subject Area hanno un impatto anche sulla generazione del codice: se un progetto viene compilato quando una Subject Area è attiva viene compilata solo la porzione di progetto inclusa nella Subject Area stessa, modificando eventualmente il codice se accede ad oggetti non presenti. In questo modo si ottiene un risparmio dei tempi di compilazione dal 50% all'80%.

Un'altra novità importante è la funzione che aiuta il programmatore a creare velocemente una Subject Area a partire dalla videata su cui sta lavorando: Instant Developer è in grado di calcolare la parte di progetto che deve essere inclusa nella Subject Area per far sì che la videata funzioni esattamente come se fosse stato compilato tutto il progetto. Instant Developer garantisce, cioè, che la videata interessata sia "completamente compilabile", e nell'articolo seguente vedremo i dettagli di funzionamento di questo algoritmo.

Aggiunta di oggetti ad una Subject Area esistente

In questo paragrafo vediamo come si aggiunge un oggetto ad una Subject Area. Supponiamo che il progetto non abbia nessuna Subject Area e che vogliamo crearne una nuova contenente una videata a cui siamo interessati. Per fare ciò selezionamo la videata nell'albero e usiamo il comando di menù Edit / Add To Subject Area (CTRL+E è il tasto acceleratore predefinito).

Instant Developer creerà una nuova Subject Area il cui nome richiama quello della videata appena aggiunta. Tale Subject Area, come è possibile osservare, non contiene solo la videata ma anche gli oggetti necessari al suo corretto funzionamento: tabelle, classi, e altre videate. Inoltre contiene gli eventi dell'applicazione, senza i quali non si potrebbe arrivare ad utilizzare la videata.

Tutti gli oggetti della Subject Area sono raggruppati per tipologia in appositi folder:


Subject Area della videata Categorie: la creazione automatica di una nuova Subject Area a partire dalla videata delle Categorie aggiunge anche altri oggetti

Instant Developer aggiunge il nome della Subject Area alla combo della toolbar "Browse":


Toolbar Browse

Tale toolbar contiene, oltre ai bottoni di navigazione, il bottone che permette di visualizzare l'intero progetto e una combobox che elenca tutte le Subject Area disponibili nel progetto corrente. Tale combobox contiene anche una riga vuota.

Quando si usa il comando Add To Subject Area, Instant Developer aggiunge l'oggetto selezionato alla Subject Area mostrata nella combobox. Se nella combobox è selezionata la riga vuota o se la combobox è vuota perché nel progetto non esistono Subject Area, Instant Developer crea una nuova Subject Area usa e in questa inserisce l'oggetto selezionato e gli altri richiesti.

In questo modo se il progetto contiene già una o più Subject Area ma vogliamo comunque crearne una nuova è sufficiente selezionare la riga vuota prima di usare il comando Add To Subject Area. Instant Developer creerà una nuova Subject Area per la videata.

Attivazione e disattivazione

Per attivare una Subject Area è sufficiente selezionarla nella combobox. L'icona del progetto cambia per indicare se è stato attivato il progetto o una Subject Area. Per disattivare una Subject Area, e quindi attivare il progetto intero, è sufficiente premere il bottone accanto alla combobox di selezione delle Subject Area.


Attivazione del progetto (a sinistra) e della Subject Area (a destra)

Modifica di una Subject Area

E' possibile modificare la Subject Area solo quando non è attiva eliminando, ad esempio, gli oggetti in essa contenuti. Occorre ricordare che la Subject Area non ha più il solo scopo di limitare gli oggetti mostrati nell'albero del progetto ma anche quello di compilare parzialmente il progetto. Quindi eliminando manualmente oggetti dalla Subject Area si ha anche l'effetto di ridurre le funzionalità che avrà l'applicazione qualora questa venga compilata mentre la Subject Area è attiva.

Instant Developer garantirà comunque che l'applicazione sia compilabile commentando, se necessario, righe di codice che fanno riferimento ad oggetti non contenuti nella Subject Area selezionata. Facciamo un esempio: creiamo una nuova Subject Area a partire dalla videata delle Categorie. In una delle procedure della videata viene aperta la videata dei Prodotti mediante la riga di codice Prodotti.Show(). Instant Developer inserisce nella nuova Subject Area anche la videata dei Prodotti poiché è richiesta per il corretto funzionamento della videata Categorie. Se, però, eliminiamo dalla Subject Area il link alla videata dei Prodotti, attiviamo la Subject Area e compiliamo l'applicazione, Instant Developer commenterà la riga di codice che avrebbe dovuto aprire la videata Prodotti evitando così errori di compilazione.

Il Visual Code Editor e le Subject Area

Quando una Subject Area è attiva il Visual Code Editor riduce l'elenco degli oggetti utilizzabili ai soli oggetti visibili nell'albero dell'applicazione, quindi ai soli oggetti inclusi nella Subject Area. Questo vuol dire che non possiamo inserire una riga di codice che faccia riferimento ad oggetti esterni alla Subject Area mentre essa è attiva.

Premendo i tasti CTRL+R dal Visual Code Editor viene però attivata la modalità "Entire Project" (visibile in basso nella Status Bar di Instant Developer) in cui la ricerca viene estesa a tutti gli oggetti del progetto. Se viene utilizzato un oggetto esterno alla Subject Area, esso viene automaticamente aggiunto ad essa, senza però includere anche altri oggetti. E' poi possibile selezionare l'oggetto nell'albero e usare il comando Add To Subject Area per renderlo "completamente compilabile" se desiderato.

Per ripristinare la selezione dei soli oggetti contenuti nella Subject Area attiva è sufficiente premere nuovamente i tasti CTRL+R nel Visual Code Editor.

Compilazione dei progetti con Subject Area attivata

Come abbiamo già visto nei paragrafi precedenti, se attiviamo una Subject Area e costruiamo il progetto, Instant Developer compilerà le sole videate e classi contenute nella Subject Area.

Tutto il codice che si riferisce ad oggetti non contenuti nella Subject Area viene commentato: le righe di codice che fanno riferimento a videate/classi non incluse vengono commentate; le variabili di tipo oggetto vengono commentate se la classe che ne definisce il tipo non viene inclusa; funzioni che restituiscono oggetti non inclusi nella Subject Area vengono completamente escluse e quindi non compilate, ed in questo caso, anche tutte le chiamate ad esse verranno commentate.

Note

  • E' anche possibile tirare un oggetto su una Subject Area. Tale operazione ha lo stesso effetto che si ottiene con il comando di menù.
  • Se un'oggetto è già incluso in una Subject Area e viene nuovamente aggiunto tramite D&D o con il comando di menù, Instant Developer lo completa nuovamente aggiungendo gli oggetti necessari al completo funzionamento.
  • Affinché l'applicazione sia utilizzabile anche quando viene compilata parzialmente, tutti gli eventi globali di applicazione vengono inseriti nella Subject Area. Allo stesso modo anche tutti gli oggetti a cui viene fatto riferimento in tali eventi vengono inseriti nella Subject Area (videate, classi, ecc.)
  • Le procedure legate ai timer contenute nell'applicazione client vengono comunque analizzate e vengono inseriti nella Subject Area tutti gli oggetti da queste utilizzati (videate, classe, ecc.).
  • Se viene inclusa una tabella del database e questa tabella contiene un trigger ed il trigger effettua chiamate a stored procedure anche queste vengono inserite nella Subject Area.

Ultima modifica: 16/03/2007 / Validità: da 6.7.2850

Hai trovato utile l'articolo?

Grazie per il feedback!

Ti serve altro aiuto?

Consulta il Forum