martedì 7 novembre 2017

Delphi Day 2017 (Padova Edition)



Wintech-Italia s.r.l. organizza l’evento Delphi Day 2017 (Padova Edition): un incontro, gratuito, di mezza giornata per un aggiornamento sullo stato attuale di Delphi.

L'evento in edizione 2017 raddoppia! Al pomeriggio il classico evento gratuito di mezza giornata dedicato a tutti i programmatori Delphi ansiosi di conoscere le novità dello strumento di sviluppo.
Al mattino sono previsti due seminari a pagamento ad alto contenuto tecnico.

Conferenza: Lo stato dell'arte di Delphi


L'incontro offre una panoramica sullo "stato dell'arte" di Delphi, a partire dagli aspetti più generali, per affrontare elementi architetturali (come linguaggio e librerie), per parlare anche delle novità più recenti con particolare attenzione all'apertura multipiattaforma di Delphi (Linux, MacOSX, iOS, Android). L'incontro si propone di essere fondamentalmente un momento di scambio e discussione tra i partecipanti.

Il biglietto di ingresso gratuito comprende l'ingresso alla conferenza del pomeriggio e il coffee break

Conferenza: Delphi + Ext JS: la soluzione definitiva per il Web?



Con l'acquisizione di sencha da parte di IDERA, entra come strumento di sviluppo una delle migliori libreria JavaScript esistenti sul mercato. In Wintech abbiamo usato questa libreria da diversi anni per lo sviluppo Web e siamo convinti che per uno sviluppatore Delphi questa libreria rappresenti la scelta migliore per la costruzione di applicativi web performanti, con un'interfaccia utente gradevole e moderna, con pesante accesso a database e con buone performance!

Il biglietto di ingresso gratuito comprende l'ingresso alla conferenza del pomeriggio e il coffee break


Conferenza: High Performance 3D con Delphi


Se avete bisogno di creare e gestire modelli e scene 3D (applicazioni industriali, automazione, ecc...) realmente performanti i linguaggi ad alto livello (Delphi, Java, C#) non riescono a competere con le librerie 3D scritte in C++. In questa sessione vedremo come unire il meglio dei due mondi: la potenza e le prestazioni di calcolo di C++ e la facilità d'uso di Delphi:

Il biglietto di ingresso gratuito comprende l'ingresso alla conferenza del pomeriggio e il coffee break


Conferenza: Deployment su Linux: quali vantaggi


Lo sviluppo su piattaforma Linux amplia notevolmente le possibilità di deployment degli applicativi (server) costruiti in Delphi. Oggigiorno è importantissimo sfruttare appieno le possibilità offerte dai servizi "cloud" di Amazon AWS, Microsoft Azure, Google Cloud, ecc.. per avere piattaforme di distibuzione a basso costo, performanti e comode da gestire.

Il biglietto di ingresso gratuito comprende l'ingresso alla conferenza del pomeriggio e il coffee break


Seminari pre-conferenza


Sala A: Applicazioni MVVM cross-framework (VCL-FMX-WEB)

Riusabilità, manutenibilità e testabilità sono concetti importantissimi per chi sviluppa software al giorno d'oggi. Riutilizzare la maggior parte del codice anche tra progetti cross-platform e, perché no, anche cross-framework (VCL-FMX-WEB), sarebbe bello vero? Obiettivo di questo corso è dimostrare come, con l'utilizzo di strumenti adatti (iORM-MVVM), sia possibile applicare questo pattern anche in Delphi senza dover necessariamente rinunciare alle caratteristiche RAD che lo hanno reso il nostro ambiente di sviluppo preferito... anzi!


Sala B: Architettura a microservizi in Delphi

Un'architettura monolitica per la costruzione degli application server può risultare comoda all'inizio ma rappresenta un limite alla crescita e alla complessità dell'architettura stessa. L'architettura microservices consente di espandere a piacimento la propria architettura senza incorrere in limiti predefiniti. In questo workshop vedremo nel dettaglio la teoria dell'architettura microservices, i vantaggi e gli svantaggi e come costruirli con Delphi.

Il biglietto di ingresso per i seminari comprende l'ingresso ai seminari, alla conferenza, al pranzo e ai coffee break







Agenda conferenza
13:45

Registrazione dei partecipanti

14:20 Lo stato e il futuro di Delphi

Paolo Rossi - Wintech Italia

Un altro anno importante per Delphi: una nuova piattaforma supportata, ottimi risultati di vendita e un generale "ritorno" di Delphi tra la comunità internazionale degli sviluppatori. In questa sessione scopriremo cosa ci riserva il futuro del nostro strumento di sviluppo.

15:00

Sviluppo Linux in Delphi: Quali vantaggi?

Paolo Rossi, Luca Minuti - Wintech Italia

Lo sviluppo su piattaforma Linux amplia notevolmente le possibilità di deployment degli applicativi (server) costruiti in Delphi. Oggigiorno è importantissimo sfruttare appieno le possibilità offerte dai servizi "cloud" di Amazon AWS, Microsoft Azure, Google Cloud, ecc.. per avere piattaforme di distribuzione a basso costo, performanti e comode da gestire.

15:50

Coffee Break

16:10

High performance 3D in Delphi

Paolo Rossi - Wintech Italia


Se avete bisogno di creare e gestire modelli e scene 3D (applicazioni industriali, automazione, ecc...) realmente performanti, i linguaggi ad alto livello (Delphi, Java, C#) non riescono a competere con le librerie 3D scritte in C++.
In questa sessione vedremo come unire il meglio dei due mondi: la potenza e le prestazioni di calcolo di C++ e la facilità d'uso di Delphi:

17:00

T.B.D.

17:40
Delphi REST + Sencha Ext JS = Web
Paolo Rossi, Luca Minuti - Wintech Italia

Con l'acquisizione di sencha da parte di IDERA, entra come strumento di sviluppo una delle migliori libreria JavaScript esistenti sul mercato. In Wintech abbiamo usato questa libreria da diversi anni per lo sviluppo Web e siamo convinti che per uno sviluppatore Delphi questa libreria rappresenti la scelta migliore per la costruzione di applicativi web performanti, con un'interfaccia utente gradevole e moderna, con pesante accesso a database e con buone performance!

18:15

Conclusione




Agenda seminari

08:45

Registrazione dei partecipanti

09:20

Track 1: Applicazioni MVVM cross-framework (VCL-FMX-WEB)

Maurizio Del Magno - Levante Software

Riusabilità, manutenibilità e testabilità sono concetti importantissimi per chi sviluppa software al giorno d'oggi. Riutilizzare la maggior parte del codice anche tra progetti cross-platform e, perché no, anche cross-framework (VCL-FMX-WEB), sarebbe bello vero? Obiettivo di questo corso è dimostrare come, con l'utilizzo di strumenti adatti (iORM-MVVM), sia possibile applicare questo pattern anche in Delphi senza dover necessariamente rinunciare alle caratteristiche RAD che lo hanno reso il nostro ambiente di sviluppo preferito... anzi!
  • Logica di visualizzazione
  • Logica di presentazione
  • Command binding
  • Data binding
  • Contesto di visualizzazione
09:20 Track 2: Architettura a microservizi in Delphi

Luca Minuti - Wintech Italia

Un'architettura monolitica per la costruzione degli application server può risultare comoda all'inizio ma rappresenta un limite alla crescita e alla complessità dell'architettura stessa. L'architettura microservices consente di espandere a piacimento la propria architettura senza incorrere in limiti predefiniti. In questo workshop vedremo nel dettaglio la teoria dell'architettura microservices, i vantaggi e gli svantaggi e come costruirli con Delphi.
  • I vari tipi di architettura
  • SOA & REST
  • Programmazione stateless
  • I principi di scalabilità, disponibilità, consistenza
  • Costruire microservices con Delphi
11:00

Coffee Break

12:30 Conclusione e Pranzo

La conferenza ed i seminari si svolgeranno presso:
Hotel Sheraton Padova (Four Points)
Corso Argentina 5
35129 Padova

giovedì 7 settembre 2017

IDERA acquisisce Sencha




Di qualche giorno fa la notizia che IDERA ha acquisito Sencha, leader nello sviluppo di framework per Web application. Sencha andrà quindi ad affiancare Embarcadero come provider di strumenti di sviluppo.

Dalle parole di Atanas Popov, General Manager di Embarcadero, Sencha condivide la mission del gruppo IDERA di consegnare degli agili strumenti di sviluppo alla crescente comunità di programmatori. Questo, oltre ad ampliare i linguaggi supportati aggiungendovi JavaScript, farà nascere delle nuove sinergie con il portfolio dei prodotti già esistenti. Per esempio, proprio Sencha Ext JS, fornirà un potente Web Framework per RAD Studio a completamento dei framework nativi, compresi VCL per Windows e FMX per il Mobile.

La notizia è dunque sicuramente positiva visto che entra in Embarcadero una fortissima competenza di sviluppo frontend web. In più la libreria JavaScript Ext JS, molto usata in ambito business, potrebbe costituire la controparte di Delphi per quanto riguarda lo sviluppo web.

Esistono infatti già alcuni framework Delphi che usano Ext JS come frontend, il più famoso dei quali è la libreria UniGUI che consente di sviluppare applicazioni web usando l'approccio RAD tipico di Delphi.

Per correttezza bisogna dire che la prima libreria Delphi ad utilizzare Ext JS come frontend era stata ExtPascal progetto ora abbandonato (autore Wanderlan Santos dos Anjos) ma ancora interessante (contiene anche un'implementazione di FastCGI).

Personalmente, per lo sviluppo di applicazioni web, uso Ext JS fin dalla versione 3 e penso ancora che per costruire complesse app web sia lo strumento in assoluto più versatile e potente!

La domanda sorge quindi spontanea, a quando l'integrazione di Ext JS con Delphi?? 😀



Se vivete in Italia e siete interessati ad approfondire il tema dello sviluppo di applicazioni web con Sencha Ext JS e Delphi, Wintech Italia, uno dei pochi qualificati fornitori di corsi su Ext JS in Italia, organizza un corso il 12 e 13 ottobre 2017 in sede Wintech a Parma.



domenica 9 aprile 2017

Le novità di Delphi 10.2 Tokyo in dettaglio



Alla fine di marzo è stata rilasciata la versione 10.2 (Tokyo) di Delphi, vediamo nel dettaglio la serie di novità che ha portato.

Benvenuto Linux!


La principale feautore di Delphi 10.2 Tokyo è ovviamente il supporto di Linux 64 bit (server -side) tra i target di compilazione (per sfruttare questa caratteristica è però necessaria almeno la versione Enterprise di Delphi).


Con questa versione di Delphi è possibile creare applicativi (console, dll, package) nativi per Linux che possono girare in qualsiasi distibuzione Linux per architettura x86 a 64bit.

Non c'è (per ora) il supporto a FMX per Linux, non si possono cioè realizzare applicativi con interfaccia utente.. vedremo se questo verrà aggiunto nelle le prossime release.

Il supporto ufficiale delle distribuzioni è limitato a Ubuntu e Red Hat ma personalmente ho già provato i binari prodotti su un elevato numero di distribuzioni senza nessun problema.

Per lo sviluppo invece consiglio di installare le distribuzioni ufficialmente supportate se volete evitare qualsiasi intervento manuale di configurazione dell'ambiente.


Tecnicamente la compilazione e il deployment per Linux usano le stesse tecniche e strumenti delle altre piattaforme.



Nello specifico:
  1. Compilazione su Windows con il compilatorre Delphi (basato su LLVM)
  2. Pachettizazione usando le informazioni di deployment
  3. Spedizione alla macchina Linux target usando il PAServer (da installare sulla macchina Linux)
  4. Debug (eventuale) nell'IDE usando PAServer

E comunque possibile prendere il binario generato, copiarlo e lanciarlo su una qualsiasi macchina Linux (attenzione ai permessi del file quando lo copiate)


Come accennato prima, il compilatore Linux è basato su LLVM come quello per i sistemi operativi mobile (iOS e Android) quindi dovete ricordarvi alcune cose quando scrivete il codice sorgente:

  • ARC (Automatic Reference Count) per gli oggetti (non dovete quindi distruggerli)
  • Le stringhe non sono sempre 1-based come nel compilatore tradizionale ma:
    • Sono 0-based nei compilatori iOS e Android
    • Sono 1-based nel compilatore Linux

Se a prima vista la scelta per le stringhe può sembrare un po'.. fuorviante, devo dire che mi trova daccordo: Nella costruzione di applicazioni mobile il porting di grosse porzioni di codice Win32 è piuttosto raro, nel caso di Linux invece, è proprio una delle caratteristiche più interessanti. In questo caso dover rifattorizzare completamente l'accesso alle stringhe sarebbe un lavoro lungo e pericoloso. Come consiglio usate comunque gli helper per i tipi base per usare le stringhe 0-based su tutte le piattaforme.

Il livello di compatibilità del codice sorgente è ottimo, ho già compilato su Linux la mia libreria JWT (https://github.com/paolo-rossi/delphi-jose-jwt) e il progetto WiRL (https://github.com/delphi-blocks/WiRL) senza particolari problemi.

Altre novità nella 10.2

Ci sono anche altre novità nonostante sia una release incentrata principalmente su Linux. Di seguito elenco solamente queste novità riservandomi di espanderle in altri articoli. In particolare il prossimo articolo verterà su RTL e linguaggio comparando i sorgenti rispetto alla versione 10.1 Berlin per evidenziare tutte le modifiche.

FireDAC


Il componente TFDMemTable guadagna un design time editor che consente di visualizzare e modificare i dati della memory table a design-time!


Altre feature in FireDAC:

  • Supporto per MariaDB (v5.5)
  • New GUID access for TField
  • Supporto per la versione 5.7 di MySQL
  • Support Firebird per Direct I/O
  • Grazie al BLOB streaming ridotta memoria sui client
  • Il componente VCL TDBImage supporta direttamente i formati JPEG e PNG

IDE


Il menu View dell'IDE è stato completamente riorganizzato per consentire una miglior categorizzazione delle numerose voci (nelle passate versioni rischiavano di uscire dallo schermo!)


Anche il supporto per le alte risoluzioni è stato migliorato, ormai i monitor High DPI sono arrivati a prezzi accessibili ed è sempre più facile che ci chiedano supporto nelle nostre applicazioni.

Altre funzionalità nell'IDE:
  • Migliorato supporto per Azure e AWS con nuove API
  • Il compilatore a riga di comando supporta ora large-memory-address
  • Supporto per il debugging e simulatore nei nuovi macOS e iOS

FireMonkey


  • Supporto Multi-Threading per le classi TBitmap, TCanvas e TContext3D
  • Maggior velocità dell'interfaccia utente (UI) Android grazie ad un miglior supporto multi-thread
  • Migliorata l'esperienza utente in TMultiView
  • Possibilità di modifica di SystemStatusBar.Color in iOS tramite nuove proprietà nella classe TForm
  • Nuovo stile FMX per macOS e Android

RTL


  • Nuova proprietà SynchronizeEvents per le classi TTetheringManager e TTetheringProfile per controllare la sincronizzazione con il thread principale
  • Supporto delle funzioni di hashing MD5 e SHA1 per file e stream

Installer/GetIt


L'installer basato su GetIt è ulteriormente migliorato come velocità ed esperienza utente. Consiglio a tutti l'installazione di Delphi con questo nuovo strumento che oltre ad una esperienza di installazione sicuramente migliore consente anche di aggiungere/rimuovere piattaforme e funzionalità in un quasiasi momento.

Anche GetIt sta guadagnando sempre più consenso in quanto l'installazione di componenti tramite questo tool è facile e immediata.

In questo momento sono già presenti una buona selezioni di componenti/expert già aggiornati a RAD Studio 10.2 Tokyo.



Considerazioni finali

Per me la 10.2 Tokyo è un'importantissima release grazie all'introduzione di Linux come target ma introduce anche una buona lista di feature in altre aree e una lista di bug fissati decisamente lunga.

Avendo usato 10.2 Tokyo per qualche settimana posso dire che la stabilità sembra buona, il mio consiglio finale è sicuramente di installarlo e usarlo per lo sviluppo dei vostri applicativi.

Link a risorse

DocWiki What's New
http://docwiki.embarcadero.com/RADStudio/Tokyo/en/What%27s_New

What's New in RAD Studio 10.2
https://www.embarcadero.com/products/rad-studio/whats-new-in-10-2-tokyo

New features and customer reported issues fixed in RAD Studio 10.2 Tokyo
https://edn.embarcadero.com/article/44747


Un saluto