Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoGianfranco Costanzo Modificato 9 anni fa
1
Universal App – Sviluppo di App per Windows Store Gianluca Bertelli gianlucb@microsoft.com
2
Agenda Piattaforme Struttura di un App Grafica Componibile DataBinding Model View ViewModel (MVVM) Alcuni Suggerimenti Q&A
3
Piattaforme
4
Piattaforme (Chi ben comincia...) Windows Phone 7.8 Windows Phone 8 Windows Phone 8.1 Windows Store Universal
5
Piattaforme (è...) Windows Store App 8.1 Windows Store Universal
6
Piattaforme (..a metà dell’opera!) Windows Store Universal Windows App (Windows 10)
7
Struttura di un App (Universal) Phone Windows Shared
8
Struttura di un App (Universal) UI XAML HTML
9
Grafica componibile Griglia Pannello orrizontale Controllo custom Pulsante Barra di stato Data Windows Phone Shared
10
PROJECT DEMO
11
DataBinding Connessione «Automatica» tra UI e business logic Nasconde ed evita l’implementazione di meccanismi di refresh Textbox1 Textbox2 Textbox3 Persona DataContext
12
INotifyPropertyChanged Prima public string Name { get; set; } Dopo private string name; public string Name { get { return name; } set { name = value; NotifyOfPropertyChange(() => Name); } XAML
13
DATABINDING DEMO
14
Model View ViewModel (MVVM) MVC?
15
Model View ViewModel (MVVM)
16
Sfrutta il meccanismo del Binding Pacchetti NuGet gratuiti di diversi autori Permette di «minimizzare» l’utilizzo del «code behind» Massimizza il riutilizzo e la «testabilità» della parte di modello E’ possibile riutilizzare lo stesso ViewModel su grafiche differenti
17
Command – no more OnButtonClick! Gli eventi nell’approccio tradizionale vengono gestiti tramite event handler definiti nel code behind (OnButtonClick...) Abilitare o meno un pulsante richiede di gestirne lo stato in vari punti dell’applicazione, 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
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
19
MVVM DEMO
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 l’utilizzo del progetto Shared Stili Immagini file Design Data Utilizzate un progetto Universal come base di partenza
21
Q & A Gianluca Bertelli gianlucb@microsoft.com @bertelli
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.