HTML5 Single Page Application è il nuovo hype tecnologico: tutti ne parlano, il web ne è pervaso, da GMail a Facebook e Twitter, dal desktop al mobile, dagli Appennini alle Ande.
In questa sessione ci occuperemo di tutti quegli aspetti di organizzazione di una solution in termini di codebase, unit testing e processo di build, presentando alcuni strumenti che stanno emergendo fra quelli disponibili.
Demo: http://www.communitydays.it/events/2014-Roma/web02/
In ASP.NET Core 3.0 è stato introdotto il supporto a gRPC, una framework altamente performante per fare Remote Procedure Call (RPC). Leggero e molto efficiente, supportato da molti linguaggi, supporto ad una comunicazione bidirezionale, riduzione del consumo di banda...solo questi solo alcuni dei vantaggi che descrivono gRPC, e che durante la sessione cercheremo di capire se siano reali o meno.
Fatto sta che è una tecnologia assolutamente da conoscere e sfruttare nello sviluppo di app moderno, e non solamente in ambito web.
Codice: https://github.com/andreadottor/XE.Dottor.gRPC
Evento: https://www.xedotnet.org/eventi/grpc-and-c-optimising-night/
HTML5 Single Page Application è il nuovo hype tecnologico: tutti ne parlano, il web ne è pervaso, da GMail a Facebook e Twitter, dal desktop al mobile, dagli Appennini alle Ande.
In questa sessione ci occuperemo di tutti quegli aspetti di organizzazione di una solution in termini di codebase, unit testing e processo di build, presentando alcuni strumenti che stanno emergendo fra quelli disponibili.
Demo: http://www.communitydays.it/events/2014-Roma/web02/
In ASP.NET Core 3.0 è stato introdotto il supporto a gRPC, una framework altamente performante per fare Remote Procedure Call (RPC). Leggero e molto efficiente, supportato da molti linguaggi, supporto ad una comunicazione bidirezionale, riduzione del consumo di banda...solo questi solo alcuni dei vantaggi che descrivono gRPC, e che durante la sessione cercheremo di capire se siano reali o meno.
Fatto sta che è una tecnologia assolutamente da conoscere e sfruttare nello sviluppo di app moderno, e non solamente in ambito web.
Codice: https://github.com/andreadottor/XE.Dottor.gRPC
Evento: https://www.xedotnet.org/eventi/grpc-and-c-optimising-night/
WP04 -Sensori e hardware con Windows Phone 8.1Dan Ardelean
Oggetti che ti avvisano quando vengono dimenticati, bracciali che tengono traccia delle nostra attività fisica, sensori di temperatura che possono essere interrogati da remoto, bilance che si ricordano quanto pesavamo due anni fa, thermos che analizzano quello che stiamo bevendo e tutto questo usando solo il nostro smartphone. Viviamo in un mondo di sensori e in questa sessione vedremmo come la versione 8.1 di Windows Phone implementa le funzionalità necessarie per comunicare con questi tipi di dispositivi. Parleremo delle nuove API Bluetooth Low Energy/Smart e delle nuove funzionalità implementate nei processori di ultima generazione per avere dati dai sensori incorporati nel telefono senza consumare in modo eccesivo la batteria tecnologia chiamata da Qualcomm e Nokia SensoreCore.
Presentazione alla Google Dev Fest Mediterranean 2016 di Catania con presentazione sulle metodologie di utilizzo di microservices e sui sistemi per monitorare le infrastrutture
Open Source Day 2015 - DBaaS con Docker: un caso di studioPar-Tec S.p.A.
Il TechAdvisor Michelangelo Uberti spiega come realizzare un servizio di Database-as-a-Service basato su MySQL e Docker.
I punti trattati durante la presentazione sono:
- DB-as-a-Service: la semplicità del concept
- I possibili approcci
- Architettura di alto livello
- Focus sul Management Agent
- Orchestration at work
- Da cgroups a Docker
- Le sfide principali
- Quale futuro?
Per saperne di più, scaricate le slide e guardate il video della presentazione del nostro TechAdvisor su http://www.par-tec.it/dbaas-con-docker-un-caso-di-studio
SignalR, il WebSocket che tanto ci mancavaAndrea Tosato
Sessione presentata a CodeGen 2018, evento di CloudGenVerona.
SignalR, il WebSocket che tanto ci mancava.
Vengono presentati scenari On-Premise e Cloud scalabili.
Cos'è il Cloud Computing, perché esiste, chi lo utilizza, quanto è utilizzato in Italia, quali sono i principali casi d'uso e chi sono i principali vendor
Cos'è il Cloud Computing, perché esiste, chi lo utilizza, quanto è utilizzato in Italia, quali sono i principali casi d'uso e chi sono i principali vendor
Code quality e test automatizzati con JavaScriptRoberto Messora
JavaScript è ormai ovunque nel mondo dello sviluppo web, è sbarcato persino sul server, la produzione di codice è aumentata a dismisura, framework e librerie sono spuntati come funghi, ma... siamo sicuri di mandare in produzione codice di qualità? quali strumenti e quali tecniche abbiamo a disposizione per aumentare la confidenza circa la bontà di ciò che scriviamo? Quali strategie possiamo adottare per migliorare il ciclo di vita delle nostre soluzioni e le attività di sviluppo?
In questa sessione proveremo a illustrare come organizzare la codebase di una tipica solution JavaScript, quali strategie adottare per migliorare la qualità del codice a cominciare dallo unit testing, quali strumenti utilizzare per automatizzare tutte le attività ripetitive a valle della scrittura del codice,
L'obiettivo è quello di proporre un modo per disciplinare le attività di sviluppo e rendere il più possibile confortevole la vita professionale dello sviluppatore web.
Lo Spring Framework viene ancora una volta incontro agli sviluppatori Java semplificandone la vita, questa volta vedremo come implementare facilmente uno strato servizi stateless da rendere disponibile remotamente nei diversi formati fruibili dalle diverse tecnologie client RIA, introducendo i concetti di Exporter e Proxy di Spring Remoting. Tutto questo tramite pura configurazione, via XML o annotation a seconda dei gusti, e con un esempio specifico in Flex con Spring BlazeDS Integration.
In this meeting we will face a very known but often overlooked aspect, namely the use of HTTPS. Many developers still think that the use of HTTPS is reserved for important sites and that for simpler things, such as a site consisting of a few static pages, it's not worth it. We will first try to dispel this myth, showing how much damage can be done using the HTTP pages of a simple static site, and then we will show how it is possible to use the free SSL certificates of Let's Encrypt to create HTTPS services without spending a fortune.
WP04 -Sensori e hardware con Windows Phone 8.1Dan Ardelean
Oggetti che ti avvisano quando vengono dimenticati, bracciali che tengono traccia delle nostra attività fisica, sensori di temperatura che possono essere interrogati da remoto, bilance che si ricordano quanto pesavamo due anni fa, thermos che analizzano quello che stiamo bevendo e tutto questo usando solo il nostro smartphone. Viviamo in un mondo di sensori e in questa sessione vedremmo come la versione 8.1 di Windows Phone implementa le funzionalità necessarie per comunicare con questi tipi di dispositivi. Parleremo delle nuove API Bluetooth Low Energy/Smart e delle nuove funzionalità implementate nei processori di ultima generazione per avere dati dai sensori incorporati nel telefono senza consumare in modo eccesivo la batteria tecnologia chiamata da Qualcomm e Nokia SensoreCore.
Presentazione alla Google Dev Fest Mediterranean 2016 di Catania con presentazione sulle metodologie di utilizzo di microservices e sui sistemi per monitorare le infrastrutture
Open Source Day 2015 - DBaaS con Docker: un caso di studioPar-Tec S.p.A.
Il TechAdvisor Michelangelo Uberti spiega come realizzare un servizio di Database-as-a-Service basato su MySQL e Docker.
I punti trattati durante la presentazione sono:
- DB-as-a-Service: la semplicità del concept
- I possibili approcci
- Architettura di alto livello
- Focus sul Management Agent
- Orchestration at work
- Da cgroups a Docker
- Le sfide principali
- Quale futuro?
Per saperne di più, scaricate le slide e guardate il video della presentazione del nostro TechAdvisor su http://www.par-tec.it/dbaas-con-docker-un-caso-di-studio
SignalR, il WebSocket che tanto ci mancavaAndrea Tosato
Sessione presentata a CodeGen 2018, evento di CloudGenVerona.
SignalR, il WebSocket che tanto ci mancava.
Vengono presentati scenari On-Premise e Cloud scalabili.
Cos'è il Cloud Computing, perché esiste, chi lo utilizza, quanto è utilizzato in Italia, quali sono i principali casi d'uso e chi sono i principali vendor
Cos'è il Cloud Computing, perché esiste, chi lo utilizza, quanto è utilizzato in Italia, quali sono i principali casi d'uso e chi sono i principali vendor
Code quality e test automatizzati con JavaScriptRoberto Messora
JavaScript è ormai ovunque nel mondo dello sviluppo web, è sbarcato persino sul server, la produzione di codice è aumentata a dismisura, framework e librerie sono spuntati come funghi, ma... siamo sicuri di mandare in produzione codice di qualità? quali strumenti e quali tecniche abbiamo a disposizione per aumentare la confidenza circa la bontà di ciò che scriviamo? Quali strategie possiamo adottare per migliorare il ciclo di vita delle nostre soluzioni e le attività di sviluppo?
In questa sessione proveremo a illustrare come organizzare la codebase di una tipica solution JavaScript, quali strategie adottare per migliorare la qualità del codice a cominciare dallo unit testing, quali strumenti utilizzare per automatizzare tutte le attività ripetitive a valle della scrittura del codice,
L'obiettivo è quello di proporre un modo per disciplinare le attività di sviluppo e rendere il più possibile confortevole la vita professionale dello sviluppatore web.
Lo Spring Framework viene ancora una volta incontro agli sviluppatori Java semplificandone la vita, questa volta vedremo come implementare facilmente uno strato servizi stateless da rendere disponibile remotamente nei diversi formati fruibili dalle diverse tecnologie client RIA, introducendo i concetti di Exporter e Proxy di Spring Remoting. Tutto questo tramite pura configurazione, via XML o annotation a seconda dei gusti, e con un esempio specifico in Flex con Spring BlazeDS Integration.
In this meeting we will face a very known but often overlooked aspect, namely the use of HTTPS. Many developers still think that the use of HTTPS is reserved for important sites and that for simpler things, such as a site consisting of a few static pages, it's not worth it. We will first try to dispel this myth, showing how much damage can be done using the HTTP pages of a simple static site, and then we will show how it is possible to use the free SSL certificates of Let's Encrypt to create HTTPS services without spending a fortune.
Introduction to Blazor and WebAssembly in Christmas sauce. In this session we will see how to create a small demonstration application to send Christmas greetings.
1. #CDays14 – Roma - 23, 24 e 25 Settembre 2014
ASP01 - Web in real
time con SignalR
Nicolò Carandini
n.carandini@tpcware.com - @tpcware
http://blog.tpcware.com/
2. #CDays14 – Roma - 23, 24 e 25 Settembre 2014
Grazie a
Sponsor
3. #CDays14 – Roma - 23, 24 e 25 Settembre 2014
Agenda
Comunicare in Real Time
HTTP & HTLM5/WebSockets
ASP.NET SignalR
Casi d’uso
Demo
4. #CDays14 – Roma - 23, 24 e 25 Settembre 2014
Comunicazione full duplex con HTTP ?
Il protocollo HTTP prevede che il Client faccia una richiesta e
il Server dia una risposta. Il Server non ha modo di mandare
un messaggio al Client di sua iniziativa.
INTERNET
REQUEST
INTERNET
RESPONSE
<HTML> Page
5. #CDays14 – Roma - 23, 24 e 25 Settembre 2014
Comunicazione real time tra clienti
Se voglio comunicare tra vari client, quando il server riceve
dati da un client, deve poter inviare dati agli altri client:
6. #CDays14 – Roma - 23, 24 e 25 Settembre 2014
Possibili soluzioni
Polling
Long Polling
SERVER
CLIENT
tempo
Request
Response
Request
Response
Request
Response
Request
Response
Request
Response
Intervallo di polling Intervallo di polling Intervallo di polling Intervallo di polling
SERVER
CLIENT
tempo
Request
Response
Request
Response
Request
Response
Response
Request
Request
7. #CDays14 – Roma - 23, 24 e 25 Settembre 2014
Controindicazioni?
• Polling:
Se l’intervallo è breve, troppe richieste inutili
Se l’intervallo è lungo, le informazioni arrivano in ritardo
• Long polling:
Il Server deve gestire le richieste in modo asincrono
altrimenti va in saturazione e non accetta altre richieste
8. #CDays14 – Roma - 23, 24 e 25 Settembre 2014
HTLM5/WebSockets
• Fanno parte delle specifiche di HTML5
• Estendono il protocollo HTTP fornendo il supporto alle raw sockets
• Consentono la comunicazione full-duplex
• Traversano gli HTTP proxies (solo se i proxies sono "moderni"…)
Client Proxy Server / Firewall Origin Server
9. #CDays14 – Roma - 23, 24 e 25 Settembre 2014
Tutto risolto?
Non proprio, perché HTML5/WebSocket è un protocollo di
basso livello che richiede la scrittura di molto codice per
implementare le funzionalità richieste da una applicazione
real-time.
Inoltre le condizioni d’uso delle WebSockets sono molto
restrittive.
10. #CDays14 – Roma - 23, 24 e 25 Settembre 2014
Condizioni d’uso delle WebSockets
Funzionano quando:
• Il Web Server le supporta
• Il Web browser le supporta
• Il load balancer/reverse proxy le supporta
• Il client proxy server/NAT le supporta
• Tutto ciò che sta tra il client e il server le supporta
11. #CDays14 – Roma - 23, 24 e 25 Settembre 2014
ASP.NET SignalR
SignalR è la libreria ASP.NET che rende incredibilmente
semplice aggiungere funzionalità Real-Time alle applicazioni
web
12. #CDays14 – Roma - 23, 24 e 25 Settembre 2014
Punti di forza
• Implementa, ove possibile, WebSockets.
• Fa il downgrade in modo trasparente alle altre tecniche di
polling
• Fornisce una API di alto livello, molto semplice da usare,
per fare RPC tra server e client
• Offre funzionalità di gestione degli eventi di connessione
e sconnessione e la gestione delle autorizzazioni
13. #CDays14 – Roma - 23, 24 e 25 Settembre 2014
Diagramma architetturale di SignalR
14. #CDays14 – Roma - 23, 24 e 25 Settembre 2014
SignalR API
PersistentConnection
Implementa le funzionalità minime necessarie
Consente l’invio e la ricezione di stringhe
Broadcast a tutti, a gruppi o a singoli utenti
Connessione, riconnessione e disconnessione
Hub
Utilizza la PersistentConnection
Consente l’uso delle RPC da client a server e viceversa
Genera automaticamente i proxy RPC per i web client
(in JavaScript)
15. #CDays14 – Roma - 23, 24 e 25 Settembre 2014
PersistentConnection Vs. Hub
Nella maggior parte dei casi si usa l’Hub.
La PersistentConnection viene utilizzata nei seguenti casi:
• Si usa un messaggio con formato custom
• Si preferisce lavorare tramite invio di messaggi invece di
utilizzare RPC (remote Procedure Call)
• Occorre fare il porting a SignalR di un’applicazione
preesistente che è basta sull’invio di messaggi e non usa
le RPC
16. #CDays14 – Roma - 23, 24 e 25 Settembre 2014
RPC (Remote Procedure Call)
Si possono chiamare funzioni JavaScript lato client da
codice .NET lato server, e viceversa
17. #CDays14 – Roma - 23, 24 e 25 Settembre 2014
Per fare cosa?
Oltre ai classici scenari di chat, SignalR è perfetto
per tutti quei casi in cui si abbia necessità di
update ad alta frequenza, come nei giochi in
real-time o implementare funzionalità di
comunicazione full duplex all’interno di un
applicativo.
Interessante notare che Visual Studio 2013 usa
SignalR per implementare la funzionalità di
Browser Link.
19. #CDays14 – Roma - 23, 24 e 25 Settembre 2014
Real Time Game: ShootR
20. #CDays14 – Roma - 23, 24 e 25 Settembre 2014
Browser Link in Visual Studio 2013
21. #CDays14 – Roma - 23, 24 e 25 Settembre 2014
Client disponibili
• JavaScript(jQuery)
• .NET 4.x
• Silverlight 5
• Windows Phone Silverlight
• Windows Store apps
• Windows Phone Store apps
• iOS
• Android
• Java
22. #CDays14 – Roma - 23, 24 e 25 Settembre 2014
Performances
Throughtput
• Un singolo server riesce a gestire da 100.000 a 500.000 messaggi al
secondo.
• Con un’occupazione di memoria estremamente ridotta.
Scalabilità
• Fully async
• Circa 1.000 connessioni per server
• Supporta la scalabilità orizzontale utilizzando un message bus (Service
Bus, Redis, SQL)
24. #CDays14 – Roma - 23, 24 e 25 Settembre 2014
Riferimenti
ASP.NET SignalR
http://www.asp.net/signalr
JabbR
https://jabbr.net
ShootR
http://shootr.signalr.net
25. #CDays14 – Roma - 23, 24 e 25 Settembre 2014
demo
Titolo demo
26. #CDays14 – Roma - 23, 24 e 25 Settembre 2014
Q&A
Tutto il materiale di questa sessione su
http://www.communitydays.it/
Lascia il feedback su questa sessione dal sito,
potrai essere estratto per i nostri premi!
Seguici su
Twitter @CommunityDaysIT
Facebook http://facebook.com/cdaysit
#CDays14
Editor's Notes
Slide da mostrare prima di iniziare la sessione – non rimuovere!