35ª Reunião Lisboa - 26/01/2013   http://netponto.org     Como deixar de fazer "copy and paste" entre         Windows Stor...
Sara SilvaWindows 8 & Windows Phone Developer  MCPD: Windows Developer 3.5  MCTS: WPF 3.5/4.0 e Windows Forms 3.5  Lic....
Agenda• Introdução• Partilha de ficheiros de código• Portable Class Library• Portable Class Library + MVVM• Bibliotecas• C...
Introdução       2 Plataformas                                                     Pílula WP     Pílula Win8              ...
Introdução• Código repetido entre projetos => 2x a mesma tarefa.• Bug em WP => bug em Win8 e vice versa => 2x a mesma corr...
Partilha de ficheiros de código• Usar “Add as Link” para partilhar ficheiro de código  dentro de vários projetos.• Usar de...
Partilha de ficheiros de códigoUsando diretivas:  • NETFX_CORE                           Windows 8                        ...
Partilha de ficheiros de códigoClasses e métodos parciais• Funcionalidade partilhadas num ficheiro.• Funcionalidades adici...
Partilha de ficheiros de códigoExemplo do toolkit MVVM Light:
“Add as Link”
Portable Class LibraryMais valia no desenvolvimento multi-plataforma de aplicações usando.Net Framework, uma vez que permi...
Portable Class LibraryFuncionalidades suportadas nas várias plataformas*:       * .Net Framework superior ou igual a 4.0.3
Portable Class LibraryA documentação no MSDN informa sobre suporte:
Portable Class LibraryO Visual Studio 2010 (Extensão+SP1) e 2012 disponibilizam template para Portable Class Library.Defin...
Portable Class LibraryO Visual Studio 2010 (Extensão+SP1) e 2012 disponibilizam template para Portable Class Library.Resul...
Portable Class Library Project
Portable Class Library• Não contém tipos relacionados com a UI porque o comportamento difere  entre a UI das diferentes pl...
Portable Class Library + MVVM
Portable Class Library + MVVMClasses disponíveis para implementar MVVM:System.Collections.ObjectModel• ObservableCollectio...
Consumindo Serviços Odata
Arquitetura  *only external portable libraries
Bibliotecas•   Microsoft.Bcl.Async        Permite usar async/await sem .Net Framework 4.5•   Portable Toolkit for MVVM    ...
Conclusão•   Separar a UI da lógica da aplicação aplicando o padrão MVVM.•   Partilhar “portable .Net code” através de Por...
Questões?
Referências•   Cross-Platform Development with the .NET Framework•   Using Portable Class Library with Model-View-View Mod...
Patrocinador “GOLD”  Twitter: @PTMicrosoft http://www.microsoft.com/portugal
Patrocinadores “Silver”
Patrocinadores “Bronze”
Próximas reuniões presenciais• 23/02/2013 – Fevereiro (Lisboa)  16/03/2013 – Março (Lisboa) Reserva estes dias na agenda! :)
Obrigada!Sara Silvageral@saramgsilva.comhttp://www.saramgsilva.comhttp://twitter.com/saramgsilvahttp://pt.linkedin.com/in/...
Upcoming SlideShare
Loading in...5
×

Como deixar de fazer "copy and paste" entre Windows Store e Windows Phone Apps

2,223

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
2,223
On Slideshare
0
From Embeds
0
Number of Embeds
8
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • MVVM Light Source Code:Open Win8 and WP8 Solution ;Show CodeHow to do “Add as Link” – use the RelayCommand – file is inside the .Net3,5Show directives - RelayCommandParcial class in diferent files. Show the WeakFunc.Win8
  • Quandocombinamos com .Net 4.0 e WP7 vamosencontrarmaisincompatibilidades.
  • Creating a empty PCL projectShow the dialog for choose the targetsEdit the targetsShow the subset
  • Be Pragmatic: Develop UX specific to the target platformDon’t attempt to share UX resources (styles, controls, pages etc)Reuse and share code between platforms[EN]Separate UI from app logic (Model-View-ViewModel)Share portable .NET code in Portable Class Library“Abstactraion patter is the key”Use common Windows Runtime API (Add as Link)Complete with platform-specific code as necessary
  • Como deixar de fazer "copy and paste" entre Windows Store e Windows Phone Apps

    1. 1. 35ª Reunião Lisboa - 26/01/2013 http://netponto.org Como deixar de fazer "copy and paste" entre Windows Store e Windows Phone Apps Sara Silva
    2. 2. Sara SilvaWindows 8 & Windows Phone Developer  MCPD: Windows Developer 3.5  MCTS: WPF 3.5/4.0 e Windows Forms 3.5  Lic. Matemática: Especialização em Computação - DMUCComunidades:
    3. 3. Agenda• Introdução• Partilha de ficheiros de código• Portable Class Library• Portable Class Library + MVVM• Bibliotecas• Conclusão
    4. 4. Introdução 2 Plataformas Pílula WP Pílula Win8 6 projetos Galinho WP Galinho Win8 3 aplicações 24 WP 24 Win8Nota: Considerando a mesma versão para WP7.5 e WP8
    5. 5. Introdução• Código repetido entre projetos => 2x a mesma tarefa.• Bug em WP => bug em Win8 e vice versa => 2x a mesma correção.• Menos funcionalidades.• Menos tempo para outras tarefas.• Custos a dobrar: “Se o custo para a empresa for Y €/hora => 2*Y€/hora ” “Se o meu custo for horas de sono => Durmo menos horas”• Desmotivação para quem desenvolve.
    6. 6. Partilha de ficheiros de código• Usar “Add as Link” para partilhar ficheiro de código dentro de vários projetos.• Usar de diretivas para diferenciar aspetos incompatíveis.• Usar classes e métodos parciais.• Altera-se uma vez, altera-se em todos os projetos. “Reusing code by including code files in multiple projects.”
    7. 7. Partilha de ficheiros de códigoUsando diretivas: • NETFX_CORE Windows 8 Pode gerar code • WINDOWS_PHONE Windows Phone ilegível #if !NETFX_CORE public object Convert(object value, Type targetType, object parameter, CultureInfo culture) #else public object Convert(object value, Type targetType, object parameter, string culture) #endif
    8. 8. Partilha de ficheiros de códigoClasses e métodos parciais• Funcionalidade partilhadas num ficheiro.• Funcionalidades adicionais que são especificas da plataforma num ficheiro adicional.• Classes parciais que são marcadas como “parcial” são compiladas numa “single class”.• Separar funcionalidades especificas da plataforma• É possível utilizar métodos parciais como mecanismo para separar logica especifica da plataforma. DataSource.cs | DataSource.WP8.cs | DataSource.Win8.cs
    9. 9. Partilha de ficheiros de códigoExemplo do toolkit MVVM Light:
    10. 10. “Add as Link”
    11. 11. Portable Class LibraryMais valia no desenvolvimento multi-plataforma de aplicações usando.Net Framework, uma vez que permite criar “portable assemblies” quepodem ser referenciadas em projectos de várias plataformas sem quesejam preciso efetuar alterações.Vai conter o mínimo denominador comum de tipos de: • .NET Framework • Silverlight • .NET for Windows Store apps, • Windows Phone • Xbox 360
    12. 12. Portable Class LibraryFuncionalidades suportadas nas várias plataformas*: * .Net Framework superior ou igual a 4.0.3
    13. 13. Portable Class LibraryA documentação no MSDN informa sobre suporte:
    14. 14. Portable Class LibraryO Visual Studio 2010 (Extensão+SP1) e 2012 disponibilizam template para Portable Class Library.Definição de “targets”: Criação do projeto Editar propriedades do projeto
    15. 15. Portable Class LibraryO Visual Studio 2010 (Extensão+SP1) e 2012 disponibilizam template para Portable Class Library.Resultado da criação: “ One Source One Project One Binary Multiple Platforms!”
    16. 16. Portable Class Library Project
    17. 17. Portable Class Library• Não contém tipos relacionados com a UI porque o comportamento difere entre a UI das diferentes plataformas;• Para criar Windows Store Apps é requisito ter Windows 8, para criar Portable Class libraries com suporte a Windows Store Apps não é necessário.• Em aplicações Silverlight é preciso definir “minimum runtime version required” <param name="minRuntimeVersion" value="4.0.60129.0" />
    18. 18. Portable Class Library + MVVM
    19. 19. Portable Class Library + MVVMClasses disponíveis para implementar MVVM:System.Collections.ObjectModel• ObservableCollection<T> class• ReadOnlyObservableCollection<T> classSystem.Collections.Specialized• INotifyCollectionChanged class• NotifyCollectionChangedAction class• NotifyCollectionChangedEventArgs class• NotifyCollectionChangedEventHandler classSystem.ComponentModel• DataErrorsChangedEventArgs class• INotifyDataErrorInfo class• INotifyPropertyChanged class• System.Windows.Input.ICommand class• All classes in the System.ComponentModel.DataAnnotations namespace
    20. 20. Consumindo Serviços Odata
    21. 21. Arquitetura *only external portable libraries
    22. 22. Bibliotecas• Microsoft.Bcl.Async Permite usar async/await sem .Net Framework 4.5• Portable Toolkit for MVVM Fork do toolkit MVVM Light: Portable.MvvmLightLibs• MvvmCross Biblioteca para implementar MVVM em Windows Phone, Windows Store, iOS, and Android• Portable Class Libraries Contrib Portable adapters and APIs• Json.NET JSON framework
    23. 23. Conclusão• Separar a UI da lógica da aplicação aplicando o padrão MVVM.• Partilhar “portable .Net code” através de Portable Class Libraries. “Abstractration pattern is the key”• A injeção de dependência permite encapsular especificidades da plataforma.• Funcionalidade comuns da Windows Runtime API podem ser partilhas através da partilha de ficheiros de código (“Add as Link”).• Se necessário, estender classes partilhadas para adicionar funcionalidades especificas da plataforma.• Quando pretendemos partilhar código, o desenho da arquitetura deve ter isso em mente!
    24. 24. Questões?
    25. 25. Referências• Cross-Platform Development with the .NET Framework• Using Portable Class Library with Model-View-View Model• Create Cross-platform Apps using Portable Class Libraries• Building Apps for Windows Phone 8 Jump Start (MVA)• Visual Studio Toolbox:Portable Class Libraries• Create a Continuous Client Using Portable Class Libraries• How to Leverage your Code across WP8 and Windows 8• Portable Library Articles series by Jeremy Likness• How to Make Portable Class Libraries Work for You• Portable Class Library Enlightenment / Adaptation• Portable Class Libraries – Net Framework 4.0• Portable Class Libraries – Net Framework 4.5
    26. 26. Patrocinador “GOLD” Twitter: @PTMicrosoft http://www.microsoft.com/portugal
    27. 27. Patrocinadores “Silver”
    28. 28. Patrocinadores “Bronze”
    29. 29. Próximas reuniões presenciais• 23/02/2013 – Fevereiro (Lisboa) 16/03/2013 – Março (Lisboa) Reserva estes dias na agenda! :)
    30. 30. Obrigada!Sara Silvageral@saramgsilva.comhttp://www.saramgsilva.comhttp://twitter.com/saramgsilvahttp://pt.linkedin.com/in/saramgsilvahttp://www.facebook.com/saramgsilva
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×