Top Banner
Universal App – Sviluppo di App per Windows Store Gianluca Bertelli [email protected]
21
Welcome message from author
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
  • Slide 21
  • Q & A Gianluca Bertelli [email protected] @bertelli