© Zühlke 2011 Martin Kutz XingApp - Cross Platform Cross Platform Tests mit Mono am Beispiel der...

14
© Zühlke 2011 Martin Kutz XingApp - Cross Platform Cross Platform Tests mit Mono am Beispiel der XING App 22. November 2011 Folie 1 von 14

Transcript of © Zühlke 2011 Martin Kutz XingApp - Cross Platform Cross Platform Tests mit Mono am Beispiel der...

Page 1: © Zühlke 2011 Martin Kutz XingApp - Cross Platform Cross Platform Tests mit Mono am Beispiel der XING App 22. November 2011 Folie 1 von 14.

© Zühlke 2011

Martin Kutz

XingApp - Cross PlatformCross Platform Tests mit Mono am Beispiel der XING App

22. November 2011Folie 1 von 14

Page 2: © Zühlke 2011 Martin Kutz XingApp - Cross Platform Cross Platform Tests mit Mono am Beispiel der XING App 22. November 2011 Folie 1 von 14.

© Zühlke 2011XingApp - Cross Platform | Martin Kutz

Idee

22. November 2011

• Business Logic für andere Plattformen wiederverwenden

• Bestehende XING App umstrukturieren und Phone-unabhängigen Teil unter Mono zum Laufen bringen

• Apps mit MonoDroid & MonoTouch für Android & iPhone basierend auf .NET Code

Page 3: © Zühlke 2011 Martin Kutz XingApp - Cross Platform Cross Platform Tests mit Mono am Beispiel der XING App 22. November 2011 Folie 1 von 14.

© Zühlke 2011

XingApp - Cross Platform

Martin Kutz

Software Architektur der WP7 XingApp

22. November 2011Folie 3 von 14

Page 4: © Zühlke 2011 Martin Kutz XingApp - Cross Platform Cross Platform Tests mit Mono am Beispiel der XING App 22. November 2011 Folie 1 von 14.

© Zühlke 2011XingApp - Cross Platform | Martin Kutz

Software Architektur

22. November 2011 Folie 4 von 14

Isolated Storage

View

ViewModel

Store

Service

Commands, Calls

Data-Binding

CallBack,StateChangedEvent

Callback,errorCallback

Call

Call

LocalStorage

Access

REST-XML

HTTP-Request

Parse ResponseMessenger

Publish/Subscribe

Page 5: © Zühlke 2011 Martin Kutz XingApp - Cross Platform Cross Platform Tests mit Mono am Beispiel der XING App 22. November 2011 Folie 1 von 14.

© Zühlke 2011XingApp - Cross Platform | Martin Kutz

Software Architektur

22. November 2011 Folie 5 von 14

Isolated Storage

View

ViewModel

Store

Service

LocalStorage

REST-XMLMessenger

Page 6: © Zühlke 2011 Martin Kutz XingApp - Cross Platform Cross Platform Tests mit Mono am Beispiel der XING App 22. November 2011 Folie 1 von 14.

© Zühlke 2011XingApp - Cross Platform | Martin Kutz

Software Architektur

22. November 2011 Folie 6 von 14

ViewsViewModel

XingApp.Ui

StoresServices

XingApp.Core

InterfacesEntities

XingApp.Common

Storage

XingApp.Common.Wp7

XingApp.Agent.Wp7Views

XingApp.Ui.Andoid

Storage

...Common.Andoid

Page 7: © Zühlke 2011 Martin Kutz XingApp - Cross Platform Cross Platform Tests mit Mono am Beispiel der XING App 22. November 2011 Folie 1 von 14.

© Zühlke 2011XingApp - Cross Platform | Martin Kutz

Software Architektur

22. November 2011

ViewsViewModel

XingApp.Ui.Wp7

StoresServices

XingApp.Core

InterfacesEntities

XingApp.Common

Storage

XingApp.Common.Wp7

ViewsViewModel

XingApp.Ui.Win8

Storage

XingApp.Common.Win8

Folie 7 von 14

Page 8: © Zühlke 2011 Martin Kutz XingApp - Cross Platform Cross Platform Tests mit Mono am Beispiel der XING App 22. November 2011 Folie 1 von 14.

© Zühlke 2011

XingApp - Cross Platform

Martin Kutz

Zahlen & Fakten

22. November 2011Folie 8 von 14

Page 9: © Zühlke 2011 Martin Kutz XingApp - Cross Platform Cross Platform Tests mit Mono am Beispiel der XING App 22. November 2011 Folie 1 von 14.

© Zühlke 2011XingApp - Cross Platform | Martin Kutz

Code-Verteilung auf die verschiedenen Projekte

22. November 2011 Folie 9 von 14

0

5000

10000

15000

20000

25000

30000

Zeilen *.csZeilen mit ';'

Page 10: © Zühlke 2011 Martin Kutz XingApp - Cross Platform Cross Platform Tests mit Mono am Beispiel der XING App 22. November 2011 Folie 1 von 14.

© Zühlke 2011XingApp - Cross Platform | Martin Kutz

Zahlen & Fakten

22. November 2011 Folie 10 von 14

ProjektZeilen *.cs

Zeilen mit ';'

XingServer 3825 1511XingApp.Common 11482 2212XingApp.Core 13792 3203XingApp.Integration.Tests 2556 1099XingApp.Common.Wp7 2910 822XingApp.Agent 335 132XingApp.Ui 21264 6293XingApp.Ui.Tests 12152 3248XingApp.Ui.Tests.Runner 1253 351Summe 69569 18871

% von GesamtPlattformspezifisch mit Tests *.cs *.cs mit ';'Ui+Tests+Agent+Common.Wp7 39217 11594 56,37% 61,44%

Plattformunabhängig ohne TestsCore+Common 25274 5415 36,33% 28,69%Core+Common+Server+Runner 30352 7277 43,63% 38,56%

Plattformspezifisch ohne TestsUi+Agent+Common.Wp7 24509 7247 35,23% 38,40%

Fast 50% wiederverwendbar!

Page 11: © Zühlke 2011 Martin Kutz XingApp - Cross Platform Cross Platform Tests mit Mono am Beispiel der XING App 22. November 2011 Folie 1 von 14.

© Zühlke 2011

XingApp - Cross Platform

Martin Kutz

Erledigte Punkte

22. November 2011Folie 11 von 14

Page 12: © Zühlke 2011 Martin Kutz XingApp - Cross Platform Cross Platform Tests mit Mono am Beispiel der XING App 22. November 2011 Folie 1 von 14.

© Zühlke 2011XingApp - Cross Platform | Martin Kutz

Erledigte Punkte

• Cross-Platform kompatible Architektur

• Einbindung in MonoDroid Applikation

• Erzeugung der Stores/Services mit Funq

• Stores/Services/Entities nutzbar

22. November 2011 Folie 12 von 14

Page 13: © Zühlke 2011 Martin Kutz XingApp - Cross Platform Cross Platform Tests mit Mono am Beispiel der XING App 22. November 2011 Folie 1 von 14.

© Zühlke 2011

XingApp - Cross Platform

Martin Kutz

Offene Punkte

22. November 2011Folie 13 von 14

Page 14: © Zühlke 2011 Martin Kutz XingApp - Cross Platform Cross Platform Tests mit Mono am Beispiel der XING App 22. November 2011 Folie 1 von 14.

© Zühlke 2011XingApp - Cross Platform | Martin Kutz

Offene Punkte/Aufgaben

• LocalStorage, ApplicationStorage

• DispatchService

• Einfaches Test-UserInterface entwerfen (z.B. Messages)

• Hammock näher untersuchen und ggf. ersetzen

Versuche mit Hammock ohne ErfolgEinfacher System.Net.WebRequest funktioniert

22. November 2011 Folie 14 von 14