Upload
giuseppe-cramarossa
View
116
Download
0
Embed Size (px)
Citation preview
Programmazione di applicazioni UWPDalle basi del C# alla creazione di un’applicazione UWP
Cramarossa GiuseppeMicrosoft Student Partner
Bitontour @ ITC «Vitale Giordano» Bitonto6-7-9-10 Marzo 2017
sommario• Programmazione ad oggetti con riferimento al C#• Tipi di dati• Classi• Metodi• Proprietà• Modificatori di accesso di proprietà e metodi• Eccezioni
• Creazione dell’applicazione demo
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, 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
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#) 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
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
ESERCIZI• Definire le proprietà e i metodi dei seguenti oggetti• Triangolo• Bicicletta• Serpente• Termosifone• Sole
• Quali eccezioni potrebbero esserci nei seguenti scenari?• Login con username e password• Registrazione utenti• Acquisto di un prodotto
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
L’esempio che realizzeremo – progettazione classi
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
L’esempio che realizzeremo – l’interfaccia realizzata
Tipica esecuzione - programma
Progetto da svolgere• Ordinazioni di un bar• Lista dei prodotti ordinabili con relativo prezzo• Prodotti ordinati• Prezzo totale dell’ordinazione• Potete usare anche i componenti già visti
• Da fare individualmente o in gruppo• Gruppo da massimo 4 persone
Link per approfondire• Link inseriti nelle slide• UWP• https://msdn.microsoft.com/it-it/library/windows/apps/dn958439.aspx• https://github.com/gcramarossa/SimpleUWPWalletManager
• Demo svolta
Grazie per l’attenzione