JavaScript Object Notation

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "JavaScript Object Notation"

Transcript

1 JSON JavaScript Object Notation JSON (adattato da wikipedia) JSON (JavaScript Object Notation), è un formato standard aperto che usa testo leggibile per memorizzare dati come oggetti nella forma di coppie attributo valore. E una alternativa a XML. JSON è un format di dati indipendente dal linguaggio (anche da JavaScript). Sono disponibili in tutti I linguaggi più diffusi librerie e funzioni per parsing e generazione di dati JSON. JSON è stato originariamente specificato da Douglas Crockford. Attualmente è descritto da due standard, RFC 7159 e ECMA-404. Il MIME type per JSON è application/json. L estensione per file JSON è.json. 2 1

2 Perchè JSON Rispetto a XML, I benefici di json sono: formato dati strutturato (come XML) Migliore rapporto segnale/rumore: riduce i caratteri extra non facenti parte dei dati (come < / > in XML) formato dati compatto Regole di parsing semplici, a lettura è facile e veloce Non ha versioni: JSON non ha versioni e non sono previste revisioni della grammatica: è molto stabile. Utile in due contesti: Scambio dati sulla stessa o fra piattaforme diverse, ad es. fra servizi Java e.net services in internet. Memorizzazione dati: es. MongoDB ( usa JSON come formato interno di memorizzazione. 3 Proprietà di JSON Facilmente comprensibile sia da umani che da computer. Supporto per Unicode, permette la comunicazione di qualunque informazione in qualunque lingua, Formato autodocumentante che descrive sia la struttura e i nomi dei campi, che il loro valore. Ha una sintassi rigida che permette una implementazione degli algoritmi di parsing semplice, efficiente e consistente; Può rappresentare le strutture dati più complesse: record, liste, alberi

3 Non solo web JSON è stato concepito come "serialized object notation" per JavaScript ed è diventato la struttura dati del Web. E un formato dati semplice, che permette di comunicare insiemi di valori, liste, e coppie associative fra sistemi. Con la diffusione di JSON, i produttori di database hanno cominciato a offrire database di documenti basati su JSON. I database tradizionali, relazionali, spesso integrano funzionalità JSON. Con una buona combinazione e semplicità di dati e struttura, JSON è stato adottato non solo sul Web ma in generale per applicazioni e servizi. JSON sta sostituendo il più complesso XML come formato di serializzazione per scambio dati fra applicazioni. 5 JSON esempio { "Esempio0": { "cap":20, "val":[3,2,3,1,2], "Q :[7,2,9,3,1] }, "Esempio1": { "cap":190, "val":[50,50,64,46,50,5], "Q :[56,59,80,64,75,17] }, "Esempio2": { "cap":100, "val":[40,35,18,4,10,2], "Q :[100,50,45,20,10,5] } } 6 3

4 Valori (vedi Stringhe Numeri Booleani Oggetti Array null 7 Stringhe Sequenze di 0 o più caratteri Unicode Non c è un tipo carattere: un carattere è una stringa di lunghezza 1 Racchiuse in "doppi apici" escape con backslash 8 4

5 Numeri Interi Reali Scientifici No ottali o hex No NaN o Infinity, solo null null un valore che rappresenta il niente 9 Oggetti Gli oggetti sono contenitori non ordinate di coppie attributo/valore Gli oggetti son racchiusi fra { }, separa coppie attributo/valore : separa chiavi da valori le chiavi sono stringhe i valori sono valori JSON Ex.: { nome : pippo, anno :1932 } 10 5

6 Array gli array sono sequenze ordinate di valori gli arrays sono racchiusi fra [ ], separa i valori Ex: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"] [ [0, -1, 0], [1, 0, 0], [0, 0, 1] ] 11 Array vs Oggetti Usare gli oggetti quando le chiavi sono stringhe. Usare gli array quando le chiavi sono interi in sequenza (inutili). non farsi confondere dal nome Associative Array, spesso usato. 12 6

7 Utilizzo di JSON in JavaScript JSON JavaScript var myobject = eval('(' + myjsontext + ')'); var myobject = JSON.parse(myJSONtext); JavaScript JSON var myjsontext = JSON.stringify(myObject); 13 JSON da un server: JSONP Le richieste HTTP da Javascript sono vincolate dalla SameOriginPolicy (SOP): le richieste ajax devono avere lo stesso dominio e port del server. Però, SOP non si applica agli script. JSONP (JSON with Padding) //callback è una JSONP: tecnica per superare le restrizioni function leggidati(istanza) cross-domain. In JSONP, il client richiede il src di uno <script> via una richiesta URL e riceve } codice JavaScript con all interno i dati. Questo "wrapped payload" viene // create poi interpretato script element dal browser. Quindi, una funzione JavaScript può varaccedere script = document.createelement('script'); a dati JSON. Esempio: Client (jquery sarebbe più semplice) Server { console.log("jsonp: Letta istanza "+istanza.nome); // ask src with callback name script.src = ' // insert script to document and load content document.body.appendchild(script); leggidati( { "nome":"gap5.15", "clienti":15,... }) 14 7

8 JSON da un server: CORS CORS (Cross-Origin Resource Sharing) è la soluzione più robusta per fare richieste cross-domain con Javascript. CORS usa gli header HTTP per controllare l accesso alla risorsa remota. Il browser aggiunge un header di richiesta: origin: function utilizzata readwithcors(){ per limitare l accesso. Il server invia var file = document.getelementbyid("jsonremotefile").value; indietro un header con la risposta var req = new XMLHttpRequest(); Access-Control-Allow-Origin: if ('withcredentials' in req) che dice che il dominio è accettato, o *, tutti i domini sono accettati. Client Server (IIS) { req.open('get', ' true); req.onreadystatechange = function() { if (req.readystate === 4) if (req.status >= 200 && req.status < 400) // JSON.parse(req.responseText) etc. else // Handle error case }; req.send(); } 15 JSON con XmlHttpRequest Per inviare dati JSON a un serer si usa un HTTP POST e si inviano i dati JSON nel body della richiesta // xmlhttp is an XmlHttpRequest object xmlhttp.setrequestheader('content-type', 'application/x-www-form-urlencoded;charset=utf-8;'); xmlhttp.send('jsondata=' + escape(myjsontext)); Gestione di dati JSON del server (3 modo) Il server imposta il content type a "text/plain" nella funzione handler dell oggetto xmlhttp, si legge xmlhttp.responsetext 8

9 JSON in C++ Serve una lireria per serializzare / deserializzare i dati. Moltissime proposte sul web (e la lista è in cescita): fastjson (il più vrloce, supereasyjson (il più facile da usare, ma discontinuato ThorsSerializer JsonBox json-cpp CAJUN libjson rapidjson jsoncons JSON++ Microsoft REST JSON Spirit picojson 17 JSON in c# Supportato direttamente dal framework (dal 3.5 in poi) in due modi diversi (!), e da progetti open source. DataContractJsonSerializer progettato per essere usato con WCF. Adatto a gestire classi complesse che hanno solo un sottinsieme di proprietà da serializzare. Tipizzazione forte, ha una coscienza profonda dei tipi che gestisce ed è in grado di gestire meglio stringhe JSON malformate. JavaScriptSerializer (deprecato da v. 3.5, ma molto utilizzato) migliore per serializzazioni semplici. Scarso controllo sugli errori e sulle proprietà che vengono serializzate. Serializzazione è la tecnica di programmazione che converte un oggetto in memoria in una sequenza di byte, adatta a essere memorizzata in un database o trasmessa su internet. 18 9

10 DataContractJsonSerializer Usa i namespace System.Runtime.Serialization e System.Runtime.Serialization.Json. Può essere applicato solo a classi definite come DataContract, con DataMembers, es.: [DataContract] public partial class Customer { [DataMember] public long id { get; set; } [DataMember] public string nome { get; set; } } 19 DataContractJsonSerializer using System.Runtime.Serialization.Json; using System.IO; // MemoryStream using System.Text; // Encoding // Serialization (json endcoding) DataContractJsonSerializer js = new DataContractJsonSerializer(typeof(List<Customer>)); MemoryStream ms = new MemoryStream(); js.writeobject(ms, customerlist); string jsonstring = Encoding.UTF8.GetString(ms.ToArray()); ms.close(); // Deserialization (json decoding) DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(List<Customer>)); MemoryStream msd = new MemoryStream(Encoding.UTF8.GetBytes(jsonString)); var obj = (List<Customer>)ser.ReadObject(msd); msd.close(); 20 10

11 JavaScriptSerializer Deprecato da v.3.5 ma molto facile da utilizzare. Necessario aggiungere una reference alla dll System.Web.extensions Serialization: string jsonstring = new System.Web.Script.Serialization.JavaScriptSerializer().Serialize( customerlist ); Deserialization: var obj = new System.Web.Script.Serialization.JavaScriptSerializer().Deserialize<List<Customer>>( jsonstring ); 21 JSON.NET Una libreria open source molto utilizzata: JSON.NET, anche via NuGet using Newtonsoft.Json; Serialization: string jsonstring = JsonConvert.SerializeObject(customerList); Deserialization: var obj = JsonConvert.DeserializeObject<List<Customer>>(jsonString); Anche strutture complesse, anche parzialmente sconosciute (v. lucido 6, serve una classe Esempio compatibile): var results = JsonConvert.DeserializeObject<dynamic>(jstr); try { var jex= results.esempio0; string jj = Convert.ToString(jex); var esempio = JsonConvert.DeserializeObject<Esempio>(jj);

12 Siti utili by D. Crockford uno di mille JSON.net 23 12

Argomenti XML JSON. Linguaggi per la definizione e lo scambio di dati strutturati, semi-strutturati, non strutturati. XML Data Model JSON

Argomenti XML JSON. Linguaggi per la definizione e lo scambio di dati strutturati, semi-strutturati, non strutturati. XML Data Model JSON XML JSON Argomenti 2 Linguaggi per la definizione e lo scambio di dati strutturati, semi-strutturati, non strutturati XML Data Model JSON 3 XML XML extensible Markup Language 4 Modello di dati XML Nato

Dettagli

Parte 6 JSON, Web Storage API, funzioni JavaScript e user script

Parte 6 JSON, Web Storage API, funzioni JavaScript e user script Sapienza Università di Roma corso di laurea in Ingegneria informatica e automatica Linguaggi e tecnologie per il Web a.a. 2017/2018 Parte 6 JSON, Web Storage API, funzioni JavaScript e user script Riccardo

Dettagli

Ajax e jquery. Emiliano Castellina. Dipartimento di Automatica e Informatica Politecnico di Torino

Ajax e jquery. Emiliano Castellina. Dipartimento di Automatica e Informatica Politecnico di Torino Ajax e jquery Emiliano Castellina Dipartimento di Automatica e Informatica Politecnico di Torino Introduzione a jquery by Emiliano Castellina is licensed under a Creative Commons Attribuzione - Non commerciale

Dettagli

AJAX. Asynchronous JavaScript and XML

AJAX. Asynchronous JavaScript and XML AJAX Asynchronous JavaScript and XML AJAX Lo sviluppo di applicazioni HTML con AJAX si basa su uno scambio di dati in background fra web browser e server, che consente l'aggiornamento dinamico di una pagina

Dettagli

JSON for Linked Data JSON-LD

JSON for Linked Data JSON-LD JSON for Linked Data JSON-LD Giuseppe Santaniello Giuseppe Pietravalle Web Semantico A.A. 2015/2016 Linked Data Insiemi di dati interconnessi sul Web Esempio: DBpedia DBpedia contiene i dati di Wikipedia

Dettagli

Corso di Applicazioni Telematiche

Corso di Applicazioni Telematiche Asynchronous JavaScript Technology and XML: Ajax Corso di Applicazioni Telematiche A.A. 2010-11 Prof. Simon Pietro Romano Università degli Studi di Napoli Federico II Facoltà di Ingegneria Rich Internet

Dettagli

Applicazioni web. Parte 4 AJAX

Applicazioni web. Parte 4 AJAX Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Applicazioni web Parte 4 AJAX Michele Tomaiuolo tomamic@ce.unipr.it Sommario Ajax jquery Esempio

Dettagli

AJAX. Recap. ! Ci sono domande?! Esame! Proponete esercizi sui temi del corso e condividiamo le soluzioni

AJAX. Recap. ! Ci sono domande?! Esame! Proponete esercizi sui temi del corso e condividiamo le soluzioni AJAX Dario Bottazzi Tel. 051 2093541, E-Mail: dario.bottazzi@unibo.it, SkypeID: dariobottazzi Recap.! Ci sono domande?! Esame! Proponete esercizi sui temi del corso e condividiamo le soluzioni 2 Rich User

Dettagli

Internet of Things & Wireless Sensor Networks

Internet of Things & Wireless Sensor Networks Internet of Things & Wireless Sensor Networks Protocols for IoT Ing. Luca Davoli Wireless Ad-hoc Sensor Network Laboratory WASNLab davoli@ce.unipr.it This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike

Dettagli

Ajax è il nome nuovo introdotto dal web 2.0, ma non si tratta di un nuovo linguaggio di. Javascript and XML

Ajax è il nome nuovo introdotto dal web 2.0, ma non si tratta di un nuovo linguaggio di. Javascript and XML Ajax Ajax è il nome nuovo introdotto dal web 2.0, ma non si tratta di un nuovo linguaggio di programmazione, piuttosto di una tecnica: Asynchronous Javascript and XML Ajax Il Javascript è una vecchia conoscenza

Dettagli

Progetto Web Math. prof. Roberto Fuligni. Istituto Tecnico Tecnologico Giacomo Fauser - Novara

Progetto Web Math. prof. Roberto Fuligni. Istituto Tecnico Tecnologico Giacomo Fauser - Novara Progetto Web Math prof. Roberto Fuligni Istituto Tecnico Tecnologico Giacomo Fauser - Novara Web Math Applicazione di rete per la rappresentazione grafica di funzioni matematiche Architettura client/server

Dettagli

3.3.6 Gli operatori Le funzioni di accesso al tipo Le strutture di controllo Le funzioni

3.3.6 Gli operatori Le funzioni di accesso al tipo Le strutture di controllo Le funzioni IIndice Capitolo 1 Da dove partiamo: pagine web statiche 1 1.1 Principi di base.............................. 1 1.1.1 Il paradigma client-server.................... 1 1.1.2 Ipertesto, multimedia, ipermedia................

Dettagli

Programmazione web lato client con JavaScript. Marco Camurri 1

Programmazione web lato client con JavaScript. Marco Camurri 1 Programmazione web lato client con JavaScript Marco Camurri 1 JavaScript E' un LINGUAGGIO DI PROGRAMMAZIONE che consente di inserire codice in una pagina web Sintassi simile a Java (e al C), ma NON E'

Dettagli

domenica 9 giugno 13 Serializzazione

domenica 9 giugno 13 Serializzazione Serializzazione A cosa serve? Ad ottenere una rappresentazione di una struttura dati che possiamo memorizzare, trasmettere via rete Cosa possiamo serializzare? OK NO Tipi primitivi, Riferimenti stringhe

Dettagli

BASI LINGUAGGIO. Programmazione Web 1

BASI LINGUAGGIO. Programmazione Web 1 BASI LINGUAGGIO Programmazione Web 1 Commen0 Riga singola // This is a comment Riga mul8pla /* This is a sec8on of mul8line comments which will not be interpreted */ Programmazione Web 2 Istruzioni Un

Dettagli

HIGHCHARTS. Federico Martinelli

HIGHCHARTS. Federico Martinelli HIGHCHARTS Federico Martinelli Data Visualization Grandissime quantità di dati da gestire Bisogno di semplicità e immediatezza con informazioni utili e di qualità. È necessaria una tecnica che permetta

Dettagli

Concetti base programmazione. Antonio Gallo

Concetti base programmazione. Antonio Gallo Concetti base programmazione Antonio Gallo info@laboratoriolibero.com Programma Insieme di istruzioni: Strtturato Ad oggetti Strutturato Ha una struttura più lineare Basato sui concetti di sequenza, selezione,

Dettagli

Informatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1

Informatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1 Informatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1 Cosa è il C++ E un linguaggio di programmazione derivato dal C Può essere usato per modificare il SO Unix e i suoi derivati (Linux)

Dettagli

Alma Mater Studiorum Università di Bologna. Scuola di Ingegneria e Architettura. Tecnologie Web T. Esercitazione 09 Riepilogo

Alma Mater Studiorum Università di Bologna. Scuola di Ingegneria e Architettura. Tecnologie Web T. Esercitazione 09 Riepilogo Alma Mater Studiorum Università di Bologna Scuola di Ingegneria e Architettura Tecnologie Web T Esercitazione 09 Riepilogo Home Page del corso: http://www-db.disi.unibo.it/courses/tw/ Versione elettronica:

Dettagli

Il linguaggio PHP. Elementi base

Il linguaggio PHP. Elementi base Il linguaggio PHP Elementi base Il Linguaggio PHP PHP è un acronimo ricorsivo che sta per PHP Hypertext Preprocessor Sintassi di base: un blocco di scripting PHP può stare ovunque in un documento, inizia

Dettagli

VBScript. VBScript. Visual Basic Scripting Edition. Linguaggio di script per browser e server Microsoft Deriva da Visual Basic, ma è interpretato

VBScript. VBScript. Visual Basic Scripting Edition. Linguaggio di script per browser e server Microsoft Deriva da Visual Basic, ma è interpretato VBScript Visual Basic Scripting Edition 1 VBScript Linguaggio di script per browser e server Microsoft Deriva da Visual Basic, ma è interpretato 2 Pag. 1 Principali caratteristiche Fine istruzione singola

Dettagli

BASI LINGUAGGIO. Programmazione Web 1

BASI LINGUAGGIO. Programmazione Web 1 BASI LINGUAGGIO Programmazione Web 1 Commen0 Riga singola // This is a comment Riga mul8pla /* This is a sec8on of mul8line comments which will not be interpreted */ Programmazione Web 2 Istruzioni Un

Dettagli

Javascript. - Corso Web Design - Media Dream Academy. Stefano Gaborin

Javascript. - Corso Web Design - Media Dream Academy. Stefano Gaborin Javascript - Corso Web Design - Media Dream Academy Stefano Gaborin stefano.gaborin@above.company www.above.company Cos è Javascript? JavaScript è un linguaggio di programmazione interpretato. Utilizzato

Dettagli

Alma Mater Studiorum Università di Bologna. Scuola di Ingegneria e Architettura. Tecnologie Web T. Esercitazione Riepilogo

Alma Mater Studiorum Università di Bologna. Scuola di Ingegneria e Architettura. Tecnologie Web T. Esercitazione Riepilogo Alma Mater Studiorum Università di Bologna Scuola di Ingegneria e Architettura Tecnologie Web T Esercitazione 09 Riepilogo Home Page del corso: http://www-db.disi.unibo.it/courses/tw/ Versione elettronica:

Dettagli

Nicolò Carandini HTTP, Web Services e RestSharp (II parte) 1

Nicolò Carandini HTTP, Web Services e RestSharp (II parte) 1 Nicolò Carandini HTTP, Web Services e RestSharp (II parte) 1 HTTP, Web Services e RestSharp Dopo aver descritto nella prima parte di quest articolo 1 le basi su cui poggia la comunicazione nel Word Wide

Dettagli

Charts. Andrea Marchetti Anno Accademico 2016/17

Charts. Andrea Marchetti Anno Accademico 2016/17 Charts Andrea Marchetti Anno Accademico 2016/17 Come visualizzare i dati raccolti? Browser Web HTTP Server Web Dati Chart Types Grafico = modo per rappresentare i dati Grafici a barre Rappresenta dati

Dettagli

In questo articolo affronteremo il problema di inviare una pagina HTML come un dato via POST con javascript, in particolare con JQuery.

In questo articolo affronteremo il problema di inviare una pagina HTML come un dato via POST con javascript, in particolare con JQuery. In questo articolo affronteremo il problema di inviare una pagina HTML come un dato via POST con javascript, in particolare con JQuery. Per inviare dei dati da una pagina web si può procedere in due modi:

Dettagli

Esempio su strutture dati dinamiche: ArrayList

Esempio su strutture dati dinamiche: ArrayList Esempio su strutture dati dinamiche: ArrayList 1 ArrayList Abbiamo detto che gli array non possono cambiare la propria dimensione: il numero di elementi contenuti viene stabilito al momento della creazione

Dettagli

Introduzione a AJAX - Asynchronous Javascript And Xml

Introduzione a AJAX - Asynchronous Javascript And Xml Introduzione a AJAX - Asynchronous Javascript And Xml Dott. Nicole NOVIELLI novielli@di.uniba.it http://www.di.uniba.it/intint/people/nicole.html Ajax 1 Motivazioni Cosa è AJAX? Vantaggi Esempi Funzionamento

Dettagli

1. (6 punti) Spiegare il significato, in modo dettagliato, del pezzo di codice seguente di una servlet:

1. (6 punti) Spiegare il significato, in modo dettagliato, del pezzo di codice seguente di una servlet: Università degli Studi di Camerino Corso di Laurea in Informatica A.A. 2015/2016 Prova Scritta di Programmazione Web, 21 Febbraio 2017 VIII Appello Docenti: Francesco Tiezzi e Luca Tesei Nome e Cognome:

Dettagli

Introduzione. Java HTTP. G. Prencipe

Introduzione. Java HTTP. G. Prencipe Java html e http G. Prencipe prencipe@di.unipi.it Introduzione Tutte le comunicazioni tra client e server Web avvengono mediate il (HyperText Transfer Protocol, attualmente alla versione 1.1), che è un

Dettagli

Guida introduttiva al PHP

Guida introduttiva al PHP Fabio Castellini 26/01/2016 Guida introduttiva al PHP Cos'è il PHP? Il PHP è un linguaggio di scripting interpretato, simile al JavaScript, per intenderci, originariamente concepito per la programmazione

Dettagli

La Serializzazione in Java. L24_Serialization 1

La Serializzazione in Java. L24_Serialization 1 La Serializzazione in Java L24_Serialization 1 La Serialization è la trasformazione di un oggetto in memoria in una sequenza di byte (ospitata in un file, trasmessa in rete, ecc). La Deserialization è

Dettagli

Il Paradigma REST per lo sviluppo di applicazioni Web 2.0

Il Paradigma REST per lo sviluppo di applicazioni Web 2.0 tesi di laurea Anno Accademico 2006/2007 Il Paradigma REST per lo sviluppo di applicazioni Web 2.0 relatore Ch.mo prof. Domenico Cotroneo correlatore Ing. Marcello Cinque candidato Antonio Alonzi Matr.

Dettagli

Ajax. Introdotta da Microsoft nel 1998 è stata standardizzata e adottata da tutti i browser moderni.

Ajax. Introdotta da Microsoft nel 1998 è stata standardizzata e adottata da tutti i browser moderni. Ajax AJAX (Asynchronous JavaScript And XML) è una tecnica fondamentale per la creazione di siti e applicazioni web ad alta interattività, che consente di evitare di ricaricare intere pagine ad ogni richiesta

Dettagli

Tecnologie informatiche multimediali

Tecnologie informatiche multimediali Università degli Studi di Ferrara Facoltà di Lettere e Filosofia Corso di Laurea in «Scienze e Tecnologie della Comunicazione» aa 2011-2012 Tecnologie informatiche multimediali Prof. Giorgio Poletti giorgio.poletti@unife.it

Dettagli

OCA JAVA 7 SE PROGRAMMER I DOCENTE: DOTT. FAUSTO DELL ANNO

OCA JAVA 7 SE PROGRAMMER I DOCENTE: DOTT. FAUSTO DELL ANNO CENTRO STUDI ULISSE Via Buccino, n. 22 - C.a.p. 84018 - Scafati (SA) Tel. Fax. 081.19970299-339.2365416-349.4152010 E-mail: info@centrostudiulisse.it - www.centrostudiulisse.it OCA JAVA 7 SE PROGRAMMER

Dettagli

JavaScript Distribuire il calcolo

JavaScript Distribuire il calcolo Documenti e Calcolo JavaScript Distribuire il calcolo Prof. Andrea Omicini Corso di Sistemi Distribuiti A.A. 2002/2003 Parte IV HTML Linguaggio per la descrizione di documenti Information-oriented Mobilità

Dettagli

Introduzione a Java. Riferimenti

Introduzione a Java. Riferimenti Introduzione a Java Si ringraziano Massimiliano Curcio e Matteo Giacalone 1: Introduction 1 Riferimenti! Java tutorial: http://java.sun.com/docs/books/tutorial/! Il Java tutorial è parte di una più ampia

Dettagli

9 - Array. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

9 - Array. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 9 - Array Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso di Laurea

Dettagli

Algoritmi di Ricerca. Esempi di programmi Java

Algoritmi di Ricerca. Esempi di programmi Java Fondamenti di Informatica Algoritmi di Ricerca Esempi di programmi Java Fondamenti di Informatica - D. Talia - UNICAL 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare

Dettagli

Tito Flagella - Il protocollo HTTP

Tito Flagella - Il protocollo HTTP Tito Flagella - tito@link.it Il protocollo HTTP Il protocollo HTTP È il protocollo standard tramite il quale i server Web rispondono alle richieste dei client (inizialmente i browser); È basato su un modello

Dettagli

Esempio su strutture dati dinamiche: ArrayList

Esempio su strutture dati dinamiche: ArrayList Esempio su strutture dati dinamiche: ArrayList Fondamenti di Informatica L-B 1 ArrayList Abbiamo detto che gli array non possono cambiare la propria dimensione: il numero di elementi contenuti viene stabilito

Dettagli

Introduzione alla programmazione lato client con Javascript

Introduzione alla programmazione lato client con Javascript Introduzione alla programmazione lato client con Javascript Luca Di Gaspero Dipartimento di Ingegneria Elettrica, Gestionale e Meccanica Università degli Studi di Udine Docente Dipartimento di Ingegneria

Dettagli

Tipi di Dati Astratti

Tipi di Dati Astratti Tipi di Dati Astratti April 19, 2017 Dati e Tipi di Dato Tipo di dato: concetto di alto livello Macchina fisica: unico tipo di dato sequenze di bit Macchine Astratte: tipi di dato più complessi Tipo di

Dettagli

Raccolta e memorizzazione dei dati immessi nei moduli dai visitatori

Raccolta e memorizzazione dei dati immessi nei moduli dai visitatori Raccolta e memorizzazione dei dati immessi nei moduli dai visitatori Raccolta e memorizzazione dei dati immessi nei moduli dai visitatori Per impostazione predefinita, i risultati dei moduli vengono salvati

Dettagli

Corso di Laboratorio di Sistemi Operativi

Corso di Laboratorio di Sistemi Operativi Corso di Laboratorio di Sistemi Operativi Lezione 4 Alessandro Dal Palù email: alessandro.dalpalu@unipr.it web: www.unipr.it/~dalpalu Approfondimento su make http://http://capone.mtsu.edu/csdept/facilitiesandresources/make.htm

Dettagli

La tecnica AJAX. Progettazione di Sistemi Interattivi. Implementazione di sistemi interattivi web-based (seconda parte) Esempio: Google Maps

La tecnica AJAX. Progettazione di Sistemi Interattivi. Implementazione di sistemi interattivi web-based (seconda parte) Esempio: Google Maps Progettazione di Sistemi Interattivi Implementazione di sistemi interattivi web-based (seconda parte) Docente: Daniela Fogli La tecnica AJAX AJAX: Asynchronous Javascript and XML Tecnica (insieme di tecnologie)

Dettagli

D B M G Il linguaggio HTML

D B M G Il linguaggio HTML Programmazione Web Il linguaggio HTML Il linguaggio HTML Concetti di base Le interfacce utente in HTML I form Le tabelle Il passaggio dei parametri contenuti nei form @2011 Politecnico di Torino 1 Concetti

Dettagli

CONCETTI E ARCHITETTURA DI UN SISTEMA DI BASI DI DATI

CONCETTI E ARCHITETTURA DI UN SISTEMA DI BASI DI DATI CONCETTI E ARCHITETTURA DI UN SISTEMA DI BASI DI DATI Introduzione alle basi di dati (2) 2 Modelli dei dati, schemi e istanze (1) Nell approccio con basi di dati è fondamentale avere un certo livello di

Dettagli

@2011 Politecnico di Torino 1

@2011 Politecnico di Torino 1 Concetti di base Programmazione Web Il linguaggio HTML HTML consente di annotare un testo per contrassegnare le parti che lo compongono Le annotazioni sono realizzate tramite i "tag" Visualizzare documenti

Dettagli

Metodologie Informatiche Applicate al Turismo

Metodologie Informatiche Applicate al Turismo Metodologie Informatiche Applicate al Turismo Esercitazione con HTML 5 - Video e Grafica Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://pages.di.unipi.it/milazzo milazzo di.unipi.it

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Algoritmi e Strutture Dati Università di Camerino Corso di Laurea in Informatica (12 CFU) I periodo didattico Emanuela Merelli email:emanuela.merelli@unicam.it Argomenti della lezione Elementi di un linguaggio

Dettagli

Algoritmi di Ricerca. Esempi di programmi Java

Algoritmi di Ricerca. Esempi di programmi Java Fondamenti di Informatica Algoritmi di Ricerca Esempi di programmi Java Fondamenti di Informatica - D. Talia - UNICAL 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare

Dettagli

Array. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 11. A. Miola Dicembre 2007

Array. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 11. A. Miola Dicembre 2007 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 11 Array A. Miola Dicembre 2007 http://www.dia.uniroma3.it/~java/fondinf1/ Array 1 Contenuti Il problema degli studenti da promuovere

Dettagli

Modulo III - Creazione di documenti, presentazioni e report

Modulo III - Creazione di documenti, presentazioni e report Modulo III - Creazione di documenti, presentazioni e report Elisabetta Ronchieri Università di Ferrara Dipartimento di Economia e Management e-mail: elisabetta.ronchieri@unife.it 1 Dicembre 2016 Elisabetta

Dettagli

Utilizza i tipi di dati comuni a tutto il framework.net Accesso nativo ai tipi.net (C# è nato con.net) Concetti fondamentali:

Utilizza i tipi di dati comuni a tutto il framework.net Accesso nativo ai tipi.net (C# è nato con.net) Concetti fondamentali: 1 Tipi di dati 1 Tipi di dati Utilizza i tipi di dati comuni a tutto il framework.net Accesso nativo ai tipi.net (C# è nato con.net) Concetti fondamentali: Tutto è un oggetto Tutto eredita implicitamente

Dettagli

Interfaccia del file system

Interfaccia del file system Interfaccia del file system Concetto di file Metodi di accesso Struttura delle directory Protezione 1 Concetto di File Insieme di informazioni correlate, registrate in memoria secondaria, con un nome.

Dettagli

Esercizio 1: archivio CD e DVD

Esercizio 1: archivio CD e DVD Esercizio 1: archivio CD e DVD Realizzare un applicazione Java per la creazione e la consultazione di un archivio di dischi ottici (CD e DVD). L applicazione riceve da standard input in maniera interattiva

Dettagli

XML e Windows Phone. Semplice tutorial per l'utilizzo di documenti e dati XML in un'app per Windows Phone.

XML e Windows Phone. Semplice tutorial per l'utilizzo di documenti e dati XML in un'app per Windows Phone. Semplice tutorial per l'utilizzo di documenti e dati XML in un'app per Windows Phone. Linguaggio utilizzato: C# IDE utilizzato: Visual Studio 2010 Andreetta Stefano Argomenti trattati: Caricamento di un

Dettagli

Comunicazione Digitale

Comunicazione Digitale Comunicazione Digitale Schema didattico di riferimento 1 1. Internet e le reti locali 1. Qual è la storia della rete Internet dagli albori ai giorni nostri 2. I tipi di rete, come si organizzano e agglomerano

Dettagli

Il linguaggio C Il linguaggio C. Caratteristiche del C. Caratteristiche del C. Linguaggi di Programmazione I. Ferdinando Cicalese

Il linguaggio C Il linguaggio C. Caratteristiche del C. Caratteristiche del C. Linguaggi di Programmazione I. Ferdinando Cicalese 03-10-2003 Il linguaggio C Linguaggio general-purpose Il linguaggio C Creato nel 1972 nei Bell Labs da Dennis Ritchie su PDP11 Usato per il Sistema Operativo Unix da Ken Thompson Negli anni 80 nasce ANSI

Dettagli

Corso di Fondamenti di Informatica Il sistema dei tipi in C++

Corso di Fondamenti di Informatica Il sistema dei tipi in C++ Corso di Fondamenti di Informatica Il sistema dei tipi in C++ Anno Accademico Francesco Tortorella Struttura di un programma C++ // Programma semplice in C++ #include int main() { cout

Dettagli

Indice. Prefazione. 3 Oggetti e Java 53

Indice. Prefazione. 3 Oggetti e Java 53 Prefazione xv 1 Architettura dei calcolatori 1 1.1 Calcolatori e applicazioni 1 1.1.1 Alcuni esempi di applicazioni 3 1.1.2 Applicazioni e interfacce 4 1.2 Architettura dei calcolatori 7 1.2.1 Hardware

Dettagli

Python Parte 1: Caratteristiche di base

Python Parte 1: Caratteristiche di base Python Parte 1: Caratteristiche di base Parte del ciclo di seminari su Programmazione Orientata agli Oggetti e Scripting in Python a cura di: Giancarlo Cherchi Introduzione Un programma Python è composto

Dettagli

Riccardo Lancellotti, Web Server Apache

Riccardo Lancellotti, Web Server Apache Web Server Apache Web Server Fonte: Netcraft Riccardo, 2002 Web server Web server più diffusi: Apache (http://httpd.apache.org) Microsoft IIS Apache Apache Web Server: ''A patchy Server'' Sviluppato da

Dettagli

Indice generale. Gli autori...xiii. Ringraziamenti...xv. Prefazione...xvii. Introduzione...xix

Indice generale. Gli autori...xiii. Ringraziamenti...xv. Prefazione...xvii. Introduzione...xix Indice generale Gli autori...xiii Ringraziamenti...xv Prefazione...xvii Introduzione...xix Le origini di PHP...xix Cos è PHP?...xix Panoramica del libro...xxi Capitolo 1: programmazione orientata agli

Dettagli

Prefazione... xi. Da leggere prima di iniziare...xiv. Capitolo 1 Introduzione a JavaScript Sezione A Programmazione, HTML e JavaScript...

Prefazione... xi. Da leggere prima di iniziare...xiv. Capitolo 1 Introduzione a JavaScript Sezione A Programmazione, HTML e JavaScript... SOMMARIO Prefazione... xi Panoramica del libro... xi Caratteristiche distintive...xii Aspetti qualificanti del libro...xii Browser Web da usare... xiii Ringraziamenti... xiii Da leggere prima di iniziare...xiv

Dettagli

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore Programma del corso Introduzione agli algoritmi Rappresentazione delle Informazioni Architettura del calcolatore Reti di Calcolatori Elementi di Programmazione Algoritmi e programmi Algoritmo Sequenza

Dettagli

INTRODUZIONE AI PRINCIPI DELLO SVILUPPO DI APPLICAZIONI WEB INTERATTIVE

INTRODUZIONE AI PRINCIPI DELLO SVILUPPO DI APPLICAZIONI WEB INTERATTIVE INTRODUZIONE AI PRINCIPI DELLO SVILUPPO DI APPLICAZIONI WEB INTERATTIVE ( I.D. Falconi ~ 21.12.2013) INTRODUZIONE AD AJAX Le caratteristiche di una applicazione Ajax sono sostanzialmente due: aggiornare

Dettagli

C# delegates. Vittorio Maniezzo Università di Bologna. Vittorio Maniezzo Università di Bologna 1. Delegate

C# delegates. Vittorio Maniezzo Università di Bologna. Vittorio Maniezzo Università di Bologna 1. Delegate C# delegates Vittorio Maniezzo Università di Bologna Vittorio Maniezzo Università di Bologna 1 Delegate I delegati possono essere visti come definizioni di tipi per puntatori a funzione. Permettono di

Dettagli

Programmazione a Oggetti Modulo B

Programmazione a Oggetti Modulo B Programmazione a Oggetti Modulo B Design Pattern Dott. Alessandro Roncato 18/10/2011 Design Patters I Design Patters sono soluzioni di progettazione standard e ben collaudate che possono essere usate in

Dettagli

Sistemi Operativi. Il file system Casi di studio. Sistemi Operativi. Corso di laurea in Informatica. AA 2002/03 Bruschi, Rosti

Sistemi Operativi. Il file system Casi di studio. Sistemi Operativi. Corso di laurea in Informatica. AA 2002/03 Bruschi, Rosti Il file system Casi di studio 1 CP/M Control Program for Microcomputer Predecessore del MS-DOS Dimensione media 16K File system predisposto per Floppy Allocazione dei file come lista-linkata di blocchi

Dettagli

2011 Politecnico di Torino 1

2011 Politecnico di Torino 1 SQL per le applicazioni Call Level Interface Le richieste sono inviate al DBMS per mezzo di funzioni del linguaggio ospite soluzione basata su interfacce predefinite API, Application Programming Interface

Dettagli

Seminario Introduzione ad Ajax

Seminario Introduzione ad Ajax Seminario Introduzione ad Ajax Linguaggi per il Web Ingegneria Informatica, Ingegneria dell'informazione, Sapienza Università di Roma, sede di Latina 9 Maggio 2016 Dott. Corrado Di Benedetto 1 Argomenti

Dettagli

Linguaggi di Programmazione

Linguaggi di Programmazione Linguaggi di Programmazione Linguaggi di Programmazione Programmazione. Insieme delle attività e tecniche svolte per creare un programma (codice sorgente) da far eseguire ad un computer. Che lingua comprende

Dettagli

Capitolo 11: l interfaccia del file system

Capitolo 11: l interfaccia del file system Capitolo 11: l interfaccia del file system Il concetto di file. Metodi di accesso. Struttura delle directory. Montaggio del file system. Condivisione dei file. Protezione. Unità logica di memorizzazione.

Dettagli

Laboratorio Progettazione Web Modello di applicazione Web

Laboratorio Progettazione Web Modello di applicazione Web Laboratorio Progettazione Web Modello di applicazione Web Andrea Marchetti IIT-CNR AA 2016/2017 Overview Questa lezione mettiamo insieme tutte le cose dette durante il corso Applicazioni 3 tier PhpMyAdmin

Dettagli

Librerie digitali. Uso di XML per memorizzare i metadati. Descrizione generale. XML per memorizzare i metadati. Motivi dell uso di XML

Librerie digitali. Uso di XML per memorizzare i metadati. Descrizione generale. XML per memorizzare i metadati. Motivi dell uso di XML Librerie digitali Uso di XML per memorizzare i metadati Descrizione generale Ad ogni dato associo un file XML che descrive il contenuto del dato stesso Memorizzo su file system sia il dato sia il file

Dettagli

Argomenti della lezione. Introduzione agli Algoritmi e alle Strutture Dati. Lista Lineare. Lista Lineare come Tipo di Dato Astratto

Argomenti della lezione. Introduzione agli Algoritmi e alle Strutture Dati. Lista Lineare. Lista Lineare come Tipo di Dato Astratto Argomenti della lezione Introduzione agli Algoritmi e alle Strutture Dati Operazioni su Liste Dr. Emanuela Merelli Tipi di Dato Astratto Lista Lineare Pila Coda Concetto di Struttura dati dinamiche Lista

Dettagli

Programmazione. Cognome... Nome... Matricola... Prova scritta del 11 luglio 2014

Programmazione. Cognome... Nome... Matricola... Prova scritta del 11 luglio 2014 Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 11 luglio 2014 TEMPO DISPONIBILE: 2 ore Negli esercizi

Dettagli

Open Database Connectivity (ODBC)

Open Database Connectivity (ODBC) Open Database Connectivity (ODBC) Open Database Connectivity (ODBC), proposto dalla Microsoft nel 1991, fornisce un interfaccia applicativa standard che permette ad una generica applicazione di accedere

Dettagli

Introduzione a C# Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Introduzione a C# Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Introduzione a C# Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni C#: Strumento Principe per.net Primo linguaggio orientato alle componenti della famiglia C/C++ Tutto è DAVVERO un oggetto

Dettagli

10 Creare. collegamenti ipertestuali

10 Creare. collegamenti ipertestuali 13Ac-Cap10.qxd 29-12-2006 14:56 Pagina 189 10 Creare collegamenti ipertestuali Collegamenti ipertestuali Campi di tipo Collegamento ipertestuale Collegamento ipertestuale in una maschera o report Convertire

Dettagli

I.I.S. G. COSSALI - ORZINUOVI DATABASE. Marzo 2017 Prof. Dario Tomasoni 1

I.I.S. G. COSSALI - ORZINUOVI DATABASE. Marzo 2017 Prof. Dario Tomasoni 1 I.I.S. G. COSSALI - ORZINUOVI DATABASE Marzo 2017 Prof. Dario Tomasoni 1 IMPOSTAZIONE 60 min = Database concetti + Esercizi; 10 min = pausa; 30 min = Linguaggio SQL; 30 min = Database prove LibreOffice

Dettagli

Fondamenti di Informatica 6. Algoritmi e pseudocodifica

Fondamenti di Informatica 6. Algoritmi e pseudocodifica Vettori e matrici #1 Fondamenti di Informatica 6. Algoritmi e pseudocodifica Corso di Laurea in Ingegneria Civile A.A. 2010-2011 1 Semestre Prof. Giovanni Pascoschi Le variabili definite come coppie

Dettagli

Università degli studi di Roma Tor Vergata Ingegneria Medica Informatica I Programma del Corso

Università degli studi di Roma Tor Vergata Ingegneria Medica Informatica I Programma del Corso Obiettivi Di seguito vengono riportate una serie di domande che possono essere poste durante la prova formale del corso. Le seguenti domande non sono da ritenersi esaustive ma esemplificative. 1. Architettura

Dettagli

Laboratorio di Basi di Dati

Laboratorio di Basi di Dati Laboratorio di Basi di Dati Docente: Alberto Belussi Lezione 10 Architettura Model-View-Controller (MVC) L'architettura MVC può essere applicata anche alla tecnologia PHP secondo diversi approcci. In questa

Dettagli

Ricevimento: dopo la lezione (in aula) o su appuntamento (Sede Scientifica Pal. 1 Primo Piano)

Ricevimento: dopo la lezione (in aula) o su appuntamento (Sede Scientifica Pal. 1 Primo Piano) Come contattarmi Ricevimento: dopo la lezione (in aula) o su appuntamento (Sede Scientifica Pal. 1 Primo Piano) Telefono : 0521 / 90 5731 Email : stefano.cagnoni@unipr.it Sito del corso : http://www.ce.unipr.it/people/cagnoni/didattica/basidati

Dettagli

ICT-Progetti Offerta formativa. Catalogo corsi 2017 per i privati

ICT-Progetti Offerta formativa. Catalogo corsi 2017 per i privati Le migliori tecnologie dell'informazione e della comunicazione al servizio del vostro business ICT-Progetti Offerta formativa Versione 1.02 aggiornata al 3 aprile 2017 Investire nella formazione continua

Dettagli

Le direttive del Preprocessore

Le direttive del Preprocessore Le direttive del Preprocessore Prof. Orazio Mirabella Direttive Un compilatore traduce le istruzioni di un programma sorgente in linguaggio macchina Talvolta è conveniente prendere coscienza dell esistenza

Dettagli

MATLAB I/O. Informatica B - A.A. 2012/2013 ACQUISIZIONE DI INPUT DA TASTIERA

MATLAB I/O. Informatica B - A.A. 2012/2013 ACQUISIZIONE DI INPUT DA TASTIERA MATLAB I/O Informatica B - A.A. 2012/2013 ACQUISIZIONE DI INPUT DA TASTIERA Funzione input valore = input( inserisci un valore ); Matlab stampa a video la stringa inserisci un valore ed aspetta di ricevere

Dettagli

Informatica Generale Andrea Corradini I linguaggi di programmazione

Informatica Generale Andrea Corradini I linguaggi di programmazione Informatica Generale Andrea Corradini 17 - I linguaggi di programmazione Sommario Cos'è un linguaggio di programmazione? Una prospettiva storica: linguaggi di prima, seconda e terza generazione I paradigmi

Dettagli

Gli XML Web Service. Prof. Mauro Giacomini. Complementi di Informatica Medica 2008/2009 1

Gli XML Web Service. Prof. Mauro Giacomini. Complementi di Informatica Medica 2008/2009 1 Gli XML Web Service Prof. Mauro Giacomini Medica 2008/2009 1 Definizioni i i i Componente.NET che risponde a richieste HTTP formattate tramite la sintassi SOAP. Gestori HTTP che intercettano richieste

Dettagli

Programmazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo

Programmazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo Programmazione Orientata agli Oggetti Emilio Di Giacomo e Walter Didimo Una metafora dal mondo reale la fabbrica di giocattoli progettisti Un semplice giocattolo Impara i suoni Dall idea al progetto Toy

Dettagli

Linee di programmazione

Linee di programmazione Ministero dell Istruzione, dell Università e della Ricerca Ufficio Scolastico regionale per il Lazio Istituto Tecnico Industriale A. Pacinotti ISTITUTO TECNICO TECNOLOGICO - LICEO SCIENTIFICO DELLE SCIENZE

Dettagli

Introduzione al linguaggio Python

Introduzione al linguaggio Python Introduzione al linguaggio Python Filippo Giunchedi filippo@esaurito.net Perché Python? Potente linguaggio di scripting ad oggetti Introduzione a Python - Linuxday 2003 p.1/?? Perché Python? Potente linguaggio

Dettagli

Gioco. credits: h+p://www.lostdecadegames.com/how- to- make- a- simple- html5- canvas- game/

Gioco. credits: h+p://www.lostdecadegames.com/how- to- make- a- simple- html5- canvas- game/ Gioco credits: h+p://www.lostdecadegames.com/how- to- make- a- simple- html5- canvas- game/ Idea HTML5 Canvas Contenitore per disegnare della grafica cerchi, quadrai, linee, immagini On the fly! (javascript)

Dettagli

/E / + D O D M O + C S C S) S

/E / + D O D M O + C S C S) S Ajax 1 Un nuovo modello L utilizzo di DHTML (JavaScript JavaScript/Eventi + DOM + CSS) delinea un nuovo modello per le applicazioni Web In pratica ci troviamo di fronte ad un modello ad eventi simile a

Dettagli

Introduzione Concetti Generali Pratica su Access Link utili. ECDL - Database. European Computer Driving Licence - Modulo 5 - Database LEZIONE 1

Introduzione Concetti Generali Pratica su Access Link utili. ECDL - Database. European Computer Driving Licence - Modulo 5 - Database LEZIONE 1 ECDL - Database Introduzione European Computer Driving Licence - Modulo 5 - Database LEZIONE 1 Informazioni sul corso orario: Giovedì - 14.30-16.30 materiale: http://www.fotoboni.com/carlo/ docente: webmaster@fotoboni.com

Dettagli