Visual Studio Summit 2014
Thiago Lunardi, Analista de Desenvolvimento
Desenvolvendo para Windows Phone 8 e
Windows 8 com Portable Class Libraries
ucast!
MTAC, MCSD, MCTS, MCP, Scrum Developer
Visual Studio Summit 2014
Desenvolvedor Junior Cross-Platform
Desenvolvedor Pleno Windows Phone e Store
Desenvolvedor Senior ASP.NET
Desenvolvedor Master ASP 3.0
Thiago Lunardi
Visual Studio Summit 2014
A mãe da inovação
Necessidade
Visual Studio Summit 2014
Necessidade
A mãe da inovação
Visual Studio Summit 2014
Necessidade
A mãe da inovação
2 Plataformas
3 Aplicações
6 PROJETO$
Visual Studio Summit 2014
Necessidade
• Repetição de códigos entre projetos = Repetição da mesma tarefa
• Se bug na APP Windows Phone → Bug na APP Windows Store =
Repetição da mesma correção;
A mãe da inovação
• Atraso no desenvolvimento de outras features;
• Aumento proporcional do custo de desenvolvimento:
– “Se HH for R$ X / hora → 2 x R$ X / hora”
– “Se horas de sono for Y horas → Irá dormir menos horas”
• Desenvolvedor fica desmotivado pela repetição, e não produção;
Visual Studio Summit 2014
Assemblies portáveis
Portable Class Library
Visual Studio Summit 2014
Portable Class Library
Portable
Class
Library
Agregando valores
Visual Studio Summit 2014
Portable Class Library
Benefícios, recursos e facilidades
• Agrega valor ao desenvolvimento multi-plataforma;
• Cria “portable assemblies” referenciáveis;
• Gera o mínimo de tipagem para:
– .NET Framework
– Silverlight
– .NET for Windows Store apps;
– Windows Phone
– Xbox
Visual Studio Summit 2014
Portable Class Library
Suporte de funcionalidades entre plataformas
Visual Studio Summit 2014
Portable Class Library
Detalhada documentação fornecida pelo MSDN
Visual Studio Summit 2014
Portable Class Library
Templates de projetos
Templates de projetos PCL disponíveis a partir do
Visual Studio 2010 Service Pack 1 + Extensão
Visual Studio Summit 2014
Portable Class Library
Templates de projetos
“One Source
One Project
One Binary
Multiple Platforms!”
Visual Studio Summit 2014
Portable Class Library Project
Demonstração
Visual Studio Summit 2014
Portable Class Library + MVVM
Model View ViewModel
Views (Platform-specific)
How to display information
Written in XAML
View Models (Portable)
What information to display
Flow of interaction
Models (Portable)
Data objects
Business logic
Etc.
Visual Studio Summit 2014
Portable Class Library + MVVM
Referencias para implementar PCL + MVVM
• System.Collections.ObjectModel
– ObservableCollection<T> class
– ReadOnlyObservableCollection<T> class
• System.Collections.Specialized
– INotifyCollectionChanged class
– NotifyCollectionChangedAction class
– NotifyCollectionChangedEventArgs class
– NotifyCollectionChangedEventHandler class
• System.ComponentModel
– DataErrorsChangedEventArgs class
– INotifyDataErrorInfo class
– INotifyPropertyChanged class
– System.Windows.Input.ICommand class
– All classes in the
System.ComponentModel.DataAnnotations
namespace

Visual Studio Summit 2014 - Portable Class Library

  • 1.
    Visual Studio Summit2014 Thiago Lunardi, Analista de Desenvolvimento Desenvolvendo para Windows Phone 8 e Windows 8 com Portable Class Libraries ucast! MTAC, MCSD, MCTS, MCP, Scrum Developer
  • 2.
    Visual Studio Summit2014 Desenvolvedor Junior Cross-Platform Desenvolvedor Pleno Windows Phone e Store Desenvolvedor Senior ASP.NET Desenvolvedor Master ASP 3.0 Thiago Lunardi
  • 3.
    Visual Studio Summit2014 A mãe da inovação Necessidade
  • 4.
    Visual Studio Summit2014 Necessidade A mãe da inovação
  • 5.
    Visual Studio Summit2014 Necessidade A mãe da inovação 2 Plataformas 3 Aplicações 6 PROJETO$
  • 6.
    Visual Studio Summit2014 Necessidade • Repetição de códigos entre projetos = Repetição da mesma tarefa • Se bug na APP Windows Phone → Bug na APP Windows Store = Repetição da mesma correção; A mãe da inovação • Atraso no desenvolvimento de outras features; • Aumento proporcional do custo de desenvolvimento: – “Se HH for R$ X / hora → 2 x R$ X / hora” – “Se horas de sono for Y horas → Irá dormir menos horas” • Desenvolvedor fica desmotivado pela repetição, e não produção;
  • 7.
    Visual Studio Summit2014 Assemblies portáveis Portable Class Library
  • 8.
    Visual Studio Summit2014 Portable Class Library Portable Class Library Agregando valores
  • 9.
    Visual Studio Summit2014 Portable Class Library Benefícios, recursos e facilidades • Agrega valor ao desenvolvimento multi-plataforma; • Cria “portable assemblies” referenciáveis; • Gera o mínimo de tipagem para: – .NET Framework – Silverlight – .NET for Windows Store apps; – Windows Phone – Xbox
  • 10.
    Visual Studio Summit2014 Portable Class Library Suporte de funcionalidades entre plataformas
  • 11.
    Visual Studio Summit2014 Portable Class Library Detalhada documentação fornecida pelo MSDN
  • 12.
    Visual Studio Summit2014 Portable Class Library Templates de projetos Templates de projetos PCL disponíveis a partir do Visual Studio 2010 Service Pack 1 + Extensão
  • 13.
    Visual Studio Summit2014 Portable Class Library Templates de projetos “One Source One Project One Binary Multiple Platforms!”
  • 14.
    Visual Studio Summit2014 Portable Class Library Project Demonstração
  • 15.
    Visual Studio Summit2014 Portable Class Library + MVVM Model View ViewModel Views (Platform-specific) How to display information Written in XAML View Models (Portable) What information to display Flow of interaction Models (Portable) Data objects Business logic Etc.
  • 16.
    Visual Studio Summit2014 Portable Class Library + MVVM Referencias para implementar PCL + MVVM • System.Collections.ObjectModel – ObservableCollection<T> class – ReadOnlyObservableCollection<T> class • System.Collections.Specialized – INotifyCollectionChanged class – NotifyCollectionChangedAction class – NotifyCollectionChangedEventArgs class – NotifyCollectionChangedEventHandler class • System.ComponentModel – DataErrorsChangedEventArgs class – INotifyDataErrorInfo class – INotifyPropertyChanged class – System.Windows.Input.ICommand class – All classes in the System.ComponentModel.DataAnnotations namespace

Notas do Editor

  • #15 Creating a empty PCL project Show the dialog for choose the targets Edit the targets Show the subset