programmazione di applicazioni uwp - dalle basi del c# alla creazione di un’applicazione pratica
TRANSCRIPT
PROGRAMMAZIONE DI APPLICAZIONI UWP
Dalle basi del C# alla creazione di un’applicazione praticaCramarossa Giuseppe
Microsoft Student Partner23 Maggio 2016
Corso sulle UWP @ PoliBA
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
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
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
ALCUNI TIPI DI DATI IN C#
Tipo di dato Notazione in C#Intero* byte, short, int, longReale float, doubleBooleano** boolStringa stringTipi 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 falsePer 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
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
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#) Descrizioneprivate La proprietà o il metodo è visibile solo all’interno della classe che
lo contienepublic La proprietà o il metodo è visibile all’interno e all’esterno della
classe che lo contieneprotected Simile a private, con la differenza che il metodo o la proprietà è
visibile anche alle classi derivateinternal Visibile solo all’interno del namespacePer approfondire l’argomento: https://msdn.microsoft.com/it-it/library/6tcf2h8w.aspx
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
ESEMPIO PRATICO DELLA PENNA IN C#
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
ESEMPIO DI GESTIONE DELLE ECCEZIONI
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
L’ESEMPIO CHE REALIZZEREMO – PROGETTAZIONE CLASSI
L’ESEMPIO CHE REALIZZEREMO – PROGETTAZIONE INTERFACCIA
Input Causale PagamentoInput Valore
Casella che, se spuntata, indica che il pagamento è un creditoBottone Aggiungi Pagamento
Totale:
Lista Crediti Lista Debiti
L’ESEMPIO CHE REALIZZEREMO – L’INTERFACCIA REALIZZATA
TIPICA ESECUZIONE - PROGRAMMA
TIPICA ESECUZIONE – RECORD MEMORIZZATI SUL DATABASE
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
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
GRAZIE PER L’ATTENZIONE