Sviluppo di Applicazioni per ios

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Sviluppo di Applicazioni per ios"

Transcript

1 Lezione 9 Sviluppo di Applicazioni per ios La persistenza dei dati su ios SQLite, CoreData Text View

2 Oggi parleremo di...

3 Oggi parleremo di... SQLite

4 Oggi parleremo di... SQLite Core Data

5 Oggi parleremo di... SQLite Core Data Web services

6 Oggi parleremo di... SQLite Core Data Web services Text View

7 Oggi parleremo di... SQLite Core Data Web services Text View Modal View Controller

8 Archives

9 Archives Pro Può includere gli oggetti di qualsiasi tipo Conformi al protocollo <NSCoding> Può includere le gerarchie complesse di oggetti Lo usa IB per archiviare gli oggetti della GUI, ad es.

10 Archives Preparare un oggetto per l archiviazione Encode - (void)encodewithcoder:(nscoder *)coder { [super encodewithcoder:coder]; [coder encodeobject:name Name ]; [coder encodeobject:picture Picture ]; [coder encodeobject:url URL ]; } Decode - (id)initwithcoder:(nscoder *)coder { self = [super initwithcoder:coder]; name = [[coder Name ] copy]; picture = [[coder Picture ] copy]; url = [[coder URL ] copy]; }

11 Archiviare e dearchiviare Se abbiamo una gerarchia di oggetti Archiviare NSArray *flowers =...; NSString *path =...; BOOL result = [NSKeyedArchiver archiverootobject:flowers tofile:path]; Dearchiviare NSArray *flowers = nil; NSString *path =...; flowers = [NSKeyedUnarchiver unarchiveobjectwithfile:path];

12 SQLite

13 Database relazionale Qual è il modello giusto?

14 Pro Perche usare SQLIte? Semplice da amministrare Semplice da usare Può essere inserito dentro un programma più grande Semplice da mantenere e personalizzare

15 Contro Quando non è la soluzione adatta? Se abbiamo un database molto grande High concurrency (multiple writers) Client-server applications

16 C API Le funzioni di base Inizializzazione di un database sqlite3 *db;... NSString *path = [[NSBundle mainbundle] if (sqlite3_open([path UTF8String], &db) == SQLITE_OK) { database [path lastpathcomponent]); } else { sqlite3_close(db); to open database '%s'",sqlite3_errmsg(db)); }

17 C API Le funzioni di base Apri il database int sqlite3_open(const char *filename, sqlite3 **db); Esegui un SQL statement int sqlite3_exec(sqlite3 *db, const char *sql, int (*callback) (void*,int,char**,char**), void *context, char **error); //dichiarazione della funzione callback int callback(void *context, int count, char **values, char **columns); Chiudi il database int sqlite3_close(sqlite3 *db);

18 Core Data

19 Core Data Come salvare i dati creati sul dispositivo? Possiamo usare SQLite INSERT const char *sql = INSERT into... ; int sqlite3_exec(sqlite3 *db, const char *sql, int (*callback) (void*,int,char**,char**), void *context, char **error); Oppure i metodi encode/decode di archives archiverootobject:flowers tofile:path/unarchiveobjectwithfile:path

20 Core Data Il framework per la persistenza degli oggetti Disegnato con lo scopo specifico di salvare gli oggetti del nostro modello in maniera semplice ed efficiente. API usato per manipolare gli oggetti nel codice. E un object persistence framework che si occupa di salvare/recuperare gli oggetti, fornisce ilsupporto per undo, assicura consistenza delle relazioni fra gli oggetti ecc. Lo strumento grafico per modellare gli oggetti. Per la definizione degli oggetti, dei loro attributi e delle relazioni con degli altri oggetti in applicazione.

21 Core Data La facilità d uso e le perfomance Lo strumento grafico - graphical modeler Come IB per la creazione delle viste Core Data usa SQLite come data store Le operazioni di searching e di sorting risultano molto più veloci rispetto a loro utilizzo con delle plist, flat data files o altro. Conserva la memoria Solo i dati di cui abbiamo bisogno in un dato momento saranno recuperati, ad es., se abbiamo due entità correlate (Parent-Child), Core Data non recupererà le entità dipendenti finche non vengono richieste (faulting)

22 Architettura di Core Data Core Data Stack Data Store File o gruppo di file che contengono i dati. Persistent Store Coordinator Il mediatore tra il Data Store e Managed Object Context Managed Object Model Rappresenta lo schema del modello di dati Managed Object Context E l interfaccia principale per l accesso ai managed data objects, gli oggetti cui persistenza è gestita dal Core Data

23 Architettura di Core Data Core Data Stack Data Store File o gruppo di file che contengono i dati. Managed Object Model Persistent Store Coordinator Persistent Store Il mediatore tra il Data Store e Managed Object Context Entity Managed Object Context Managed Objects Coordinator Managed Object Model Rappresenta lo schema del modello di dati Managed Object Context Data Store E l interfaccia principale per l accesso ai managed data objects, gli oggetti cui persistenza è gestita dal Core Data

24 Data Store File o gruppo di file che contengono i dati. Può avere diversi formati In base ai valori di parametri usati nella creazione, Data Store può essere un file binario, un databse SQLite o un in-memory data file. Non accediamo mai direttamente al data store Useremo l astrazione fornita dal Persistent Store Coordinator. Non ci dobbiamo occupare di com è implementato il data store. SQLite database vs binary file Il primo è preferito (SQLite database). Il formato binario (proprietario) richiede che l intera gerarchia di oggetti viene caricata in memoria, mentre SQLite permette anche load parziali

25 Persistent Store Coordinator Il mediatore tra il Data Store e Managed Object Context Passa la richiesta per i dati fatta dal context al Data Store appropriato Permette di accedere ad uno o più data store come se fossero uno solo. Associa data store a Managed Object Model La classe NSPersistentStoreCoordinator Attenzione, non è thread safe. Quando dobbiamo accedere ai dati simultaneamente dai thread diversi o creiamo delle istanze di PSC per ognuno o utilizziamo il meccanismo di lock/ unlock sull istanza singola.

26 Managed Object Model Rappresenta lo schema del modello di dati E un insieme di entità che definiscono gli oggetti data dell applicazione. Si possono specificare gli attributi dell entità e si possono definire le relazioni tra di loro. Si può pensare come il diagramma Entity-Relationship di un database. Tipicamente si crea utilizzando lo strumento grafico Si può creare il modello anche nel codice (bisogna rispettare le convenzioni per il KVC e KVO) Non si accedecdirettamente dal codice ma se è necessario possiamo utilizzare la classe NSManagedObjectModel

27 Managed Object Context E l interfaccia principale per l accesso agli oggetti cui persistenza è gestita dal Core Data Spesso chiamato solo, il context, è un istanza di NSManagedObjectContext Mantiene tutti i data objects dell applicazione, che sono le istanze o le sottoclassi della classe NSManagedObject E una sandbox per i dati dell applicazione Possiamo aggiungere gli oggetti al contesto, cancellarli o modificarli, tutto succede in memoria. Usa Persistent Store Coordinator per spostare i dati dal data Store sul disco. Interroga il Managed object Model per assciurare l integrità di dati prima.

28 Managed Object Context E per portare i dati dal data store nel context? Facciamo le richiesta fetch contro il contesto per importare i dati dal data store. La richiesta di fetch è simile al SELECT di SQL. Possiamo fornire i predicati per filtrare i dati (WHERE di SQL) Possiamo fornire anche la matrice di sort che funziona come ORDER BY di SQL.

29 Core Data e UITableView Come implementare i metodi datasource richiesti? Il numero di sezioni Il metodo opzionale, se non implementato resituisce 1 - (NSInteger)numberOfSectionsInTableView:(UITableView *)table; Il numero di righe Il metodo richiesto - (NSInteger)tableView:(UITableView *)tableview numberofrowsinsection:(nsinteger)section; Il contenuto Il metodo richiesto - (UITableViewCell *)tableview:(uitableview *)tableview cellforrowatindexpath:(nsindexpath *)indexpath;

30 Core Data e UITableView Il numero di sezioni - (NSInteger)numberOfSectionsInTableView:(UITableView *)table { return [fetchedresultscontroller section] count]; } Il numero di righe - (NSInteger)tableView:(UITableView *)tableview numberofrowsinsection:(nsinteger)section; { id <NSFetchedResultsSectionInfo> sectioninfo = [fetchedresultscontroller sections] objectatindex:section]; return [sectioninfo numberofobjects]; }

31 Core Data e UITableView Il contenuto - (UITableViewCell *)tableview:(uitableview *)tableview cellforrowatindexpath:(nsindexpath *)indexpath { UITableViewCell *cell = [tableview CellIdentifier ]; if (cell == nil) { cell = [[[UITableViewCell alloc] initwithstyle:... CellIdentifier ] autorelease]; } NSManagedObject *managedobject = [fetchedresultscontroller objectatindexpath:indexpath]; cell.textlabel.text = [managedobject name ]; return cell; }

32 Core Data e UITableView Cancellare una riga - (void)tableview:(uitableview *)sender commiteditingstyle:(uitableviewcelleditingstyle)editingstyle forrowatindexpath:(nsindexpath *)indexpath { if(editingstyle == UITableViewCellEditingStyleDeletion) { NSManagedContext *context = [fetchedresultscontroller managedobjectcontext]; [contex deleteobject: [fetchedresultscontroller objectatindexpath:indexpath]]; NSError *error = nil; if(![context save:&error]) Errore non gestito error, [error userinfo]); abort(); } }

33 Core Data e UITableView Inserire una riga - (void) insertnew { NSManagedContext *context = [fetchedresultscontroller managedobjectcontext]; NSEntityDescription *entity = [[fetchedresultscontroller fetchrequest] entity]; NSManagedObject *newmanagedobject = [NSEntityDescription insertnewobjectforentityforname: [entity name] inmanagedobjectcontext:context]; [newmanagedobject name ]; NSError *error = nil; if(![context save:&error]) Errore non gestito error, [error userinfo]); abort(); } }

34 Webservices

35 Web Aplication Il protocollo HTTP (HyperText Transfer Protocol) La maggior parte di contenuti web le pagine statiche e dinamiche, i webservices, le web apps. Un protocollo di comunicazione standardizzato Gira sopra il protocollo TCP/IP che collega i dispositivi Implementa un design request/response. Per comunicare con il server inviamo la richiesta all indirizzo del sito. Usiamo gli URL (Uniform Resource Locator), la rappresentazione testuale dell indirizzo numerico IP del sito web. Se tutto va bene, il server ci invia la risposta coi dati richiesti.

36 Supporto in ios Synchronous Data Retrieval Foundation framework ci fornisce dei metodi helper per un veloce e facile recupero di dati dal web. Basta una riga di codice il metodo di NSString stringwithcontentsofurl:encoding:error e il simile metodo di NSData datawithcontentsofurl:

37 Supporto in ios Synchronous Data Retrieval Saremo tentati di usare questi metodi se non ci fossero delle serie conseguenze negative. Sono delle operazioni sincrone Se eseguite sul main thread, bloccano l applicazione fino la fine della chiamata. Non forniscono i dettagli sugli eventuali errori Gestione degli errori e programmazione difensiva sono importanti quando si lavora coi servizi web e con la rete in generale. Funzionano in una direzione sola Non li possiamo usare per inviare i dati (POST) indietro al sito.

38 Asynchronous Data Retrieval Sistema di URL Loading Insieme di classi di supporto per la comunicazione via URL e HTTP. Usiamo le classi NSURL e NSURLRequest per creare ed inviare la richiesta al server. NSURL Un oggetto che rappresenta l indirizzo di una risorsa che si può trovare nel file sistem locale, oppure in rete locale o in Internet. NSURLRequest Rappresenta tutti i dati necessari per creare una richiesta al web server. Di solito viene inizializzata con un istanza di NSURL. initwithurl:(nsurl *)detailurl

39 Asynchronous Data Retrieval La comunicazione col web server NSURLConnection per creare la connessione e inviare la richiesta In base alla risposta ricevuta verranno chiamati i suoi metodi delegate definiti in NSURLConnectionDelegate. Il web server invia i headers di risposta il framework crea per noi l oggetto NSURLResponse e invoca il metodo delegate connection:didreceiveresponse La risposta contiene informazioni sui dati che riceveremo, ad es. la lunghezza presunta di dati, encoding type ecc.

40 Asynchronous Data Retrieval Arrivano i dati Per accettare i dati provenienti dal server dobbiamo implementare il metodo delegate connection:didreceivedata: Il metodo può essere invocato diverse volte, mentre i dati affluiscono dal server all applicazione quando il server ha termnato di inviare i dati, verrà chiamato il metodo connectiondidfinishloading: A questo putno possiamo rilasciare la connessione con il servere e pensare a processare i dati ricevuti.

41 Asynchronous Data Retrieval La richiesta e inizializzazione della connessione Abbiamo un pulsante che invoca l azione - (IBAction) buttonpressed:(uibutton *) sender { NSURLRequest *request = [NSURLRequest requestwithurl: [NSURL ] cachepolicy:nsurlequestuseprotocolcachepolicy timeoutinterval:30.0]; NSURLConnection *connection = [[NSURLConnection alloc] initwithrequest:request delegate:self]; if (connection) { self.responsedata = [NSMutableData data]; // faremo append } else { Connessione falita ); }

42 Asynchronous Data Retrieval Inviata la richiesta Il metodo delegate che dobbiamo implementare - (NSURLRequest *)connection:(nsurlconnection *)connection willsendrequest:(nsurlrequest *)request redirectresponse:(nsurlresponse *)response { connection:willsendrequest:redirectresponse: ); return request; } Il metodo potrebbe essere invocato diverse volte (redirect multipli)

43 Asynchronous Data Retrieval Autenticazione? E se il server richiede l autenticazione - (void)connection:(nsurlconnection *) connection didreceiveauthenticationchallange:(nsurlauthenticationchallenge *) challenge { //crea i credenziali e invia la richiesta con questi } Possiamo agire in 3 modi diversi Scoprire il tipo di challange richiesto dal server e creare un oggetto NSURLCredential con i valori necessari per l autenticazione.

44 Asynchronous Data Retrieval Autenticazione? E se il server richiede l autenticazione - (void)connection:(nsurlconnection *) connection didreceiveauthenticationchallange:(nsurlauthenticationchallenge *) challenge { [connection continuewithoutcredentialsforauthenticationchalange:challenge]; } Possiamo agire in 3 modi diversi Scoprire il tipo di challange richiesto dal server e creare un oggetto NSURLCredential con i valori necessari per l autenticazione. Fare finta di nulla e chiamare il metodo continuewithoutcredentialsforauthenticationchalange:

45 Asynchronous Data Retrieval Autenticazione? E se il server richiede l autenticazione - (void)connection:(nsurlconnection *) connection didreceiveauthenticationchallange:(nsurlauthenticationchallenge *) challenge { [connection cancelauthenticationchalange:challenge]; } Possiamo agire in 3 modi diversi Scoprire il tipo di challange richiesto dal server e creare un oggetto NSURLCredential con i valori necessari per l autenticazione. Fare finta di nulla e chiamare il metodo continuewithoutcredentialsforauthenticationchalange: Cancellare la richiesta

46 Asynchronous Data Retrieval Server risponde Il server invia i headers della risposta - (void)connection:(nsurlconnection *) connection didreceiveresponse:(nsurlresponse *) response { [self.responsedata setlength:0] //potrebbe essere invocato diverse volte } Arrivano i dati - (void)connection:(nsurlconnection *) connection didreceivedata:(nsdata *) data { [self.responsedata appenddata:data]; }

47 Asynchronous Data Retrieval In fine Processiamo i dati ricevuti - (void)connectiondidfinishloading:(nsurlconnection *) connection { //Fare qualcosa di utili coi dati ricevuti [connection release]; } Errore - (void)connection:(nsurlconnection *) connection didfailwitherror:(nserror *)error { [error localizeddescription]; [connection release]; }

48 Demo

49 Text View

50 Text Input Assenza di tastiera fisica Aggiungendo un UITextField alla GUI avremo la tastiera gratis che apparirà non appena il text field (o la text view) ha ricevuto il focus. Ma c è il trucco, la tastiera non andrà via automaticamente. E il compito nostro di rimuovere la tastiera una volta finito l editing del testo. Dobbiamo diventare il delegate di text field e implementare il metodo textfieldshouldreturn: - (BOOL) textfieldshouldreturn:(uitextfield *) textfield { [textfield resignfirstresponder]; return YES; }

51 UI secondaria Tastiera non è l input primario per i dispositivi ios

52 UI secondaria Tastiera non è l input primario per i dispositivi ios

53 UI secondaria Tastiera non è l input primario per i dispositivi ios Q W E R T Y U I O P A S D F G H J K L Z X C V B N M.?123 space return

54 Diversi layout Visto che è difficile scrivere, possiamo aiutare l utente mostrando la tastiera con layout appropriato

55 Tastiera per l inserimento degli URL

56

57

58 Tastiera per l inserimento degli indirizzi

59

60

61 Tastiera per l inserimento degi numeri di telefono

62

63

64 UITextField e UITextView UIKite mette a disposizione due elementi principali per la gestione del testo UITextField Rappresenta l area sullo schermo per l inserimento di una singola riga di testo. Utile per i campi come username, , password ecc. UITextView Gestisce il testo disposto su diverse righe, attivando la funzionalità dello scroll dove richiesta.

65 UITextField Espone delle proprietà che permettono la manipolazione programmata. Gran parte di queste vengone impostate nell Interface Builder

66 UITextField Le proprietà NSString *text; Il nostro controller adotterà questo id<uitextfielddelegate> delegate; Quasi sempre impostate nel UIColor UIFont UITextAlignment textalignment; // default UITextBorderStyle borderstyle; // default NSString *placeholder;

67 Protocollo UITextInputTraits Model-View-Controller Imposteremo i valori delle proprietà esposte nel IB. Capitalize: Controlla se capitalizzare parole, frasi, o tutti i caratteri inseriti nel campo. Correction: Correggere automaticamente gli errori di spelling Keyboard: Il tipo di tastiera viruale da presentare quando il campo riceve il focus; ce ne sono 7 tipi diversi disponibili pe ritilizzo nei vari contesti ( , url, telefono, numeri ecc.) Appearance: Cambia l aspetto della tastiera (per presentazione con degli alert) Return Key: Se la tastiera dispone dal tasto Return, qui possiamo impostarne l etichetta (Go, google, Yahoo, send, return ecc.) Auto-Enable Return Key: Attiva il tasto Return se c è almeno un carattere nel campo. Secure: Il campo verrà utilizzato per l inserimento delle password, quindi i caratteri devono esere mascherati

68 UITextInputTraits Ovviamente le possiamo gestire anche dal UITextAutocapitalizationType autocapitalizationtype; Valore di default UITextAutocorrectionType autocorrectiontype; Valore di default UIKeyboardType keyboardtype; Valore di default UIKeyboardAppearance keyboardappearance; Valore di default UIReturnKeyType returnkeytype; Valore di default is BOOL enablesreturnkeyautomatically; Valore di default BOOL securetextentry; Valore di default NO

69 Tastiera personalizzata Uno dei vantaggi di avera la tastiera virtuale e non fisica è di poterne avere diverse da presentare in contesti diversi. Tastiera di default Contiene tutto il set di caratteri Tastiera per Contiene solo i caratteri che sono ammissibili per l indirizzo Tastiera numerica Soli numeri e punteggiatura.

70 Gestione della tastiera Il tipo viene associato nell Interface Builder UIKeyboardTypeDefault Tipo di default per il metodo d input corrente. UIKeyboardTypeASCIICapable Presenta la tastiera con per l inserimento di caratteri ASCII UIKeyboardTypeNumbersAndPunctuation Prsenta i numeri e la punteggiatura UIKeyboardTypeURL Tipo ottimizzato per l inserimento delgi indirizzi URL (mostra. /.com) UIKeyboardTypeNumberPad Il pad numerico (0-9). Utile per l inserimento dei PID UIKeyboardTypePhonePad L inserimentoi di numeri (1-9, *, 0, #, con delle lettere sotto i numeri). UIKeyboardTypeNamePhonePad Tipo super ottimizzato perl inserimento dei nomi e di persona e dei numeri di telefono UIKeyboardType Address Tastiera ottimizzata per lìinserimento degli indirizzi

71 UITextFieldDelegate Il protocollo da usare per ricevere le modifiche fatte dall utente nella UI - (BOOL)textFieldShouldBeginEditing:(UITextField *)textfield; Se restituiamo NO il campo non sarà editabile. - (void)textfielddidbeginediting:(uitextfield *)textfield; Verrà chiamato su delegate quando il campo riceve il focus (diventa first responder) - (BOOL)textFieldShouldEndEditing:(UITextField *)textfield; Dobbiamo restituire YES se vogliamo finire l editing e rimuovere il focus dal campo - (void)textfielddidendediting:(uitextfield *)textfield; Questo metodo può essere chiamato anche per forzare l uscita dal campo anche se il metodo precedente textfielddidendediting: ha restituito NO - (BOOL)textFieldShouldReturn:(UITextField *)textfield; Chiamato quando viene premuto il tasto Enter, questo metodo non è disponibile per UITextView

72 UITextView E un campo multiline con la funzionalità di scroll ed è, quindi, la prima scelta quando abbiamo da fare con più di una riga di testo. Come UITextField anche UITextView aderisce al protocollo UITextInputTraits. A differenza di UITextField qui possiamo esplicitare che il campo non è editabile impostando la BOOL editable; a NO nel codice o nel IB Possiamo anche attivare il riconoscimento automatico di alcuni formati speciali all interno del testo come il numero di telefono, , eventi per l inserimento nel calendario UIDataDetectorTypes datadetectortypes;

73 UITextViewDelegate Ttutti i metodi - (BOOL)textViewShouldBeginEditing:(UITextView *)textview; - (BOOL)textViewShouldEndEditing:(UITextView *)textview; - (void)textviewdidbeginediting:(uitextview *)textview; - (void)textviewdidendediting:(uitextview *)textview; - (BOOL) textview:(uitextview *)textview shouldchangetextinrange:(nsrange)range replacementtext:(nsstring *)text; - (void)textviewdidchange:(uitextview *)textview; - (void)textviewdidchangeselection:(uitextview *)textview;

74 Modal View

75 Presentazioni delle viste modali Non abusare Per eseguire alcuni task particolari come selezionare o scattare delle foto, inserire un nuovo contatto nell Address Book ecc.

76 Presentare un ViewController Modale All interno di un ViewController - (void)showaddrecipe { RecipeAddViewController *viewcontroller =...; [self presentmodalviewcontroller:viewcontroller animated:yes]; }

77 Rimuovere un ViewController Modale All interno di un ViewController - (void)didaddrecipe { [self dismissmodalviewcontrolleranimated:yes]; } Chi rimuove il ViewController modale? Best Practice: Stesso controller che l ha presentato. Il ViewController Modale definisce un protocollo. Il ViewController che lo presenta aderisce a questo protocollo, e si registra come il suo delegate. Il ViewController Modale informa il suo delegate che ha terminato con il

78 Chi rimuove il ViewController modale? Best Practice: Lo stesso oggetto che l ha presentato. In grosse linee... Il ViewController Modale definisce un protocollo. Il ViewController che lo presenta aderisce a questo protocollo, e si registra come il suo delegate. Il ViewController Modale informa il suo delegate che ha terminato con il task. Il delegate lo rimuove.

79 Chi rimuove il ViewController modale? Best Practice: Lo stesso oggetto che l ha presentato. In grosse linee... Il ViewController Modale definisce un protocollo. Il ViewController che lo presenta aderisce a questo protocollo, e si registra come il suo delegate. Il ViewController Modale informa il suo delegate che ha terminato con il task. Il delegate lo rimuove. ParentController

80 Chi rimuove il ViewController modale? Best Practice: Lo stesso oggetto che l ha presentato. In grosse linee... Il ViewController Modale definisce un protocollo. Il ViewController che lo presenta aderisce a questo protocollo, e si registra come il suo delegate. Il ViewController Modale informa il suo delegate che ha terminato con il task. Il delegate lo rimuove. Presenta ParentController ModalController

81 Chi rimuove il ViewController modale? Best Practice: Lo stesso oggetto che l ha presentato. In grosse linee... Il ViewController Modale definisce un protocollo. Il ViewController che lo presenta aderisce a questo protocollo, e si registra come il suo delegate. Il ViewController Modale informa il suo delegate che ha terminato con il task. Il delegate lo rimuove. ParentController didaddrecipe ModalController

82 Chi rimuove il ViewController modale? Best Practice: Lo stesso oggetto che l ha presentato. In grosse linee... Il ViewController Modale definisce un protocollo. Il ViewController che lo presenta aderisce a questo protocollo, e si registra come il suo delegate. Il ViewController Modale informa il suo delegate che ha terminato con il task. Il delegate lo rimuove. Rimuovi ParentController ModalController

83 Chi rimuove il ViewController modale? Best Practice: Lo stesso oggetto che l ha presentato. In grosse linee... Il ViewController Modale definisce un protocollo. Il ViewController che lo presenta aderisce a questo protocollo, e si registra come il suo delegate. Il ViewController Modale informa il suo delegate che ha terminato con il task. Il delegate lo rimuove. ParentController

JDBC di base. Le classi/interfacce principali di JDBC

JDBC di base. Le classi/interfacce principali di JDBC JDBC di base Java Database Connectivity è il package Java per l accesso a database relazionali il package contiene interfacce e classi astratte completa indipendenza del codice dal tipo di database o di

Dettagli

JDBC versione base. Le classi/interfacce principali di JDBC

JDBC versione base. Le classi/interfacce principali di JDBC JDBC versione base Java Database Connectivity è il package Java per l accesso a database relazionali il package contiene interfacce e classi astratte uno dei pregi è la completa indipendenza del codice

Dettagli

JDBC: Introduzione. Java Database Connectivity (JDBC): parte 1. Schema dei legami tra le classi principali. Principali classi/interfacce di JDBC

JDBC: Introduzione. Java Database Connectivity (JDBC): parte 1. Schema dei legami tra le classi principali. Principali classi/interfacce di JDBC JDBC: Introduzione Java Database Connectivity (JDBC): parte 1 Gianluca Moro DEIS - Università di Bologna gmoro@deis.unibo.it Java Database Connectivity è il package Java per l accesso a database relazionali

Dettagli

Lezione 1. Sviluppo di Applicazioni per ios. Panoramica Tecnologica ios e ios SDK Strumenti di sviluppo per ios. Università di Pisa

Lezione 1. Sviluppo di Applicazioni per ios. Panoramica Tecnologica ios e ios SDK Strumenti di sviluppo per ios. Università di Pisa Lezione 1 Sviluppo di Applicazioni per ios Panoramica Tecnologica ios e ios SDK Strumenti di sviluppo per ios Oggi... ios e ios SDK Strumenti di sviluppo Linguaggio Objective C Fondamenti di OOP Dispositivi

Dettagli

Tecnologie e Programmazione Web

Tecnologie e Programmazione Web Presentazione 1 Tecnologie e Programmazione Web Html, JavaScript e PHP RgLUG Ragusa Linux Users Group SOftware LIbero RAgusa http://www.solira.org - Nunzio Brugaletta (ennebi) - Reti 2 Scopi di una rete

Dettagli

Contenuti. Applicazioni di rete e protocolli applicativi

Contenuti. Applicazioni di rete e protocolli applicativi Contenuti Architettura di Internet Principi di interconnessione e trasmissione World Wide Web Posta elettronica Motori di ricerca Tecnologie delle reti di calcolatori Servizi Internet (come funzionano

Dettagli

Struttura di un sistema operativo. Struttura dei Sistemi Operativi. Servizi per l utente generico. Servizi per l utente generico

Struttura di un sistema operativo. Struttura dei Sistemi Operativi. Servizi per l utente generico. Servizi per l utente generico Impossibile visualizzare l'immagine. Struttura di un sistema operativo Struttura dei Sistemi Operativi Servizi di un sistema operativo Interfaccia Utente Capitolo 2 -- Silberschatz Chiamate di sistema

Dettagli

Esercitazione query in SQL L esercitazione viene effettuata sul database viaggi e vacanze che prevede il seguente modello E/R:

Esercitazione query in SQL L esercitazione viene effettuata sul database viaggi e vacanze che prevede il seguente modello E/R: Esercitazione query in SQL L esercitazione viene effettuata sul database viaggi e vacanze che prevede il seguente modello E/R: Si consiglia di creare il data base, inserire i dati nelle tabelle, provare

Dettagli

Applicazione client-server in PHP con database MySQL

Applicazione client-server in PHP con database MySQL Applicazione client-server in PHP con database MySQL Emanuele Scapin 1 1 Liceo Statale F.Corradini, via Milano 1, 36016 Thiene 30/05/2012 1 Premessa Dopo la trattazione di argomenti teorici di progettazione

Dettagli

Programmazione Java Avanzata

Programmazione Java Avanzata Programmazione Java Avanzata Accesso ai Dati Ing. Giuseppe D'Aquì Testi Consigliati Eclipse In Action Core J2EE Patterns - DAO [http://java.sun.com/blueprints/corej2eepatterns/patterns/dataaccessobject.html]

Dettagli

Quando si sa chiaramente come si deve comportare l applicazione si può analizzare una possibile soluzione applicativa.

Quando si sa chiaramente come si deve comportare l applicazione si può analizzare una possibile soluzione applicativa. Introduzione alla tecnologia JMX 1 Viene analizzata l architettura sottostante le Java Managment Extensions (JMX) mostrandone un utilizzo applicativo e analizzando altri possibili scenari d uso di Ivan

Dettagli

Corso di Informatica. Prerequisiti. Modulo T3 B3 Programmazione lato server. Architettura client/server Conoscenze generali sui database

Corso di Informatica. Prerequisiti. Modulo T3 B3 Programmazione lato server. Architettura client/server Conoscenze generali sui database Corso di Informatica Modulo T3 B3 Programmazione lato server 1 Prerequisiti Architettura client/server Conoscenze generali sui database 2 1 Introduzione Lo scopo di questa Unità è descrivere gli strumenti

Dettagli

APPENDICE. Procedure in SQL (1)

APPENDICE. Procedure in SQL (1) APPENDICE Procedure in SQL Transazioni in SQL Embedded SQL Remote Procedure Call Appendice 1 Procedure in SQL (1) Standard SQL2 permette di definire procedure, associate a singoli comandi SQL, memorizzate

Dettagli

PHP 5. Accesso a database

PHP 5. Accesso a database PHP 5 Accesso a database PHP ed i database PHP funziona con molti database relazionali che includono: Oracle Access Postgres SQL Server MySQL Useremo MySQL poiché è semplice da usare, gratuito e molto

Dettagli

Corso di Web Programming

Corso di Web Programming Corso di Web Programming 11. PHP - Complementi Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso di Laurea in Informatica Applicata

Dettagli

Sviluppo di Applicazioni per ios

Sviluppo di Applicazioni per ios Lezione 5 Sviluppo di Applicazioni per ios Applicazione ios Application Life Cycle Viste Oggi parleremo di... Oggi parleremo di... Anatomia di una applicazione ios Oggi parleremo di... Anatomia di una

Dettagli

Basi di dati (8) Docente: Andrea Bulgarelli. Università di Modena e Reggio Emilia. andrea.bulgarelli@gmail.com Argomento: trigger e cursori (1.

Basi di dati (8) Docente: Andrea Bulgarelli. Università di Modena e Reggio Emilia. andrea.bulgarelli@gmail.com Argomento: trigger e cursori (1. Università di Modena e Reggio Emilia Basi di dati (8) Docente: andrea.bulgarelli@gmail.com Argomento: trigger e cursori (1.1) 1 Panoramica Trigger Creazione Tipi di trigger Tabelle inserted/deleted Esempi

Dettagli

DBMS (Data Base Management System)

DBMS (Data Base Management System) Cos'è un Database I database o banche dati o base dati sono collezioni di dati, tra loro correlati, utilizzati per rappresentare una porzione del mondo reale. Sono strutturati in modo tale da consentire

Dettagli

L interfaccia a riga di comando di MySql

L interfaccia a riga di comando di MySql L interfaccia a riga di comando di MySql Una volta completata la procedura di installazione possiamo finalmente testare le funzionalità di MySQL. Sia che ci si trovi in ambiente Linux che Windows, l'interfaccia

Dettagli

L ARCHIVIAZIONE E LA GESTIONE DATI ATTRAVERSO L INTERAZIONE TRA MICROSOFT ACCESS ED EXCEL 1 INTRODUZIONE

L ARCHIVIAZIONE E LA GESTIONE DATI ATTRAVERSO L INTERAZIONE TRA MICROSOFT ACCESS ED EXCEL 1 INTRODUZIONE Roccatello Ing. Eduard L ARCHIVIAZIONE E LA GESTIONE DATI ATTRAVERSO L INTERAZIONE TRA MICROSOFT ACCESS ED EXCEL 1 INTRODUZIONE Agenda Presentazione docente Definizione calendario Questionario pre corso

Dettagli

Basi di dati Il linguaggio SQL

Basi di dati Il linguaggio SQL Basi di dati Il linguaggio SQL teoria e pratica con Microsoft Access Riepilogando Nelle basi di dati esiste 1. una parte invariante nel tempo, lo schema, costituita dalle caratteristiche dei dati (nomi

Dettagli

Basi di dati Il linguaggio SQL

Basi di dati Il linguaggio SQL Riepilogando Basi di dati Il linguaggio SQL Nelle basi di dati esiste 1. una parte invariante nel tempo, lo schema, costituita dalle caratteristiche dei dati (nomi degli attributi, domini, 2. una parte

Dettagli

Architettura SW Definizione e Notazioni

Architettura SW Definizione e Notazioni Corso di Laurea Specialistica in Ingegneria Informatica Corso di Ingegneria del Software A. A. 2008 - Stili Architetturali E. TINELLI Architettura SW Definizione e Notazioni Definizione ANSI/IEEE Std Std1471-2000

Dettagli

PHP 5. PHP ed i database. Database e tabelle. Struttura di un DB relazionale. Accesso a database

PHP 5. PHP ed i database. Database e tabelle. Struttura di un DB relazionale. Accesso a database PHP ed i database PHP 5 Accesso a database PHP funziona con molti database relazionale che includono: Oracle Access Postgres SQL Server MySQL Useremo MySQL poiché è semplice da usare, gratuito e molto

Dettagli

Basi di dati - Basi di dati e Web

Basi di dati - Basi di dati e Web - e Web Sistemi informativi su Web e Web Il Web è nato come interfaccia di accesso a informazioni distribuite su più siti, ma specificamente predisposte pagine HTML Il Web è divenuto una piattaforma generale

Dettagli

DBMS ed Applicazioni Motivazioni

DBMS ed Applicazioni Motivazioni DBMS ed Applicazioni Motivazioni Sin ora abbiamo visto SQL come linguaggio per interrogare DBMS da interfaccia interattiva Nella pratica, un efficace sfruttamento delle potenzialità dei DBMS deriva dalla

Dettagli

Tecnologia e Applicazioni Internet 2011/12

Tecnologia e Applicazioni Internet 2011/12 Tecnologia e Applicazioni Internet 2011/12 Lezione 4 - Persistenza Matteo Vaccari http://matteo.vaccari.name/ matteo.vaccari@uninsubria.it Perché usare un DB relazionale? Per l accesso concorrente ai dati

Dettagli

APPENDICE B Le Active Server Page

APPENDICE B Le Active Server Page APPENDICE B Le Active Server Page B.1 Introduzione ad ASP La programmazione web è nata con la Common Gateway Interface. L interfaccia CGI tuttavia presenta dei limiti: ad esempio anche per semplici elaborazioni

Dettagli

DUE GRUPPI DI COMANDI

DUE GRUPPI DI COMANDI LEZIONE16 SQL DDL PAG. 1 / 9 PROF. ANDREA ZOCCHEDDU LEZIONE16 SQL DDL LINGUAGGIO SQL DATA DESCRIPTION LANGUAGE DUE GRUPPI DI COMANDI I comandi del linguaggio SQL sono divisi in due grandi gruppi che formano

Dettagli

Indice generale. Prefazione...xix. Prima di iniziare...xxvii

Indice generale. Prefazione...xix. Prima di iniziare...xxvii Indice generale Prefazione...xix La crescita esplosiva di iphone e ipad crea opportunità per gli sviluppatori...xix Ebook e video LiveLesson su Safari Books Online...xx Copyright e licenze del codice...xx

Dettagli

Non si deve fare ALCUN riferimento alla parte specifica di JDBC.

Non si deve fare ALCUN riferimento alla parte specifica di JDBC. Un applicazione per la quale sia fondamentale l indipendenza dal Database può essere scritta in Java usando le specifiche. (Package java.sql) Non devono essere usate chiamate specifiche del database: Si

Dettagli

2. Costruire un database con Apache, PHP e MySql

2. Costruire un database con Apache, PHP e MySql 2. Costruire un database con Apache, PHP e MySql Lo scopo di questa esercitazione è realizzare un server web e costruire un database accessibile attraverso Internet utilizzando il server Apache, il linguaggio

Dettagli

Stack protocolli TCP/IP

Stack protocolli TCP/IP Stack protocolli TCP/IP Application Layer Transport Layer Internet Layer Host-to-Nework Layer DNS SMTP Telnet HTTP TCP UDP IP Insieme di eterogenei sistemi di rete... 1 Concetti base Differenza tra i concetti

Dettagli

10.7 La classe BitSet... 555 Esercizi di autovalutazione... 558 Risposte agli esercizi di autovalutazione... 559 Esercizi 559

10.7 La classe BitSet... 555 Esercizi di autovalutazione... 558 Risposte agli esercizi di autovalutazione... 559 Esercizi 559 Sommario PREFAZIONE... XI Il nostro approccio didattico... xi Una panoramica del libro... xiv Ringraziamenti... xvii Gli autori... xix Deitel & Associates, Inc.... xx CAPITOLO 1 LA GRAFICA E JAVA2D...

Dettagli

Lezione 8. Metadati, Viste e Trigger

Lezione 8. Metadati, Viste e Trigger Lezione 8 Metadati, Viste e Trigger Pag.1 Metadati e catalogo di sistema I metadati sono dati a proposito dei dati (quali tabelle esistono?, quali campi contengono?, quante tuple contengono?, ci sono vincoli

Dettagli

Session tracking Session tracking HTTP: è stateless, cioè non permette di associare una sequenza di richieste ad un dato utente. Ciò vuol dire che, in generale, se un browser richiede una specifica pagina

Dettagli

Il programmatore che c e in noi Lezione 16 Ingrassare e dimagrire a piacimento

Il programmatore che c e in noi Lezione 16 Ingrassare e dimagrire a piacimento Il programmatore che c e in noi Lezione 16 Ingrassare e dimagrire a piacimento Sara che ho bevuto tre bicchieri di Barbera d Asti Cascina Ferro (scusate la soletta pubblicitaria), sara che arrivo da una

Dettagli

Protocolli per il Web. Impianti Informatici. Protocolli applicativi

Protocolli per il Web. Impianti Informatici. Protocolli applicativi Protocolli per il Web Protocolli applicativi I protocolli applicativi 2 Applicazioni Socket interface HTTP (WEB) SMTP (E-MAIL) FTP... NFS RPC DNS... Trasporto TCP UDP Rete ICMP RIP OSPF IP ARP RARP Non

Dettagli

REALIZZAZIONE DI REPORT MEDIANTE MICROSOFT EXCEL 2007

REALIZZAZIONE DI REPORT MEDIANTE MICROSOFT EXCEL 2007 SISTEMA A SUPPORTO DEI PROCESSI DI PROGRAMMAZIONE E CONTROLLO DI GESTIONE NELLE ORGANIZZAZIONI PUBBLICHE REALIZZAZIONE DI REPORT MEDIANTE MICROSOFT EXCEL 2007 Copyright 2010 CSIO Società di Informatica

Dettagli

MySQL Database Management System

MySQL Database Management System MySQL Database Management System http://www.mysql.com/ DATABASE RELAZIONALI Un database è una collezione strutturata di informazioni. I database sono delle strutture nelle quali è possibile memorizzare

Dettagli

VoiceManager. Guida all uso

VoiceManager. Guida all uso VoiceManager Guida all uso Terza edizione ottobre 2014 Voice Manager Sommario Sommario... 3 Voice Manager... 4 1 Introduzione... 4 2 Uso del sistema di riconoscimento vocale... 5 3 Funzionamento del riconoscitore

Dettagli

Motore di riempimento DB (generatore dati per simulazione)

Motore di riempimento DB (generatore dati per simulazione) SISTEMI DISTRIBUITI prof. S.Pizzutilo Motore di riempimento DB (generatore dati per simulazione) Studente: Alessandro Balestrucci 617937 Corso di Laurea: Informatica Magistrale Dipartimento di Informatica

Dettagli

ESEMPIO: RITARDI & BIGLIETTI

ESEMPIO: RITARDI & BIGLIETTI ESEMPIO: RITARDI & BIGLIETTI Fatto Ritardi: l analisi a livello volo giornaliero, considerando l aeroporto di partenza, la città e lo stato di arrivo e la compagnia Fatto Biglietti: l analisi deve considerare

Dettagli

Livello cinque (Livello application)

Livello cinque (Livello application) Cap. VII Livello Application pag. 1 Livello cinque (Livello application) 7. Generalità: In questo livello viene effettivamente svolto il lavoro utile per l'utente, contiene al suo interno diverse tipologie

Dettagli

AJAX. Goy - a.a. 2006/2007 Servizi Web 1. Cos'è il Web 2.0

AJAX. Goy - a.a. 2006/2007 Servizi Web 1. Cos'è il Web 2.0 AJAX Goy - a.a. 2006/2007 Servizi Web 1 Cos'è il Web 2.0 Web 2.0 = termine introdotto per la prima volta nel 2004 come titolo di una conferenza promossa dalla casa editrice O Reilly L'idea è che ci si

Dettagli

2104 volume III Programmazione

2104 volume III Programmazione 2103 SQLite Capitolo 77 77.1 Utilizzo generale................................. 2104 77.1.1 Utilizzo di sqlite3».......................... 2104 77.1.2 Copie di sicurezza............................ 2106

Dettagli

Laboratorio di reti II: Gestione di database lato server

Laboratorio di reti II: Gestione di database lato server Laboratorio di reti II: Gestione di database lato server Stefano Brocchi brocchi@dsi.unifi.it 23 marzo, 2009 Stefano Brocchi Laboratorio di reti II: Database 23 marzo, 2009 1 / 32 Uso di database lato

Dettagli

RAP3 - Manuale Utente. SysNet

RAP3 - Manuale Utente. SysNet RAP3 - Manuale Utente SysNet RAP3 - Manuale Utente SysNet Copyright 2005 SysNet snc Table of Contents 1. Rap3...................................................................................... 1 Descrizione

Dettagli

Web e HTTP. path name. host name Realizzato da Roberto Savino. www.someschool.edu/somedept/pic.gif

Web e HTTP. path name. host name Realizzato da Roberto Savino. www.someschool.edu/somedept/pic.gif Web e HTTP Terminologia Una pagina web consiste di oggetti Un oggetto può essere un file HTML, una immagine JPG, ecc. Una pagina web consiste di un file HTML base che fa riferimento a diversi oggetti al

Dettagli

Appunti di MySql. Evoluzione di un tutorial di base di mysql, scritto da Etel Sverdlov.

Appunti di MySql. Evoluzione di un tutorial di base di mysql, scritto da Etel Sverdlov. Appunti di MySql Evoluzione di un tutorial di base di mysql, scritto da Etel Sverdlov. Indice generale avviare la shell mysql...2 comandi SQL per la gestione del database (DDL)...2 visualizzare l'elenco

Dettagli

Creazione ed uso di un data base in ACCESS Lezioni ed esercizi

Creazione ed uso di un data base in ACCESS Lezioni ed esercizi Creazione ed uso di un data base in ACCESS Lezioni ed esercizi 1 ACCESS Gli archivi Gli archivi sono un insieme organizzato di informazioni. Aziende Clienti e fornitori Personale Magazzino Enti pubblici

Dettagli

maildocpro Manuale Installazione

maildocpro Manuale Installazione maildocpro Manuale Installazione versione 3.4 maildocpro Manuale Installazione - Versione 3.4 1 Indice Indice... 2 Creazione database... 3 Database: MAILDOCPRO... 3 Database: SILOGONWEB... 5 Configurazione

Dettagli

Abilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report. Facoltà di Lingue e Letterature Straniere

Abilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report. Facoltà di Lingue e Letterature Straniere Abilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report Facoltà di Lingue e Letterature Straniere Le QUERY 2 Che cos è una Query? Una Query rappresenta uno strumento per interrogare un database.

Dettagli

Ministero dell Istruzione dell Università e della Ricerca M070 ESAME DI STATO DI ISTITUTO TECNICO INDUSTRIALE

Ministero dell Istruzione dell Università e della Ricerca M070 ESAME DI STATO DI ISTITUTO TECNICO INDUSTRIALE Pag. 1/1 Sessione ordinaria 2010 Seconda prova scritta Ministero dell Istruzione dell Università e della Ricerca M070 ESAME DI STATO DI ISTITUTO TECNICO INDUSTRIALE CORSO DI ORDINAMENTO Indirizzo: INFORMATICA

Dettagli

aggiunge del testo nella parte finale del tag, in questo caso la stringa da controllare.

aggiunge del testo nella parte finale del tag, in questo caso la stringa da controllare. Capitolo 6 jquery Negli ultimi anni è stata rilasciata una mole incalcolabile di framework JavaScript, più o meno completi, realizzati per supportare nel miglior modo possibile lo sviluppatore web aiutandolo

Dettagli

Sistemi Operativi. Funzioni e strategie di progettazione: dai kernel monolitici alle macchine virtuali

Sistemi Operativi. Funzioni e strategie di progettazione: dai kernel monolitici alle macchine virtuali Modulo di Sistemi Operativi per il corso di Master RISS: Ricerca e Innovazione nelle Scienze della Salute Unisa, 17-26 Luglio 2012 Sistemi Operativi Funzioni e strategie di progettazione: dai kernel monolitici

Dettagli

Triggers. Basi dati attive. Trigger. Indipendenza della conoscenza

Triggers. Basi dati attive. Trigger. Indipendenza della conoscenza Basi dati attive Triggers Antonella Poggi Domenico Lembo Dipartimento di informatica e Sistemistica SAPIENZA Università di Roma Progetto di Applicazioni Software Anno accademico 2009-2010 Una base di dati

Dettagli

Sistemi Informativi Aziendali II

Sistemi Informativi Aziendali II Modulo 2 Sistemi Informativi Aziendali II 1 Corso Sistemi Informativi Aziendali II - Modulo 2 Modulo 2 La gestione delle informazioni strutturate nell impresa: La progettazione di un Data Base; Le informazioni

Dettagli

Scheda 15 Accedere ai DataBase con JDBC

Scheda 15 Accedere ai DataBase con JDBC Scheda 15 Accedere ai DataBase con JDBC G IOVANNI PULITI Panoramica: che cosa è JDBC La API JDBC, introdotta per la prima volta con il JDK 1.0, è una API che permette di accedere a database relazionali

Dettagli

LABORATORIO DI TELEMATICA

LABORATORIO DI TELEMATICA LABORATORIO DI TELEMATICA COGNOME: Ronchi NOME: Valerio NUMERO MATRICOLA: 41210 CORSO DI LAUREA: Ingegneria Informatica TEMA: Analisi del protocollo FTP File Transfer Protocol File Transfer Protocol (FTP)

Dettagli

APPUNTI DI PHP : V INFORMATICA SEZIONE G

APPUNTI DI PHP : V INFORMATICA SEZIONE G APPUNTI DI PHP : V INFORMATICA SEZIONE G Prof. Conti R. mysql_connect() Apre una connessione verso un DB MySQL. $db = mysql_connect([$db_host[, $db_username[, $db_password[, $newlink[,$clientflags]]]]]);

Dettagli

Corso di Informatica Generale 1 IN1. Linguaggio SQL

Corso di Informatica Generale 1 IN1. Linguaggio SQL Università Roma Tre Facoltà di Scienze M.F.N. di Laurea in Matematica di Informatica Generale 1 Linguaggio SQL Marco (liverani@mat.uniroma3.it) Sommario Prima parte: le basi dati relazionali Basi di dati:

Dettagli

Utilizzare il NetBeans GUI Builder. Dott. Ing. M. Banci, PhD

Utilizzare il NetBeans GUI Builder. Dott. Ing. M. Banci, PhD Utilizzare il NetBeans GUI Builder Dott. Ing. M. Banci, PhD Lavorare con i Beans Queste slide ci guidano nel processo di creazione di un bean pattern nel progetto NetBeans 15 Giugno 2007 Esercitazione

Dettagli

Introduzione a MySQL

Introduzione a MySQL Introduzione a MySQL Cinzia Cappiello Alessandro Raffio Politecnico di Milano Prima di iniziare qualche dettaglio su MySQL MySQL è un sistema di gestione di basi di dati relazionali (RDBMS) composto da

Dettagli

Corso Sviluppo Apps su iphone e ipad Corso Online Sviluppo Apps su iphone e ipad

Corso Sviluppo Apps su iphone e ipad Corso Online Sviluppo Apps su iphone e ipad Corso Sviluppo Apps su iphone e ipad Corso Online Sviluppo Apps su iphone e ipad Accademia Futuro info@accademiafuturo.it Programma Generale del Corso Sviluppo Apps su iphone e ipad Tematiche Trattate

Dettagli

Il sistema IBM DB2. Sistemi Informativi T. Versione elettronica: L01.1.IntroduzioneDB2.pdf

Il sistema IBM DB2. Sistemi Informativi T. Versione elettronica: L01.1.IntroduzioneDB2.pdf Il sistema IBM DB2 Sistemi Informativi T Versione elettronica: L01.1.IntroduzioneDB2.pdf IBM DB2 Il DBMS relazionale IBM DB2 è il prodotto di punta dell IBM per la gestione di basi di dati relazionali

Dettagli

BIMPublisher Manuale Tecnico

BIMPublisher Manuale Tecnico Manuale Tecnico Sommario 1 Cos è BIMPublisher...3 2 BIM Services Console...4 3 Installazione e prima configurazione...5 3.1 Configurazione...5 3.2 File di amministrazione...7 3.3 Database...7 3.4 Altre

Dettagli

Programmazione Android A cura di Carlo Pelliccia. Lezione 12 Database

Programmazione Android A cura di Carlo Pelliccia. Lezione 12 Database A cura di Carlo Pelliccia DBMS, ossia Management System, è un termine caro agli sviluppatori di applicazioni server-side e di impresa. La maggior parte delle applicazioni Web, ad esempio, si appoggiano

Dettagli

Telematica II 7. Introduzione ai protocolli applicativi

Telematica II 7. Introduzione ai protocolli applicativi Indice Standard ISO/OSI e TCP/IP Telematica II 7. Introduzione ai protocolli applicativi Modello Client / Server I Socket Il World Wide Web Protocollo HTTP Corso di Laurea in Ingegneria Informatica A.A.

Dettagli

Sistemi Informativi e WWW

Sistemi Informativi e WWW Premesse Sistemi Informativi e WWW WWW: introduce un nuovo paradigma di diffusione (per i fornitori) e acquisizione (per gli utilizzatori) delle informazioni, con facilità d uso, flessibilità ed economicità

Dettagli

Indice generale. Introduzione...xv. Parte I Per iniziare Capitolo 1 Introduzione allo sviluppo ios con tecnologie web...3

Indice generale. Introduzione...xv. Parte I Per iniziare Capitolo 1 Introduzione allo sviluppo ios con tecnologie web...3 Introduzione...xv A chi si rivolge questo libro...xv Gli argomenti trattati...xv Com è organizzato il libro...xvi Cosa occorre per utilizzare il libro...xvii Convenzioni adottate...xvii Il codice sorgente...xviii

Dettagli

2. I THREAD. 2.1 Introduzione

2. I THREAD. 2.1 Introduzione 2. I THREAD 2.1 Introduzione Il tipo di parallelismo che è opportuno avere a disposizione nelle applicazioni varia in base al grado di cooperazione necessaria tra le diverse attività svolte in parallelo:

Dettagli

Sviluppare un DB step by step

Sviluppare un DB step by step Sviluppare un DB step by step Creare un nuovo database Per prima cosa creiamo un nuovo DB vuoto Access di default salverà il db dandogli come nome Database 1 se è già presente un file con tale nome Database

Dettagli

Laboratorio Progettazione Web PHP e MySQL - Lezione 9. Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.ita 2011/2012

Laboratorio Progettazione Web PHP e MySQL - Lezione 9. Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.ita 2011/2012 Laboratorio Progettazione Web PHP e MySQL - Lezione 9 Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.ita 2011/2012 Architettura di una applicazione Web Browser Web HTTP Server Web PHP Dati View Control

Dettagli

Laboratorio Progettazione Web PHP e MySQL - Lezione 9. Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.ita 2012/2013

Laboratorio Progettazione Web PHP e MySQL - Lezione 9. Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.ita 2012/2013 Laboratorio Progettazione Web PHP e MySQL - Lezione 9 Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.ita 2012/2013 Architettura di una applicazione Web Browser Web HTTP Server Web API Dati Presentation

Dettagli

Lezione 9. Applicazioni tradizionali

Lezione 9. Applicazioni tradizionali Lezione 9 Applicazioni tradizionali Pag.1 Sommario Concetti trattati in questa lezione: SQL nel codice applicativo Cursori API native ODBC Pag.2 SQL nel codice applicativo I comandi SQL possono essere

Dettagli

Introduzione alle applicazioni di rete

Introduzione alle applicazioni di rete Introduzione alle applicazioni di rete Definizioni base Modelli client-server e peer-to-peer Socket API Scelta del tipo di servizio Indirizzamento dei processi Identificazione di un servizio Concorrenza

Dettagli

Costruzione di Sit Web con PHP e MySQL. Lezione 7 - Esercitazione - Introduzione a MySQL: le tabelle, i tpi di dato, le query

Costruzione di Sit Web con PHP e MySQL. Lezione 7 - Esercitazione - Introduzione a MySQL: le tabelle, i tpi di dato, le query Costruzione di Sit Web con PHP e MySQL Lezione 7 - Esercitazione - Introduzione a MySQL: le tabelle, i tpi di dato, le query Esercitazione In questa lezione si farà insieme una seconda esercitazione che

Dettagli

Lezione n 1! Introduzione"

Lezione n 1! Introduzione Lezione n 1! Introduzione" Corso sui linguaggi del web" Fondamentali del web" Fondamentali di una gestione FTP" Nomenclatura di base del linguaggio del web" Come funziona la rete internet?" Connessione"

Dettagli

Il linguaggio SQL: le basi

Il linguaggio SQL: le basi Il linguaggio SQL: le basi Sistemi Informativi L-A Home Page del corso: http://www-db.deis.unibo.it/courses/sil-a/ Versione elettronica: SQLa-basi.pdf Sistemi Informativi L-A SQL: caratteristiche generali

Dettagli

PL/SQL Uso di un linguaggio procedurale per un database

PL/SQL Uso di un linguaggio procedurale per un database PL/SQL Uso di un linguaggio procedurale per un database Roberto Basili Corso di Basi Di Dati 1 a.a. 2000-2001 Abstract Questa breve dispensa descrive piu etesamente i contenuti della esercitazione del

Dettagli

MEZZI CodM Tipo Targa AnnoI Assicurato

MEZZI CodM Tipo Targa AnnoI Assicurato Esercizio 1 Si consideri il seguente schema relazionale, relativo alla base di dati di un agenzia di assicurazioni: ASSICURATI(CodA, Nome, Cognome, Indirizzo, Telefono) POLIZZE(CodP, Data, Tipo, CodA,

Dettagli

Esercitazione sulle libpq - libreria C per PostgreSQL

Esercitazione sulle libpq - libreria C per PostgreSQL Esercitazione sulle libpq - libreria C per PostgreSQL Roberto Tronci roberto.tronci@diee.unica.it Basi di Dati A.A. 2007/2008 Tronci ( roberto.tronci@diee.unica.it ) Esercitazione libpq Basi di Dati 2007/2008

Dettagli

Procedure memorizzate SQL-2003/PSM. Forma base di PSM. Parametri in PSM

Procedure memorizzate SQL-2003/PSM. Forma base di PSM. Parametri in PSM Procedure memorizzate SQL-2003/PSM Procedure memorizzate nel database Programmazione general-purpose Leggere sezione 8.2 di Garcia-Molina et al. Lucidi derivati da quelli di Jeffrey D. Ullman 1 Una estensione

Dettagli

UNIVERSITA DI FIRENZE Facoltà di Ingegneria. Persistenza Applicazioni Enterprise Uso dei modelli

UNIVERSITA DI FIRENZE Facoltà di Ingegneria. Persistenza Applicazioni Enterprise Uso dei modelli UNIVERSITA DI FIRENZE Facoltà di Ingegneria Persistenza Applicazioni Enterprise Uso dei modelli 1 IL problema della persistenza APPLICAZIONE (programmi) (oggetti) DATI PERSISTENTI (file, record) (basi

Dettagli

Oracle 9i oracle text

Oracle 9i oracle text Argomenti trattati: Oracle 9i oracle text Rappresentare documenti di testo in un DBMS testuale Gestione di testi in Oracle 9i Corso di Laboratorio di Basi di dati II Autori: Myriam Mapelli, Guido Valente

Dettagli

Sistemi operativi I: Windows. Lezione I

Sistemi operativi I: Windows. Lezione I Sistemi operativi I: Windows Lezione I Scopo della lezione Richiamare le principali funzionalità di un sistema operativo Esemplificarle descrivendo la loro implementazione in Windows Introdurre alcuni

Dettagli

Esercitazione 8. Basi di dati e web

Esercitazione 8. Basi di dati e web Esercitazione 8 Basi di dati e web Rev. 1 Basi di dati - prof. Silvio Salza - a.a. 2014-2015 E8-1 Basi di dati e web Una modalità tipica di accesso alle basi di dati è tramite interfacce web Esiste una

Dettagli

Basi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL

Basi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL Basi di dati Il Linguaggio SQL Data Definition Language (DDL) Data Definition Language: insieme di istruzioni utilizzate per modificare la struttura della base di dati Ne fanno parte le istruzioni di inserimento,

Dettagli

Introduzione a PostgreSQL

Introduzione a PostgreSQL Introduzione a PostgreSQL Un po di storia... 1977: all Università di Berkeley nasce progetto INGRES 1986: nasce The POSTGRES Project Leader: Prof. Michael Stonebraker 1989: DBMS Postgres (vers.1) 1990:

Dettagli

Corso breve su automazione d'ufficio

Corso breve su automazione d'ufficio OpenOffice.Org MySQL PHP Corso breve su automazione d'ufficio L'obiettivo di questa dimostrazione è la creazione di una connessione ad una sorgente dati e l'automazione della stessa con un foglio di calcolo

Dettagli

Come leggere ed interpretare la letteratura scientifica e fornire al pubblico informazioni appropriate sui farmaci

Come leggere ed interpretare la letteratura scientifica e fornire al pubblico informazioni appropriate sui farmaci Come leggere ed interpretare la letteratura scientifica e fornire al pubblico informazioni appropriate sui farmaci I motori di ricerca in internet: cosa sono e come funzionano Roberto Ricci, Servizio Sistema

Dettagli

Progettazione: Tecnologie e ambienti di sviluppo

Progettazione: Tecnologie e ambienti di sviluppo Contratto per l acquisizione di servizi di Assistenza specialistica per la gestione e l evoluzione del patrimonio software della Regione Basilicata. Repertorio n. 11016 del 25/09/2009 Progettazione: Tecnologie

Dettagli

BASI DI DATI http://www.diee.unica.it/~giacinto/bd. Cos è il PHP. Cos è il PHP. Esercitazione su PHP & MySQL

BASI DI DATI http://www.diee.unica.it/~giacinto/bd. Cos è il PHP. Cos è il PHP. Esercitazione su PHP & MySQL Università degli Studi di Cagliari Corso di Laurea in Ingegneria Elettronica Contatti BASI DI DATI http://www.diee.unica.it/~giacinto/bd Esercitazione su PHP & MySQL! Roberto Tronci! e-mail: roberto.tronci@diee.unica.it!

Dettagli

19. LA PROGRAMMAZIONE LATO SERVER

19. LA PROGRAMMAZIONE LATO SERVER 19. LA PROGRAMMAZIONE LATO SERVER Introduciamo uno pseudocodice lato server che chiameremo Pserv che utilizzeremo come al solito per introdurre le problematiche da affrontare, indipendentemente dagli specifici

Dettagli

Plus srl :: www.conplus.it :: info@conplus.it :: Via Morgagni, 4/A 37135 Verona :: Tel. +39 045 580 491 :: Fax 045 82 78 722

Plus srl :: www.conplus.it :: info@conplus.it :: Via Morgagni, 4/A 37135 Verona :: Tel. +39 045 580 491 :: Fax 045 82 78 722 PMF Web-Service Quick-Start Guide Guida Introduttiva Cliente Redatto da Francesco Buratto Redatto il 01 gennaio 2011 Riferimento PMF 2011 Introduzione PMFWS è un web-service HTTP che espone un interfaccia

Dettagli

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base Sistema operativo Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base Architettura a strati di un calcolatore

Dettagli

Uso dei data bases con PHP. Prof. Francesco Accaino Iis Altiero Spinelli Sesto Sa Giovanni

Uso dei data bases con PHP. Prof. Francesco Accaino Iis Altiero Spinelli Sesto Sa Giovanni Uso dei data bases con PHP Prof. Francesco Accaino Iis Altiero Spinelli Sesto Sa Giovanni MDAC MDAC è l acronimo di Microsoft Data Access Component e fa parte della tecnologia Microsoft denominata Universal

Dettagli

Comprendere ADO.NET. La guida definitiva per comprendere a fondo ADO

Comprendere ADO.NET. La guida definitiva per comprendere a fondo ADO 060-063 Database 3-03-2005 16:23 Pagina 62 DATABASE La guida definitiva per comprendere a fondo ADO Accesso ai DB con Visual Basic.Net 2003 L ultimo articolo che ci aiuterà ad interagire con i database,

Dettagli

Servizi Web del CRM. Interazione con il CRM mediante flussi XML. Validità: Febbraio 2013

Servizi Web del CRM. Interazione con il CRM mediante flussi XML. Validità: Febbraio 2013 Servizi Web del CRM Interazione con il CRM mediante flussi XML Validità: Febbraio 2013 Questa pubblicazione è puramente informativa. SISECO non offre alcuna garanzia, esplicita od implicita, sul contenuto.

Dettagli