Slides dalle lezioni del corso di "Strumenti e applicazioni del Web", Università di Milano Bicocca - Prof.R.Polillo - A.A.2012-13
Lezione del 19 marzo 2013.
Vedi anche www.corsow.wordpress.com
Pubblica la tua app sul nuovo Windows StoreRoberto Albano
The document discusses Microsoft's Windows Store and strategies for publishing apps across various Windows platforms. It provides information on expanding the app ecosystem through various technologies that allow porting apps from other platforms like Android, iOS, and web apps. It also describes the package selection process, where the Store will automatically choose the best compatible package for a user's device from all packages published by a developer.
Slides dalle lezioni del corso di "Strumenti e applicazioni del Web", Università di Milano Bicocca - Prof.R.Polillo - A.A.2012-13
Lezione del 19 marzo 2013.
Vedi anche www.corsow.wordpress.com
Pubblica la tua app sul nuovo Windows StoreRoberto Albano
The document discusses Microsoft's Windows Store and strategies for publishing apps across various Windows platforms. It provides information on expanding the app ecosystem through various technologies that allow porting apps from other platforms like Android, iOS, and web apps. It also describes the package selection process, where the Store will automatically choose the best compatible package for a user's device from all packages published by a developer.
My session about Microsoft Application Insights at "EtnaDev 2016" event, managed by OrangeDotNet community and hosted in the Engineering Department of "Università degli Studi di Catania", on October 21st, 2016
My session about Microsoft Application Insights at "DevOps@Work 2016" event, managed by DomusDotNet and GetLatestVersion communities and hosted in Microsoft Rome's building, on February 5th, 2016
DevOps@Work 2017 - Azure Mobile EngagementRoberto Albano
Session about Microsoft Azure Mobile Engagement at "DevOps@Work 2017" event, managed by DomusDotNet community and hosted in Microsoft Rome's headquarter on February 10th, 2017.
The session is related to the product's presentation, configuration and integration using the available SDK.
DevOps@Work 2017 - Application insights more control, more powerRoberto Albano
Session about Microsoft Application Insights at "DevOps@Work 2017" event, managed by DomusDotNet community and hosted in Microsoft Rome's headquarter on February 10th, 2017.
The session is related to the product's presentation, configuration and integration using the available SDK.
Integrating Library Resources into BlackboardBritt Fagerheim
This document discusses several ways to integrate library resources into Blackboard courses. It describes LibGuides which are research guides created by librarians that can be linked within Blackboard. Subject librarians can create LibGuides tailored for specific courses and are available for research assistance. Widgets like the Library Tips widget and chat widget are pre-built components that can be added. Quick guides and tips for accessing resources and conducting research can also be linked. Permanent links can be generated for sources in library databases and instructions are provided for linking databases within Blackboard. A future PowerLink feature will allow direct access to select databases from within Blackboard. The library contact is available for any additional questions or resource needs.
The document summarizes the damage from the 2011 Tohoku earthquake and tsunami in Japan. It describes the casualties and thousands of lives lost within 10 minutes from the tsunami. It also discusses the recovery efforts, including the reopening of Sendai Airport with help from US forces, rebuilding infrastructure like railways and ports, and the ongoing Fukushima nuclear crisis. The document provides statistics on casualties and shelters over time, and details rapid recovery of key transportation systems despite further setbacks from aftershocks.
The document provides descriptions of scenes from rural Finland in autumn months. It mentions 187,888 lakes in Finland and wildlife such as wild ducks, geese preparing for migration in September, swans gathering in large groups in the village of Eräjärvi to migrate in October. It also describes traditional countryside houses often being painted red and forests that stretch as far as the eye can see, featuring plants and fungi commonly seen in the Finnish countryside.
The document discusses Turkey and the city of Beysehir, including its stone bridge. It also mentions the school and large dormitory located on the path to the dormitory, as well as the dining hall. The writer invites the reader to come visit along with her students.
The document discusses Chuck Norris looking for a home that can contain his immense power and awesomeness. It notes that no house can truly hold Chuck Norris and that the listed $50 million home was actually given to him after the previous owners were roundhouse kicked. A graph shows an upward sloping relationship between home size and price but that no home is large enough for Chuck Norris.
Cucumber is a high-level testing framework for integration testing applications. It is designed to define application behavior using plain English scenarios rather than code. Scenarios consist of features made up of scenarios with given, when, then steps. Steps are defined in code to implement the scenario behavior. Features, scenarios, steps, and other elements allow for behavior-driven development testing of an application from end to end.
School Presentation Scuola Statale 5° Circolo Didattico “G. Verdi”Tiina Sarisalmi
This document provides information about Italy, the region of Apulia, and the town of Andria in Italy. It discusses Andria as a large, modern city with a vast agricultural territory known for oil and wine production as well as manufacturing. The document also mentions the 13th century Castel del Monte as a historical monument in Andria and provides details about the 5th Circolo - "G. Verdi" school in Andria, including school life, projects for improvement, a greenhouse, kindergarten activities, and typical local foods. It concludes by welcoming the reader and wishing them good luck.
My session about Microsoft Application Insights at "EtnaDev 2016" event, managed by OrangeDotNet community and hosted in the Engineering Department of "Università degli Studi di Catania", on October 21st, 2016
My session about Microsoft Application Insights at "DevOps@Work 2016" event, managed by DomusDotNet and GetLatestVersion communities and hosted in Microsoft Rome's building, on February 5th, 2016
DevOps@Work 2017 - Azure Mobile EngagementRoberto Albano
Session about Microsoft Azure Mobile Engagement at "DevOps@Work 2017" event, managed by DomusDotNet community and hosted in Microsoft Rome's headquarter on February 10th, 2017.
The session is related to the product's presentation, configuration and integration using the available SDK.
DevOps@Work 2017 - Application insights more control, more powerRoberto Albano
Session about Microsoft Application Insights at "DevOps@Work 2017" event, managed by DomusDotNet community and hosted in Microsoft Rome's headquarter on February 10th, 2017.
The session is related to the product's presentation, configuration and integration using the available SDK.
Integrating Library Resources into BlackboardBritt Fagerheim
This document discusses several ways to integrate library resources into Blackboard courses. It describes LibGuides which are research guides created by librarians that can be linked within Blackboard. Subject librarians can create LibGuides tailored for specific courses and are available for research assistance. Widgets like the Library Tips widget and chat widget are pre-built components that can be added. Quick guides and tips for accessing resources and conducting research can also be linked. Permanent links can be generated for sources in library databases and instructions are provided for linking databases within Blackboard. A future PowerLink feature will allow direct access to select databases from within Blackboard. The library contact is available for any additional questions or resource needs.
The document summarizes the damage from the 2011 Tohoku earthquake and tsunami in Japan. It describes the casualties and thousands of lives lost within 10 minutes from the tsunami. It also discusses the recovery efforts, including the reopening of Sendai Airport with help from US forces, rebuilding infrastructure like railways and ports, and the ongoing Fukushima nuclear crisis. The document provides statistics on casualties and shelters over time, and details rapid recovery of key transportation systems despite further setbacks from aftershocks.
The document provides descriptions of scenes from rural Finland in autumn months. It mentions 187,888 lakes in Finland and wildlife such as wild ducks, geese preparing for migration in September, swans gathering in large groups in the village of Eräjärvi to migrate in October. It also describes traditional countryside houses often being painted red and forests that stretch as far as the eye can see, featuring plants and fungi commonly seen in the Finnish countryside.
The document discusses Turkey and the city of Beysehir, including its stone bridge. It also mentions the school and large dormitory located on the path to the dormitory, as well as the dining hall. The writer invites the reader to come visit along with her students.
The document discusses Chuck Norris looking for a home that can contain his immense power and awesomeness. It notes that no house can truly hold Chuck Norris and that the listed $50 million home was actually given to him after the previous owners were roundhouse kicked. A graph shows an upward sloping relationship between home size and price but that no home is large enough for Chuck Norris.
Cucumber is a high-level testing framework for integration testing applications. It is designed to define application behavior using plain English scenarios rather than code. Scenarios consist of features made up of scenarios with given, when, then steps. Steps are defined in code to implement the scenario behavior. Features, scenarios, steps, and other elements allow for behavior-driven development testing of an application from end to end.
School Presentation Scuola Statale 5° Circolo Didattico “G. Verdi”Tiina Sarisalmi
This document provides information about Italy, the region of Apulia, and the town of Andria in Italy. It discusses Andria as a large, modern city with a vast agricultural territory known for oil and wine production as well as manufacturing. The document also mentions the 13th century Castel del Monte as a historical monument in Andria and provides details about the 5th Circolo - "G. Verdi" school in Andria, including school life, projects for improvement, a greenhouse, kindergarten activities, and typical local foods. It concludes by welcoming the reader and wishing them good luck.
Dispense del corso IN530 "Sistemi per l'elaborazione delle informazioni" presso il Corso di Laurea in Matematica dell'Università degli Studi Roma Tre.
[http://www.mat.uniroma3.it/users/liverani/IN530/]
Architetture web - Linguaggi e standard - Web server, application server, dat...Fulvio Corno
Master: Amministratore Linux - Livello Avanzato
Nel contesto della formazione professionale rivolta ad aziende ed enti pubblici, sono stati preparati ed erogati dei corsi di Amministratore di sistemi Linux, al livello base ed al livello avanzato.
Il contenuto del corso è allineato con alcuni moduli della certificazione LPIC (Linux Professional Institute Certification), a cavallo tra i livelli 1 e 2. Tutto il materiale didattico è disponibile liberamente con licenza Creative Commons BY-NC-SA.
I docenti del corso sono i proff. Giovanni Squillero, Bartolomeo Montrucchio e Fulvio Corno.
Maggiori informazioni: http://elite.polito.it/index.php/teaching/current-courses/255-master-linux-admin
2. AJAX sta per Asynchronous Javascript and XML
Molti pensano sia un linguaggio mentre invece è una tecnica
Esiste da molti anni, ma con altro nome e con altra forma
E’ il risultato e allo stesso tempo il fautore dello sviluppo del
web nella forma che conosciamo come “Web 2.0”
Raggruppa diverse tecnologie e linguaggi per ottenere lo
scopo principale, ovvero lo sviluppo web performante
2
AJAX
3. Dal 2000 in poi, il web ha subito una evoluzione sempre più
notevole in termini di tecnologie
Le infrastrutture più capienti hanno creato i presupposti per
uno sviluppo web più accurato e più complesso
Il web ha subito una evoluzione tale che oggi, con il concetto
di web 2.0, possiamo dire che internet è diventata una vera e
propria piattaforma applicativa
3
AJAX
4. Questa crescita passa per AJAX in maniera rilevante
Il termine AJAX (Asynchronous Javascript and XML) è stato
coniato nel 2005 da Jesse James Garrett di Adaptive Path LLC
Garrett pubblicò un articolo che si chiamava “Ajax: A New
Approach to Web Applications”
Questo articolo ancora oggi è disponibile
http://www.adaptivepath.com/ideas/essays/archives/000385.php
4
AJAX
5. Garrett era dell’avviso che il divario tra le applicazioni
tradizionali in locale e quelle web stesse sempre più
diminuendo
Il modello citato era Google e l’articolo originale citava:
Google Suggest and Google Maps are two examples of a new
approach to web applications that we at Adaptive Path have
been calling Ajax.
The name is shorthand for Asynchronous JavaScript + XML,
and it represents a fundamental shift in what’s possible on
the Web. 5
AJAX
6. Da quel momento in poi la stessa rete ritenne valido il termine
AJAX per indicare qualcosa che rappresentava il contesto
evolutivo del web
Il numero di articoli e citazioni di questo termine aumentarono
in maniera esponenziale
Le applicazioni, intese sempre più come rich client applications
lato web, erano state identificate come prodotto di una
elaborazione asincrona che avesse come attori principali
Javascript e XML
In seguito, XML verrà spesso rimpiazzato con JSON
6
AJAX
7. Quando nel 1990 un certo Tim Berners-Lee ideò il WWW
inteso come ragnatela di informazioni e siti web collegati tra
loro attraverso link, non poteva immaginare questa evoluzione
Con l’evoluzione dei siti e l’introduzione di un linguaggio di
scripting lato client così potente come Javascript, il web
progredì in maniera velocissima
Le pagine web divennero ben presto pesanti, per la logica di
funzionamento che prevedeva una richiesta e una risposta 7
AJAX
8. La risposta ottenuta dal server web era completa della parte
grafica, che in pratica corrispondeva alla maggioranza del peso
dei dati ricevuti dal client
L’idea di base fu quindi quella di disaccoppiare queste parti
La parte grafica, che era la parte rilevante, andava
necessariamente staccata da quella dei dati, minoritaria
Questo fu possibile proprio grazie a Javascript, che consentiva
una capacità di azione e interazione lato client notevole
I dati venivano richiesti al server e la comunicazione avveniva
con l’ausilio di XML 8
AJAX
9. Tanti non sanno che AJAX è nato (come tecnica) moltissimi
anni fa
L’anno di riferimento era il 1996 circa
Allora si usava la tecnica del “frame nascosto” per consentire
una risposta veloce al minimo della interazione visiva tra client
e server
9
AJAX
10. Il meccanismo era basato sulla presenza di un frame che si
occupasse solo della logica di comunicazione da/verso il server
Un frame normalmente con larghezza o altezza zero e non
ridimensionabile, veniva usato come broker di informazioni
Questo consentiva, tramite un linguaggio come Javascript e
tramite il DOM, una rappresentazione più fluida e meno
pesante dal punto di vista dell’esperienza utente
10
AJAX
11. Tutto il funzionamento lato client si basa su un “linguaggio”
noto come JavaScript
Senza il suo ausilio non sarebbe stato possibile tutto questo
Ma JavaScript da solo non è sufficiente
Ha bisogno di un altro “componente” che si occupa di tutta la
parte fondamentale cioè della comunicazione lato server
Questo componente si chiama XMLHttpRequest ed è una
11
classe che è stata sviluppata ad hoc per questo modello
AJAX
12. JavaScript è IL linguaggio di scripting per il Web
La sua notorietà e la sua diffusione sono tali che ogni giorno
milioni di pagine su internet girano grazie a questo linguaggio
Questa diffusione è dovuta anche alla sua notevole semplicità
E’ pienamente funzionante in tutti i browser esistenti
JavaScript è un linguaggio di scripting lato client, nato con lo
scopo di interagire con le pagine HTML
Si posiziona normalmente all’interno delle pagine HTML
E’ un linguaggio interpretato (ovvero il browser lo interpreta
direttamente) e per questo non necessita di compilazione 12
JavaScript
13. XMLHttpRequest è il componente che si occupa del colloquio con
il server web
Si posiziona “dietro” all’interfaccia utente e svolge un ruolo
fondamentale per il funzionamento degli applicativi in AJAX
La prima versione di questo componente fu sviluppata da
Microsoft, ed era in forma di ActiveX e si chiamava XMLHttp
Venne molto impiegato per realizzare applicativi con il modello
web chiamato del “frame nascosto”
Veniva distribuito con la libreria nota con il nome di MSXML
Le potenzialità erano notevoli, e tramite JavaScript aumentavano13
JavaScript
14. Vista la potenza di XMLHttp l’interesse nelle comunità di
sviluppatori crebbero notevolmente verso questo componente
Tuttavia questi era in forma di ActiveX quindi eseguibile solo in IE
Per questo motivo gli sviluppatori del progetto open source
Mozilla decisero di realizzare un porting di XMLHttp che non fosse
in forma di ActiveX, e che quindi potesse girare in ogni browser
Questo porting consentì di realizzare una libreria nota con il nome
di XMLHttpRequest, che tramite una classe avente lo stesso
nome, consentivano di realizzare questo livello di isolamento
La realizzazione di questo porting diede vita alla vera era di AJAX14
JavaScript
15. Modello Web Tradizionale
HTML, Images, CSS, JavaScript, Data Response
Data
Data Request
HTTP Request
Database
Web Browser Web Server
Modello Web AJAX
HTML, CSS Data Transfer Data Response
User AJAX
Interface Engine
Javascript HTTP Request Data Request
Web Server Database
15
Web Browser
AJAX
16. Traffico Minimo
Non si perde tempo ogni volta a ricaricare la parte grafica
della pagina
Il caricamento dell’interfaccia utente può richiedere
qualche secondo inizialmente che viene poi ripagato dalla
velocità di esecuzione dell’applicativo web
La quantità effettiva di dati che viaggiano è molto ridotta in
quanto composta da soli dati e non da parti inutili
16
AJAX
17. Interfaccia Utente
Grazie al supporto del linguaggio JavaScript l’applicativo
web si arricchisce notevolmente rispetto al modello web
tradizionale
L’utente dispone di una serie di funzionalità molto simile
alle funzionalità di un applicativo desktop
Le parti dell’applicativo possono essere manipolate
(drag&drop, effetti grafici)
Si dispone delle funzionalità da tastiera
17
AJAX
18. Possibilità di reingegnerizzazione
Il modello di sviluppo web basato su AJAX si associa quasi
sempre al modello di sviluppo basato su servizi
Le funzionalità disponibili sull’applicativo vengono isolate
su strati disponibili per il riuso (Web Services, Servizi WCF)
Questo consente, se necessario, di modificare in parte (o
volendo anche totalmente) la parte di interfaccia utente
senza dover mettere più mano alla logica dell’applicativo
(business logic)
18
AJAX
19. Accessibilità
In base a questa architettura modulare è possibile
introdurre dei canoni di accessibilità maggiormente
aderenti agli standard
L’utenza può essere di diverso tipo e con diverse esigenze
Quindi possono esserci anche più “interfacce utente” in
base alla tipologia di utente che utilizza l’applicativo web
19
AJAX
20. Abbiamo detto che AJAX è una tecnica di sviluppo web e non un
linguaggio di sviluppo
Quindi come tale necessita dell’impiego di diverse tecnologie:
HTML/XHTML: per realizzare la struttura delle pagine
CSS: per fornire stili e formattazioni grafiche
DOM: per consentire l’accesso alle parti del documento
XML/JSON: per realizzare lo scambio dei dati
XSLT: per trasformare XML in XHTML (con l’ausilio dei CSS)
XMLHttp/XMLHttpRequest: il vero motore di AJAX
JavaScript: il linguaggio di scripting di AJAX 20
AJAX