Seminari

Mercoledì 10 Giugno 2015

Delphi Day Italia - L'incontro annuale dei programmatori Delphi Italiani
XIV edizione, Piacenza, Italy


Speaker:

Andrea Magni

Andrea Magni

     

Wintech-Italia s.r.l.

Consulente e docente di corsi su Delphi.
Ha anche esperienza in ambito web, mobile ed embedded computing.

Paolo Rossi

Paolo Rossi

   

Wintech-Italia s.r.l.

Docente Delphi da quasi 15 anni.
Consulente su tecnologie web, mobile e database.
Speaker a numerose conferenze Delphi.

Programma della giornata:

10 Giugno 2015 - Seminari

9:00
Registrazione
9:30
Traccia 1 (T1): Multithread Programming
La classe TThread ed i concetti di base
Paolo Rossi
13:00
Pranzo
14:30
Traccia 1 (T1): Multithread Programming
La Parallel Programming Library
Andrea Magni
18:00
Conclusione

Ore 11 Pausa Caffè
= Compreso nella quota d'iscrizione

Sessioni:


T1: Multithread
La classe TThread ed i concetti di base

Paolo Rossi

La programmazione multithread è una tecnica molto potente per realizzare programmi performanti che nasconde però diverse insidie e prima di adottarla estensivamente bisogna conoscerla bene.

Alla fine della sessione saprete padroneggiare completamente la classe TThread: la creazione, esecuzione e distruzione di una classe derivata, imparerete ad aggiornare oggetti VCL dal thread secondario e tutti i meccanismi di sincronizzazione.

  • concetti della programmazione multithread
  • la classe TThread, definizione di una classe derivata
  • la creazione, l'esecuzione e la distruzione di un oggetto TThread
  • la sincronizzazione con il thread principale
  • la sincronizzazione fra i thread di lavoro
  • l'evoluzione della classe TThread nelle ultime versioni di Delphi

T1: Multithread
La Parallel Programming Library

Andrea Magni

Come usare la PPL in applicazioni reali, dove l'utilizzo della programmazione asincrona è un fattore di successo per realizzare applicazioni altamente responsive.

Una sessione con molti esempi pratici a copertura dei principali casi d'uso tipici di una app mobile (chiamate http, live bindings, elaborazione dati in background, ...).

Con la Parallel Programming Library vedremo:

  • eseguire codice in thread secondari (task)
  • esecuzione parallela di più task
  • sincronizzazione (Synchronize, Queue, ...)
  • gestione delle eccezioni
  • Futures
  • parallel for loop
  • stato dei task

T2: Delphi Programming
Generici, Metodi anonimi, Attributi e RTTI

Andrea Magni

Le nuove feature del linguaggio rendono Delphi un linguaggio molto moderno, alla pari di altri linguaggi quali Java, C#, Swift, ecc...

Perchè quindi non sfruttare le possibilità che queste nuove tecnologie ci offrono per costruire apllicazioni potenti, performanti e soprattutto facili da manutenere.

Vedremo, attraverso qualche esempio pratico, come i nuovi costrutti e le nuove funzionalità possano essere un'arma formidabile per ogni sviluppatore.

  • generics: le collezioni (TList, TDictionary, ...)
  • generics: implementare TMyClass
  • metodi anonimi: usi comuni
  • metodi anonimi: programmazione asincrona
  • attributi e RTTI: come metadati del codice
  • attributi e RTTI: invocazione di metodi (AOP)
  • attributi e RTTI: dependency injection

T2: Delphi Programming
Eccezioni e debug: avere il controllo delle applicazioni

Paolo Rossi

Quante volte una vostra applicazione in deployment dal cliente ha dato errori oppure si è bloccata in modo anomalo senza alcuna indicazione? Quante volte avete perso ore nel tentativo di debuggare codice complesso senza venirne a capo?

Seguendo questa sessione imparerete tutti i trucchi per avere il controllo completo delle vostre applicazioni soprattutto quando queste diventano instabili, vedremo come tenere sotto controllo anche le applicazioni che girano sulle macchine dei clienti senza più avere errori "sconosciuti".

  • le eccezioni queste.. sconosciute??
  • salvataggio di file di log e di report sulle eccezioni
  • il ruolo dello stack nella gestione delle eccezioni
  • l'uso di strumenti esterni di gestione delle eccezioni
  • procedure base di debug
  • debugging di applicazioni multithread
  • debugging remoto con Delphi