Slide realizzate per una sessione di due ore sulla programmazione e la creazione di applicazioni UWP partendo dalle basi. Inoltre, verranno utilizzate le Mobile Services di Azure, disponibili gratuitamente nella sottoscrizione Azure 4 Dreamspark riservata agli studenti.
Arduino + Azure: Dal circuito allo sketch e controllo remoto con una app web ...
Programmazione di applicazioni UWP - Dalle basi del C# alla creazione di un’applicazione pratica
1. PROGRAMMAZIONE DI
APPLICAZIONI UWP
Dalle basi del C# alla creazione di un’applicazione pratica
Cramarossa Giuseppe
Microsoft Student Partner
23 Maggio 2016
Corso sulle UWP @ PoliBA
2. SOMMARIO
• Programmazione ad oggetti con riferimento al C#
• Tipi di dati
• Classi
• Metodi
• Proprietà
• Modificatori di accesso
• Eccezioni
• Personalizzazione dell’ interfaccia tramite codice
• Collegamento dell’app alle Mobile Service di Azure
3. GENERALITÀ SUL C#
• Linguaggio orientato agli oggetti
• Il problema da risolvere viene visto come un insieme di oggetti che si possono estendere,
includere o incapsulare
• Esempio: l’automobile
• Ruote, motore, volante, frizione, cambio, …
• La compilazione non produce direttamente il codice in linguaggio macchina
• Viene inizialmente compilato in un linguaggio intermedio (IL – Intermediate Language)
• Viene poi esguito dal CLR
• Piattaforme su cui sviluppare in C#: tutte
• Progetto Mono
4. DATI E TIPI DI DATI
• Durante l’esecuzione di un programma è necessario salvare o ottenere dati
• Variabili come contenitori di dati
• Esistono vari tipi di dati
• Interi
• Reali
• Stringhe
• Booleani
• Definiti dal programmatore
• …
• I tipi determinano le operazioni che si possono fare con i dati
• I dati sono identificati da un nome, che può essere scelto dal programmatore
5. ALCUNI TIPI DI DATI IN C#
Tipo di dato Notazione in C#
Intero* byte, short, int, long
Reale float, double
Booleano** bool
Stringa string
Tipi di dato composti classi organizzati in namespace, struct
* Anteponendo unsigned al tipo di dato, si possono assegnare solo valori senza segno (ad
esempio unsigned byte)
** Può assumere solo due valori: true o false
Per approfondimenti sui tipi di dati: https://msdn.microsoft.com/it-
it/library/ms228360%28v=vs.90%29.aspx e https://msdn.microsoft.com/it-
it/library/ms173104.aspx
6. CLASSI E OGGETTI
• La classe definisce un nuovo tipo di dato composto
• Campi e Proprietà
• Contengono i dati della classe. Tutti i metodi della classe potranno accedere alle proprietà
• Risponde alla domanda: cosa deve contenere l’oggetto?
• I campi sono generalmente privati
• Metodi
• Risponde alla domanda: cosa deve fare l’oggetto? E di cosa ha bisogno per farlo?
• Possono anche contenere dati, ma potranno essere utilizzati solamente nel metodo
• Possono ritornare valori di tutti i tipi
• Diventa oggetto quando viene usato come tipo di un dato per una variabile, un
campo, una proprietà o un metodo
• L’oggetto è l’istanza di una classe
7. MODIFICATORI DI ACCESSO DELLE
PROPRIETÀ E DEI METODI
• Oltre a un tipo, un dato può avere una visibilità
• Si vedranno solo public e private
Visibilità (C#) Descrizione
private La proprietà o il metodo è visibile solo all’interno della classe che lo
contiene
public La proprietà o il metodo è visibile all’interno e all’esterno della classe
che lo contiene
protected Simile a private, con la differenza che il metodo o la proprietà è visibile
anche alle classi derivate
internal Visibile solo all’interno del namespace
Per approfondire l’argomento: https://msdn.microsoft.com/it-it/library/6tcf2h8w.aspx
8. ESEMPIO PRATICO DI UN OGGETTO DI USO
COMUNE: LA PENNA
• Alcune proprietà
• Lunghezza : numero
• Marca : stringa
• Tappo : può essere visto come un oggetto a sè stante
• Ha le sue proprietà e i suoi metodi
• Alcuni metodi
• Scrive un testo su un supporto
• Disegna una figura
• Scarica l’inchiostro
• Metodo privato
10. ECCEZIONI
• Gestire comportamenti anomali
• Un numero di telefono contiene anche dei caratteri
• Si vuole dividere un numero per zero
• Blocco try/catch
• Nel try vengono inserite le istruzioni da fare normalmente
• Nel catch vengono invece inserite le istruzioni da eseguire in caso si verifica l’eccezione
• Le eccezioni vengono definite in classi con postfisso «Exception»
• Alcune sono già implementate (es. divisione per zero, file non trovato)
• Si possono creare anche eccezioni personalizzate
12. L’ESEMPIO CHE REALIZZEREMO -
DESCRIZIONE
• Un semplice gestore di un portafoglio
• Dati che verranno inseriti
• Causale credito/pagamento
• Importo
• Decidere se è un credito o un pagamento
• Uso di due ListView per memorizzare i pagamenti e i crediti
• Contatore con saldo attuale
• Utilizzo delle mobile services per salvare i dati su Azure
• Per approfondimenti vedere SLIDE 19
14. L’ESEMPIO CHE REALIZZEREMO –
PROGETTAZIONE INTERFACCIA
Input Causale Pagamento
Input Valore
Casella che, se spuntata, indica che il pagamento è un credito
Bottone Aggiungi Pagamento
Totale:
Lista Crediti Lista Debiti
18. LINK PER APPROFONDIRE
• Mobile Services
• https://channel9.msdn.com/Series/Windows-Azure-Mobile-Services
• Serie in inglese
• https://azure.microsoft.com/it-it/documentation/services/mobile-services/
• Documentazione in italiano
• http://www.slideshare.net/GiuseppeCramarossa/cloud-development-with-microsoft-azure-
guida-pratica-alle-mobile-services-e-una-semplice-demo-per-dispositivi-android
• Guida passo passo per implementare le mobile services in un’ applicazione per dispositivi
Android utilizzando Andoid Studio
• Guida passo passo per implementare le mobile services in un progetto creato con Visual Studio
19. LINK PER APPROFONDIRE
• C#
• Link inseriti nelle slide precedenti
• https://msdn.microsoft.com/it-it/library/512aeb7t.aspx
• Approfondimento sui Generics, utilizzati per interfacciarsi con la libreria per le Mobile Services
• https://msdn.microsoft.com/it-it/library/b2s063f7.aspx
• Utile per creare codice ben documentato
• UWP
• https://msdn.microsoft.com/it-it/library/windows/apps/dn958439.aspx
• Informazioni di base sulle UWP
• https://github.com/gcramarossa/SimpleUWPWalletManager
• Demo svolta