Jeder hat Erfahrung mit der Architektur für die plattformübergreifende WP7-Android-iOS-Mobilentwicklung (Monotouch, Monodroid, C#)

Jeder hat Erfahrung mit der Architektur für die plattformübergreifende WP7-Android-iOS-Mobilentwicklung (Monotouch, Monodroid, C#)

Vielleicht möchten Sie sich das MonoCross-Projekt ansehen, das Ihnen helfen soll, C#-Code mit mehreren Präsentationsebenen wiederzuverwenden:

http://code.google.com/p/monocross/

Die Autoren von MonoCross (ITR Mobility) haben mehrere mobile plattformübergreifende Lösungen für eine Vielzahl von Kunden entwickelt und zwei Bücher zum Thema geschrieben, eines davon ist „iPad in the Enterprise“ (http://amzn.to/zAhQK6) und das kommende „Plattformübergreifende mobile Entwicklung mit C#“ (http://amzn.to/wM6RsF).

In der Zwischenzeit können Sie sich Scott Olsons Präsentation auf der Monospace 2011 ansehen, in der beschrieben wird, wie MonoCross verwendet wird, um mehrere mobile und Desktop-Plattformen gleichzeitig unter Wiederverwendung der Geschäftslogik anzusprechen:

http://www.infoq.com/presentations/The-Rise-of-Mono-in-the-Enterprise

Sie erzwingen eine strikte MVC-Aufteilung in ihrem Code:


(Quelle:tirania.org)

Der größte Vorteil beim Entwerfen einer Anwendung mit diesem Modell besteht darin, dass Sie dieselbe Anwendung mit nativen Benutzeroberflächen auf jeder Plattform ausführen können. Sie erhalten eine native iOS-, Android- und Windows-Benutzeroberfläche und sie haben sogar ein ASP.NET-Front-End, mit dem Sie Webversionen derselben Geschäftslogik veröffentlichen können.

Diese Technologie wurde erfolgreich von der Medtronic-Beispiel-App eingesetzt, die Apple in seinem iPad-Geschäft präsentiert:

http://www.apple.com/ipad/business/profiles/medtronic/

Ich schlage vor, dass Sie sich auch Scotts Blog ansehen, wo er regelmäßig über seine Erfahrungen mit plattformübergreifender Architektur schreibt.


Basierend auf Ihren Kommentaren sind Ihre Anforderungen an eine Cross-Mobile-Plattform, die sich in ihre bestehenden Dienste integrieren lässt, aber auch offline funktioniert. Sie interessieren sich speziell für C# über Mono, haben jedoch angegeben, dass Sie andere Ansätze nicht außer Acht lassen.

Ich bin der Meinung, dass HTML / PhoneGap / JavaScript ein Weg ist, den Sie im Detail untersuchen sollten. Die WP7-Version dieses Frameworks wurde gerade veröffentlicht, und ich habe Erfahrung damit, eine Anwendung mit diesem Ansatz auf den Markt zu bringen.

PhoneGap umschließt Ihren HTML-/JavaScript-Code, im Fall von WP7 wird dieser in den lokalen Speicher geladen. Dadurch kann die Anwendung vollständig offline arbeiten. Dies gilt für alle Versionen (iOS, Android usw.)

Das wahrscheinlich größte Problem mit PhoneGap / HTML5 ist das gleiche Problem, das wir haben, wenn wir komplexe webbasierte Anwendungen für den Browser entwickeln. Die Tools für JavaScript sind nicht großartig und Browserunterschiede sind ein ständiges Problem. Es ist jedoch eine bewährte Lösung.

Schließlich ist es möglich, eine Anwendungs-UI zu erstellen, die für jede Plattform völlig unterschiedlich ist. Durch die Verwendung des MVVM-Musters ist es mir gelungen, meine gesamte JavaScript-Geschäftslogik zwischen WP7- und iOS-Anwendungen zu teilen, während ich eine völlig andere Benutzeroberfläche habe:

Vergleichen Sie dies mit den WP7-Bildschirmen:

HINWEIS:Ich plane, die iOS-Version von Property Finder in Kürze im AppStore zu haben, ich muss nur herausfinden, wie man PhoneGap Build verwendet!


Fügen Sie dem Mix einfach eine weitere Alternative hinzu - mvvmcross

Dieses Projekt wurde aus Erfahrungen mit Monocross, mvvmlight und opennetcf entwickelt.

Es ist ein ziemlich rechthaberisches mvvm-Framework (mit meiner Meinung darin!), es enthält Datenbindungsunterstützung für Droid und Touch, und es fördert wirklich die Wiederverwendung von Code zwischen den Plattformen.

Die Quelle ist unter https://github.com/slodge/MvvmCross verfügbar, sie wurde bereits in mindestens ein paar großen Projekten verwendet und befindet sich noch in der aktiven Entwicklung.

Es gibt eine Einführungspräsentation dazu auf Slideshare:http://www.slideshare.net/cirrious/dev-evening-monotouch-monodroid-mvvm-mvvmcross-and-databinding

Eines der umfassendsten Beispiele ist eine Konferenz-App: