Il nostro main event del 2019, in continuità con la precedente edizione, sarà focalizzato sullo sviluppo di applicazioni Enterprise. Non si parlerà solo di codice, ma anche di metodologie, strumenti per l’organizzazione del team e soprattutto condivideremo esperienze.
L’evento si svilupperà in un’intera giornata. Si inizierà con una veloce sessione di benvenuto per poi dividersi in due track parallele per un totale di 10 sessioni.
Si chiuderà con una sessione che coinvolgerà tutti gli speaker al termine della quale verranno estratti alcuni gadget per i partecipanti.
La partecipazione alla conferenza è (come al solito) gratuita e, grazie al supporto del nostro sponsor, verrà offerto a tutti i partecipanti un coffee break a metà mattina e il pranzo.
Visualizza / scarica l’agenda della giornata
Di seguito i dettagli delle sessioni.
Programma
- 09:00 - 09:30
Intro
- XE
- 09:30 - 10:30
(Track 1) From Legacy to MAD - Come passare dallo sviluppo Legacy a un Modern Application Development senza impazzire
Ivano Modenin (si apre in una nuova scheda)
Paolo Galfione
E' molto probabile che aziende nate da almeno 10 anni abbiano delle applicazioni legacy ancora operative.Per chi ne fa il proprio core business, la cosa rischia di diventare un dramma se non si trova una via graduale per passare dal vecchio modo di lavorare a quello nuovo.Non esiste un percorso sicuro e valido per tutti, ma seguire una strada già tracciata può aiutare a raggiungere più facilmente la propria meta.Vi raccontiamo la nostra esperienza e di come abbiamo trasformato la nostra applicazione legacy in una moderna e agile enterprise application.Metodologie, strumenti, passi falsi e successi.
- 09:30 - 10:30
(Track 2) Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente
Molte applicazione sono (ancora) sviluppate in WebForm e non possono essere convertite automaticamente ad ASP.NET Core. Una riscrittura completa in molti casi è impossibile o impensabile da attuare. In questa sessione vedremo come migrare in modo graduale queste tipologie di applicazioni verso ASP.NET Core, andando in dettaglio nelle varie problematiche che solitamente si possono presentare. La sessione deriva da un'esperienza reale, che ha permesso di conoscere (nel bene o nel male) le difficoltà che si nascondo in queste migrazioni.
- 10:30 - 10:50
Coffee Break
- 10:50 - 11:50
(Track 1) Gestire i rilasci automatici con Azure DevOps
Gian Maria Ricci
In questa sessione verrà mostrato come gestire i rilasci con Azure Devops, mostrando il percorso che, partendo dal codice, passando per le build arriva alle fasi di rilascio con la gestione delle pipeline di rilascio. Vedremo quindi come si può automatizzare il deploy nei vari ambienti sia del codice applicativo ma anche delle modifiche di servizi accessori, come database.
- 10:50 - 11:50
(Track 2) Modernizing Enterprise Apps
Quale futuro si prospetta per le tue applicazioni WPF e Windows Form? Come posso utilizzare le nuove funzionalità di Windows 10 in questa tipologia di applicazioni ?In questa sessione vedremmo come .NET e Visual Studio semplificano la modernizzazione graduale delle applicazioni esistenti con le funzionalità di Windows 10. Verrà illustrato come utilizzare UWP XAML Islands per migliorare le applicazioni WPF e Windows Form con funzionalità moderne, come utilizzare le nuove funzionalità di containerizzazione di MSIX e come utilizzare .NET Core 3 nelle applicazioni desktop.
- 12:00 - 13:00
(Track 1) Azure Security, come rendere sicura una soluzione ibrida PaaS/IaaS
Lorenzo Barbieri
E’ importante sapere anche le applicazioni più solide portate su Azure possano essere soggette a problemi. Vedremo quali sono le strade per mantenere una soluzione disponibile, come accorgersi rapidamente dei problemi e soprattutto come porvi rimedio. In termini di architetture cloud, fondamentalmente, valuteremo gli approcci di “Design for failure” e “fault injection”, provando ad ottenere il massimo risultato con il minimo uso di "sforzo".
- 12:00 - 13:00
(Track 2) Frontend solutions for Enterprise App
Quando pensiamo ad una Enterprise application moderna subito ci vengono in mente vari Pattern per organizzare al meglio il nostro codice nel Backend (lavorare a layer, CQRS fino ad arrivare ai micro-servizi) ma poi quando si tratta di scrivere il Frontend come ci comportiamo? Oggi va di moda fare SPA (Single Page Application) ma come possiamo strutturarle?In questa sessione cercherò di dare delle possibili risposte/suggerimenti su come affrontare questo problema ed organizzare al meglio anche il codice del Frontend di una Enterprise Application.
- 13:00 - 14:10
Pranzo
- 14:10 - 15:10
(Track 1) Welcome to the (state) machine
Mauro Servienti
Ultimamente ci hanno stressato come non mai che stateful è il male. Tutto deve essere stateless, altrimenti non scala, non può essere altamente disponibile, ed è complesso da manutenere ed evolvere. Nonostante questo i sistemi software complessi, essendo basati su processi collaborativi, sono per natura stateful. I processi collaborativi, noti anche come long running business transactions, necessitano di interagiscono con risorse distribuite. L'approccio tradizionale basato su transazioni distribuite, anche se allettante, è una bomba pronta ad esplodere.Pane quotidiano per le Saghe. Le Saghe consentono di modellare sistemi complessi senza la necessità di transazioni distribuite e coordinamento esterno. Vedremo cosa sono le Saghe, come possono essere usate per modellare domini complessi, e che ruolo giocano quando progettiamo sistemi basati sui concetti di "design for failures" e "eventual consistency"(It’s all right, I know where you’ve been)
- 14:10 - 15:10
(Track 2) SQL Server Infernals: Worst Practices in Action
Gianluca Sartori
Ammettiamolo: le Best Practice sono troppe per conoscerle tutte e scegliere quali applicare per prime. Il tuo telefono suona di continuo? I tuoi utenti chiedono quel "reportino veolce" che invece ti occupa per ore e continuano a cambiarlo ogni volta che pensi sia finito? Hai mai pensato che in tempi difficili almeno evitare le Worst Practice potrebbe essere un buon punto di partenza e che puoi lasciare il lavoro di fino per un futuro migliore? Se la risposta è sì, allora questa sessione è per te: scopriremo insieme come non torturare un'istanza di SQL Server e vedremo come evitare di fare scelte che nel lungo periodo potrebbero rivelarsi meno brillanti idi quanto non sembrassero all'inizio.
- 15:20 - 16:20
(Track 1) SCRUM: Il metodo empirico come pratica di sviluppo per massimizzare risultati e qualità
Andrea Boschin
In una realtà quotidiana in cui le tecnologie e i requisiti di sviluppo sono sempre meno definiti e chiari, il processo di sviluppo agile e in particolare il framework SCRUM si rivelano l’unica soluzione possibile per garantire la produzione di software aderente alle esigenze reali del cliente e al tempo stesso sfruttare le tecnologie più all’avanguardia senza perdere di vista la qualità. In questa sessione analizzeremo le motivazioni che ci dovrebbero spingere ad abbracciare il framework SCRUM e, con esso l’empirismo guidato da precise regole di ingaggio. Affronteremo così i temi più tecnici dell’implementazione del framework, degli eventi che lo caratterizzano, il backlog e il concetto di “done” per poi completare il quadro illustrando come sia possibile fare forecasting in un processo agile.
- 15:20 - 16:20
(Track 2) SQL Server Workload Profiling
Gianluca Hotz
Analisi e tuning delle prestazioni di un’applicazione sono temi difficili da affrontare dovendo prendere in considerazione una moltitudine di componenti complessi che richiedono un approccio interdisciplinare. In questa sessione faremo prima una panoramica degli strumenti e delle tecniche di analisi che riguardano SQL Server, spesso uno dei componenti principali di un’applicazione, per entrare poi nel dettaglio pratico di utilizzo degli Extended Events, una funzionalità specifica per la raccolta di eventi utili sia al troubleshooting, che al tuning delle prestazioni.
- 16:30 - 17:30
e(o)rrori indimenticabili
- XE
Abbiamo chiesto a tutti i nostri speaker di raccontarci un episodio indimenticabile... ne sentiremo delle belle.


Andrea Dottor
Marco Bortolin
Mirco Vanini
Daniele Morosinotto