際際滷 del seminario sull'uso di React con Delphi e confronto con altre tecnologie (es. ExtJS) per lo sviluppo Web, tenuto al Delphi Day 2016 a Piacenza.
I sorgenti sono disponibili qui:
https://github.com/marcobreveglieri/conferences/tree/master/2016/delphi_day_2016
Applicazioni Web ultra-performanti con Vue.js e DelphiMarco Breveglieri
油
Vue.js 竪 un framework per creare interfacce utente estremamente performanti e che pu嘆 essere introdotto progressivamente nelle vostre applicazioni Web, nel modo meno invasivo possibile. In questo talk scoprirete come utilizzarlo con Delphi creando una soluzione frontend e backend ad elevate prestazioni.
In questo speech esploreremo le REST API pi湛 interessanti e curiose pubblicamente disponibili. Dopo una introduzione utile a fissare concetti di base e prerogative, vedremo come consumarle con Delphi costruendo accattivanti applicazioni client.
Delphi & Dintorni Webinar - Diventa un mago del TestingMarco Breveglieri
油
Il Testing 竪 una pratica sempre pi湛 preziosa e fondamentale nell'ambito dello sviluppo del software: si tratta di un passaggio fondamentale per ridurre il numero dei bug nel software e abilitare automatismi come la Continuous Integration e la Continuous Delivery. Se utilizzati in modo errato per嘆, i test possono causare pi湛 problemi di quanti ne prevengano: 竪 importante quindi conoscere le differenze tra le varie tipologie di test, quali sono le loro caratteristiche ideali e padroneggiarli al meglio. In questo webinar faremo luce sul Testing, chiariremo bene i concetti di Unit e Integration Test, vedremo come scriverli nel modo corretto e quali tool ci vengono in aiuto... alla fine il Testing non avr pi湛 segreti!
際際滷 della sessione "Creare un Information Radiator in Delphi" per ITDevCon 2017. Si parla della creazione di un pannello informativo basato su Raspberry Pi 3 e Android, e programmato con Delphi e FireMonkey.
In questa sessione vedremo come uno sviluppatore WebForm possa essere velocemente produttivo (utilizzando le ultime versioni di ASP.NET Core) grazie a Blazor. Vedremo quindi cosa differenza un'applicazione ASP.NET Core, rispetto a quelle WebForm (.NET Framework) fino ad arrivare a comprendere perch竪 e come Blazor possa agevolare questa transizione.
Quindi una sessione non solo per chi 竪 nuovo a Blazor, ma anche perch狸 ancora non ha migrato ad ASP.NET Core.
ASP.NET Core 2.0 竪 stato ufficialmente rilasciato e porta con se parecchie novit come le Razor Pages, template aggiornati e l'integrazione con Application Insights migliorata. In questa cercheremo capiremo la vera maturit di questo framework, e quanto questo rilascio sia importante per noi dev.
Selenium e testing web - di Alessio BenedettiGiuneco S.r.l
油
Selenium framework: Selenium 竪 un framework open-source per l'automazione e il testing di applicazioni web che permette di controllare in remoto le istanze del browser ed emulare l'interazione di un utente.
NET Framework versione 4 include miglioramenti per ASP.NET 4 in aree mirate. Anche Visual Studio 2010 include miglioramenti e nuove funzionalit per ottimizzare lo sviluppo di risorse Web. In questa sessione verr fornita una panoramica di numerose delle nuove funzionalit incluse nella nuova versione. Vedremo anche le novit per gli sviluppatori introdotte da Internet Explorer 9
NerdyDog sviluppa applicazioni web in Ruby on Rails, il framework open souce MVC (Model View Controller) basato su Ruby.
Con Ruby on Rails , oppure RoR 竪 possibile sviluppare applicazioni in modo semplice diminuendo la percentuale di codice che solitamente va a ripetersi nelle applicazioni.
Il pattern Model View Controller infatti 竪 una pratica di programmazione che semplifica la separazione tra presentazione dei dati, logica della app e contenuti.
Le app sviluppate in Ruby on Rails sono particolarmente indicate per progetti dinamici, flessibili che necessitano aggiornamenti continui o ampliamenti futuri come possono essere ad esempio le Start up.
http://nerdydog.it/6-sviluppo-applicazioni
Blazor 竪 un framework per la creazione di Single Page Application (SPA) tramite lutilizzo di C#.
Creato da Steve Sanderson e successivamente inserito in .NET Core come esperimento.
Visto lenorme successo avuto sulla community 竪 stato poi deciso di renderlo parte integrante dellecosistema .NET
Offre tutti i vantaggi di un framework front-end scrivendo codice interamente in C#.
Workshop Ideare e creare Web Applications, Introduzione ad AngularJSGiovanni Buffa
油
Gli argomenti trattati durante il Workshop gratuito sull'ideazione e creazione di Web Applications con AngularJS:
- Metodologie innovative di ideazione e creazione di Web Applications;
- Sfide e problemi del lavoro in team;
- Introduzione ad AngularJS e alle sue componenti principali;
- Dimostrazione pratica di una WebApp
In questa sessione vedremo come uno sviluppatore WebForm possa essere velocemente produttivo (utilizzando le ultime versioni di ASP.NET Core) grazie a Blazor. Vedremo quindi cosa differenza un'applicazione ASP.NET Core, rispetto a quelle WebForm (.NET Framework) fino ad arrivare a comprendere perch竪 e come Blazor possa agevolare questa transizione.
Quindi una sessione non solo per chi 竪 nuovo a Blazor, ma anche perch狸 ancora non ha migrato ad ASP.NET Core.
ASP.NET Core 2.0 竪 stato ufficialmente rilasciato e porta con se parecchie novit come le Razor Pages, template aggiornati e l'integrazione con Application Insights migliorata. In questa cercheremo capiremo la vera maturit di questo framework, e quanto questo rilascio sia importante per noi dev.
Selenium e testing web - di Alessio BenedettiGiuneco S.r.l
油
Selenium framework: Selenium 竪 un framework open-source per l'automazione e il testing di applicazioni web che permette di controllare in remoto le istanze del browser ed emulare l'interazione di un utente.
NET Framework versione 4 include miglioramenti per ASP.NET 4 in aree mirate. Anche Visual Studio 2010 include miglioramenti e nuove funzionalit per ottimizzare lo sviluppo di risorse Web. In questa sessione verr fornita una panoramica di numerose delle nuove funzionalit incluse nella nuova versione. Vedremo anche le novit per gli sviluppatori introdotte da Internet Explorer 9
NerdyDog sviluppa applicazioni web in Ruby on Rails, il framework open souce MVC (Model View Controller) basato su Ruby.
Con Ruby on Rails , oppure RoR 竪 possibile sviluppare applicazioni in modo semplice diminuendo la percentuale di codice che solitamente va a ripetersi nelle applicazioni.
Il pattern Model View Controller infatti 竪 una pratica di programmazione che semplifica la separazione tra presentazione dei dati, logica della app e contenuti.
Le app sviluppate in Ruby on Rails sono particolarmente indicate per progetti dinamici, flessibili che necessitano aggiornamenti continui o ampliamenti futuri come possono essere ad esempio le Start up.
http://nerdydog.it/6-sviluppo-applicazioni
Blazor 竪 un framework per la creazione di Single Page Application (SPA) tramite lutilizzo di C#.
Creato da Steve Sanderson e successivamente inserito in .NET Core come esperimento.
Visto lenorme successo avuto sulla community 竪 stato poi deciso di renderlo parte integrante dellecosistema .NET
Offre tutti i vantaggi di un framework front-end scrivendo codice interamente in C#.
Workshop Ideare e creare Web Applications, Introduzione ad AngularJSGiovanni Buffa
油
Gli argomenti trattati durante il Workshop gratuito sull'ideazione e creazione di Web Applications con AngularJS:
- Metodologie innovative di ideazione e creazione di Web Applications;
- Sfide e problemi del lavoro in team;
- Introduzione ad AngularJS e alle sue componenti principali;
- Dimostrazione pratica di una WebApp
In questa sessione faremo una panoramica a 360 gradi su Blazor, la nuovissima tecnologia Microsoft nata da una (geniale :-) idea di Steve Sanderson per lo sviluppo di applicazioni Web client basate su WebAssembly.
Nell'introduzione parlemermo brevemente di WebAssembly, spiegando di cosa si tratta e del perch辿 questa tecnologia abbia tutte le premesse per portare uno dei pi湛 grandi "disruptive changes" nel modo di sviluppare applicazioni Web client. Passeremo poi a Blazor esaminandone prima gli aspetti architetturali e procedendo con un behind the scenes per svelare in che modo avviene la "magia" dell'interazione con il browser. Verranno poi presentate le feature che questa tecnologia offre (template project su VS, components, layouts, binding, dependency injection, hosting) sia attraverso slides che, di pari passo, con delle demo di un'applicazione funzionante realizzata in Blazor. Vedremo poi quali sono le problematiche legate a performance, deployment e distribuzione parlando delle possibili future ottimizzazioni. Infine chiuderemo con un confronto tra Blazor e i maggiori framework ora in uso per lo sviluppo di applicazioni Web client (Angular, Vue, Knockout, ecc.) e con alcune considerazioni sull'impatto che Blazor e tecnologie simili potrebbe avere a cascata per lo sviluppo Web futuro, in una sorta di "butterfly effect" nel mondo Web client.
Node.js REST interface for MongoDB, we modified mongodb-rest (https://github.com/tdegrunt/mongodb-rest) to manage more operation:
counting elements
"distinct" operations
excel/csv export
list of available db collection
list of keys of a specific query
Multithreading support
It's now also possible to search by date range and are managed sort operations.
I linguaggi del web - seconda edizione (3属 giornata)Diego La Monica
油
Modulo 4 AJAX
- Interazioni client/server
- Framework a confronto:
- jQuery
- Mootools
- YUI
- JAST
Modulo 5 ARIA e laccessibilit lato client
- Prendere un po' di ARIA
- Le tecnologie assistive
- Ruoli, stati e propriet
- Strumenti per lo sviluppo accessibile
Delphi & Dintorni Webinar - Padroneggiare i principi SOLID con DelphiMarco Breveglieri
油
Molti sviluppatori continuano a porsi ancora oggi domande esistenziali, ad esempio "Come posso scrivere codice mantenibile?" oppure "Come posso rendere il codice testabile?". Purtroppo non ci sono keyword, n辿 talismani che possano donare la qualit di essere "buono" al nostro codice senza sforzo, tuttavia 竪 sufficiente rispettare pochi e sani principi di progettazione, detti principi SOLID. In questo webinar vedremo come soddisfare tali principi e scrivere "buon codice" con Delphi, rendendolo stabile, mantenibile, estensibile, comprensibile e scalabile, aprendo nel contempo la porta ad altri scenari visti talvolta con diffidenza, come il Testing, che diverranno cos狸 semplici e addirittura automatici.
Does The Delphi IDE Narrow You? Extend It! - ITDevConX European Delphi Confer...Marco Breveglieri
油
Delphi's integrated development environment (IDE) offers a very wide range of tools, commands and options ready to use. However, one day you may find that, of all these features, it happens to be the most dear to you that is missing; alternatively, you could start thinking of an 'automation' and think that if Delphi were able to do it, that would certainly save you a lot of time in your work, avoiding doing everything again and again many times, with the risk of making mistakes. If this range of situations seems very familiar to you but you don't know where to start, this talk is just for you! Thanks to the Open Tools API (OTA), Delphi allows us to interact with the IDE to add new commands, new tool windows, new wizards and project templates. Thanks to an in-depth explanation and several specially designed code examples, we will see together what it takes to extend the functionality of the IDE, to automate it and thus bring it closer to our own way of working.
"Non Aprite Quella Unit!" ovvero "Scrivere Clean Code in DelphiMarco Breveglieri
油
際際滷 della sessione "Non Aprite Quella Unit" per ITDevCon 2017. Si parla degli errori comuni nella scrittura del codice e delle tecniche per creare codice pulito (Clean Code) in linguaggio Delphi.
Create a Bot with Delphi and Telegram - ITDevCon 2016Marco Breveglieri
油
Bots are virtual assistants and they are able to send messages and notifications, live updates and news to any user and also answering commands and do tasks. With their simplicity and ease of use, they are gaining popularity among local administrations, private companies and other business activities. In this session you will see how to use bots and create a new one from scratch with Delphi leveraging the Telegram Bot platform APIs.
Web Development with Delphi and React - ITDevCon 2016Marco Breveglieri
油
This document provides an overview of modern web development with Delphi and React. It discusses how traditional "fat" web applications are no longer preferred and introduces key concepts in modern web development like JavaScript, HTML5 APIs, DOM, jQuery, single page applications, and React. It explains what React is and core React concepts like components, properties, state, virtual DOM, JSX syntax and lifecycle methods. It also discusses how Delphi can be used to build backend APIs that a React front-end can communicate with.
Tra le varie tappe internazionali, il RAD Studio XE2 World Tour ha toccato anche l'Italia, precisamente Milano il 21 settembre e Roma il giorno successivo.
Le novit introdotte in questa versione del tool di sviluppo sono davvero tante, motivo per cui ho pensato di redigere questo reportage per
elencare quelle che a livello personale e soggettivo ritengo le innovazioni pi湛 interessanti e degne di nota, e magari sciogliere qualche dubbio a coloro che non hanno potuto partecipare, raccontando gli avvenimenti della giornata di presentazione.
6. WEB SERVER FAT APP
Soluzioni basate su
IntraWeb
ASP.NET Web Forms
sono applicazioni Web (Server) Fat
e non sono pi湛 una buona idea.
7. WEB SERVER FAT APP
PREGI
Mascherano la piattaforma (HTTP)
Facili per sviluppatori abituati al desktop
Favoriscono lo sviluppo rapido (RAD)
Sono ideali per la prototipazione
8. WEB SERVER FAT APP
DIFETTI
Mascherano la piattaforma (HTTP)
Stato della pagina ingombrante
Consumo banda, memoria e CPU server
Scalabilit generale ridotta
Separazione task designer/developer improbabile
Unit/Integration Test ardui
14. In evoluzione
Il linguaggio JavaScript vive oggi una
seconda giovinezza.
Supporto esteso da parte dei browser
Nuovi standard (es. ES6) in arrivo
Output di linguaggi pi湛 evoluti come
TypeScript, CoffeeScript e tanti altri
15. NUOVE API html5
Canvas / SVG
WebGL
File API
Indexed DB
Media API
OFFline
Web Sockets
Web Workers
Web Storage
Geo-location API
Fullscreen support
...e il sempre caro
DOM
16. Il DOM
Il DOM (Document Object Model)
un modello a oggetti
formato da una gerarchia di nodi
Rappresenta gli elementi della pagina
Web
Fornisce funzionalit per modificare gli
elementi, modificarli, eliminarli o crearne
di nuovi
18. JQUERY: un passo in +
JQuery 竪 una libreria che
Semplifica laccesso al DOM
Riutilizza le espressioni CSS
Fornisce feature aggiuntive e uniformi
Gestisce le incompatibilit tra i browser
...tuttavia, non 竪 ancora abbastanza.
21. SPA
SPA (Single Page Application)
Applicazione Web in una sola pagina
Mima le caratteristiche delle app desktop
Esperienza utente pi湛 fluida
Non ricarica la pagina nel browser
Linterfaccia utente si aggiorna dinamicamente a
seguito di unazione
Trasferimento ottimizzato di dati e risorse
26. ReactJS
Libreria JavaScript per le interfacce utente
Creata da Facebook (anche per Instagram)
Nel modello MVC gestisce solo la View
Celebre per le sue elevate prestazioni
Basato su componenti, propriet e stato
Approccio dichiarativo (*) (*) usando JSX
https://facebook.github.io/react/
30. ReactJS vs...
JQuery
Programmazione
imperativa
Necessit di attribuire
ID agli elementi
Tendenza event
driven
Rischio concreto di
zuppa-code
AngularJS (ver. 1.x)
Oscillante curva di
apprendimento (ma
framework completo)
Separation of
Responsibility (invece
di ...of Concerns)
Proliferazione di
scope e direttive
31. Editor e tool
Notepad++
Sublime Text
Atom.IO
Brackets
Visual Studio Code
JetBrains
WebStorm
Visual Studio
Professional
...con vari plugin
33. La sintassi JSX
Facilita la scrittura di template HTML
Sostituisce chiamate a funzioni React
Richiede la presenza di un compilatore
(detto transpiler)
Definisce gli elementi del Virtual DOM *
(*) ne parleremo a breve
34. Propriet e stato
Propriet
Definiscono valori
immutabili del
componente
Utili per
inizializzazione
Si leggono da this.
props
Stato
Definisce valori dello
stato attuale del
componente
Si modifica per
aggiornare linterfaccia
Si leggono i valori da
this.state
37. I limiti del DOM
Non 竪 possibile modificare il codice
E una black box fornita dal browser
Non si pu嘆 ottimizzare in prestazioni
Non si pu嘆 specializzare in base alluso
Impone uno stile imperativo di codifica
Produce codice meno manutenibile
Rappresenta un collo di bottiglia
38. Il Virtual DOM
Rappresentazione virtuale della struttura
della pagina in memoria
Riproduce il DOM reale della pagina Web
Viene usato da React per applicare le
modifiche agli elementi della pagina
Attraverso lanalisi delle differenze con il
DOM reale, aggiorna la pagina
...nel modo pi湛 veloce possibile! ≠≠
39. Gli elementi del VDOM
ReactNode
rappresenta un singolo nodo del VDOM
ReactElement: rappresenta un elemento HTML
ReactText: rappresenta una porzione di testo
ReactFragment
ReactNode[ ]: 竪 un array di nodi del Virtual DOM
40. Creare elementi
I parametri della funzione createElement()
ReactElement createElement(
string/ReactClass type,
[object props],
[children ...]
)
42. Component lifecycle
Le funzioni principali del ciclo di vita di un componente:
render()
getInitialState()
componentWillMount()
componentDidMount()
componentWillUnmount()
...e altri meno utilizzati.
44. Assemblare il tutto
Ricetta per combinare gli elementi visti sino ad ora:
Creare la pagina di struttura della SPA
Importare i framework preferiti (incluso React!)
Creare script separati per i componenti
Richiamare la funzione ReactDOM.render()
Vediamo ulteriori esempi!
47. E Delphi?
Ottimo per la creazione di un backend
Diverse librerie disponibili per creare API
DataSnap / EMS
DelphiMVCFramework / MARS
Indy Components
Versatile nel collegamento a qualsiasi DB
Si pu嘆 invocare dallapplicazione React *
(*) con la libreria che si preferisce per il colloquio con endpoint HTTP/REST
49. Altro?
Integrazione con altri framework
Flux, Redux, ...
Altre implementazioni?
React Native
Possibilit ed estensioni?
Rendering sul server (con NodeJS)
Migliorare il codice?
Uso del transpiler Babel, pre-compiling server