This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Slide 1
Universal App Sviluppo di App per Windows Store Gianluca
Bertelli [email protected]
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