Transcript of Universal App – Sviluppo di App per Windows Store Gianluca Bertelli gianlucb@microsoft.com.
- Slide 1
- Universal App Sviluppo di App per Windows Store Gianluca
Bertelli gianlucb@microsoft.com
- Slide 2
- Agenda Piattaforme Struttura di un App Grafica Componibile
DataBinding Model View ViewModel (MVVM) Alcuni Suggerimenti
Q&A
- Slide 3
- Piattaforme
- Slide 4
- Piattaforme (Chi ben comincia...) Windows Phone 7.8 Windows
Phone 8 Windows Phone 8.1 Windows Store Universal
- Slide 5
- Piattaforme (...) Windows Store App 8.1 Windows Store
Universal
- Slide 6
- Piattaforme (..a met dellopera!) Windows Store Universal
Windows App (Windows 10)
- Slide 7
- Struttura di un App (Universal) Phone Windows Shared
- Slide 8
- Struttura di un App (Universal) UI XAML HTML
- Slide 9
- Grafica componibile Griglia Pannello orrizontale Controllo
custom Pulsante Barra di stato Data Windows Phone Shared
- Slide 10
- PROJECT DEMO
- Slide 11
- DataBinding Connessione Automatica tra UI e business logic
Nasconde ed evita limplementazione di meccanismi di refresh
Textbox1 Textbox2 Textbox3 Persona DataContext
- Slide 12
- INotifyPropertyChanged Prima public string Name { get; set; }
Dopo private string name; public string Name { get { return name; }
set { name = value; NotifyOfPropertyChange(() => Name); }
XAML
- Slide 13
- DATABINDING DEMO
- Slide 14
- Model View ViewModel (MVVM) MVC?
- Slide 15
- Model View ViewModel (MVVM)
- Slide 16
- Sfrutta il meccanismo del Binding Pacchetti NuGet gratuiti di
diversi autori Permette di minimizzare lutilizzo del code behind
Massimizza il riutilizzo e la testabilit della parte di modello E
possibile riutilizzare lo stesso ViewModel su grafiche
differenti
- Slide 17
- Command no more OnButtonClick! Gli eventi nellapproccio
tradizionale vengono gestiti tramite event handler definiti nel
code behind (OnButtonClick...) Abilitare o meno un pulsante
richiede di gestirne lo stato in vari punti dellapplicazione, o
avere un metodo di refresh UI Vorrei gestire il ButtonClick nel
modello e non nella grafica Vorrei che il pulsante si
abiliti/disabiliti in automatico in base allo stato corrente
Command
- Slide 18
- Command no more OnButtonClick! E una propiet dei controlli
Sfrutta il Binding Code private ICommand _pinToStart; public
ICommand PinToStart { get { return _pinToStart ?? (_pinToStart =
new RelayCommand( () => taskService.PinToStart(CurrentItem), ()
=> canPin)); } XAML
- Slide 19
- MVVM DEMO
- Slide 20
- Alcuni suggerimenti Scrivete le classi di Modello in Portable
Class Library (PCL) Separazione netta tra Modello e Data Access
Layer Un minimo di Unit Testing Implementate il workflow/macchina a
stati gi nel modello Scrivetevi Componenti custom Massimizzare
lutilizzo del progetto Shared Stili Immagini file Design Data
Utilizzate un progetto Universal come base di partenza
- Slide 21
- Q & A Gianluca Bertelli gianlucb@microsoft.com
@bertelli