Visual Studio Summit 2014 - Portable Class Library

16
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

Transcript of Visual Studio Summit 2014 - Portable Class Library

Page 1: Visual Studio Summit 2014 - Portable Class Library

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

Page 2: Visual Studio Summit 2014 - Portable Class Library

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

Page 3: Visual Studio Summit 2014 - Portable Class Library

Visual Studio Summit 2014

A mãe da inovação

Necessidade

Page 4: Visual Studio Summit 2014 - Portable Class Library

Visual Studio Summit 2014

NecessidadeA mãe da inovação

Page 5: Visual Studio Summit 2014 - Portable Class Library

Visual Studio Summit 2014

NecessidadeA mãe da inovação

2 Plataformas

3 Aplicações

6 PROJETO$

Page 6: Visual Studio Summit 2014 - Portable Class Library

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;

Page 7: Visual Studio Summit 2014 - Portable Class Library

Visual Studio Summit 2014

Assemblies portáveis

Portable Class Library

Page 8: Visual Studio Summit 2014 - Portable Class Library

Visual Studio Summit 2014

Portable Class Library

Portable

Class

Library

Agregando valores

Page 9: Visual Studio Summit 2014 - Portable Class Library

Visual Studio Summit 2014

Portable Class LibraryBenefí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

Page 10: Visual Studio Summit 2014 - Portable Class Library

Visual Studio Summit 2014

Portable Class LibrarySuporte de funcionalidades entre plataformas

Page 11: Visual Studio Summit 2014 - Portable Class Library

Visual Studio Summit 2014

Portable Class LibraryDetalhada documentação fornecida pelo MSDN

Page 12: Visual Studio Summit 2014 - Portable Class Library

Visual Studio Summit 2014

Portable Class LibraryTemplates de projetos

Templates de projetos PCL disponíveis a partir do Visual Studio 2010 Service Pack 1 + Extensão

Page 13: Visual Studio Summit 2014 - Portable Class Library

Visual Studio Summit 2014

Portable Class LibraryTemplates de projetos

“One Source

One Project

One Binary

Multiple Platforms!”

Page 14: Visual Studio Summit 2014 - Portable Class Library

Visual Studio Summit 2014

Portable Class Library Project

Demonstração

Page 15: Visual Studio Summit 2014 - Portable Class Library

Visual Studio Summit 2014

Portable Class Library + MVVMModel 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.

Page 16: Visual Studio Summit 2014 - Portable Class Library

Visual Studio Summit 2014

Portable Class Library + MVVMReferencias 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