Ich bin grad dabei ein Messenger für seine Seite zu entwickeln. Jetzt würde ich es auch gerne für Linux und Mac anbieten. Am besten auch Mobil machen. (IOS, Android, WP7) Ohne das komplette Programm neu zu schreiben. Und das ich das alles mit C# schreiben kann.
Der Messenger macht ja nicht viel. Mit WebResponse und WebRequest Nachrichten abrufen und senden und vil. auch Daten lokal abspeichern.
Bzw. wenn das alles zu viel Aufwand wäre, dann würde ich es gerne NUR für Mobile Geräte entwickeln. (Am besten Android und IOS)
Ich empfehle dir dann, dein Programm mit MonoDevelop zu entwickeln. MonoDevelop unterstützt Linux, Windows und Mac OSX.
Für die mobilen Endgeräte wird das ganze schon etwas spannender, Um Mit C# für Android und das IPhone zu entwickeln solltest du dir MonoTouch anschauen. Windows Phone 7 entwickelst du in heimatlicher Umgebung ;)
Wichtig: Du solltest ein Pattern verwenden, was klar View und Logik voneinander trennt (MVC, MVVM) nur so ist es dir möglich BusinessKlassen in mehreren Projekten wieder zu verwenden. Schaue dir dazu auch ein paar Artikel zu MultiTargeting an.
Lass es uns wissen, wie du dich letztendlich entschieden, bzw wie du dein Multiplattform Messenger umgesetzt hast.
Ich hoffe es ist nicht zu viel Aufwand mit MonoTouch zu entwichkeln. Damit meine ich das ich den Code fast 1:1 übernehmen kann. :) Hoff. ist es möglich mit Mono den CookieContainer usw. zu verwenden und vil. den Timer auch noch. : )
Wenn du es geschickt anstellst, dann brauchst du die Businessklassen nur einmal entwickeln, oder wie die anderen hier schon richtig sagen, über einen WebService die Business bereitstellen. Controls, Pages und Navigationsstrukturen müssten je nach Device bzw Plattform redundant entwickelt werden. Auf jedenfall ist es wichtig, sich im einzelnen mit den Plattformen auseinander zusetzen.
Meine subjektive Meinung, muss nicht richtig sein: Das Problem bei diesen MultiPlatform Titeln ist dass sich diese immer irgendwie "fremd" anfühlen und Du bei der Zielgruppe auf Akzeptanzprobleme stossen könntest. Ich würde in diesem Fall das über ein Webservice nachdenken der auf dem Server läuft und der von den nativen lokalen Anwendungen konsumiert wird. Habe zwar den auf Client Seite Mehraufwand, dafür unterstützen diese das Look and Feel der Zielplatform. Wie ich schon sagte, meine persönliche Meinung und geht eigentlich an Deiner Anforderung (c# und gleiche Codebase) vorbei.
Wenn nur iOS und Android, dann ist auch Corona ein Blick Wert. Damit werden hauptsächlich 2D Games gemacht, ist aber auch für "ersthafte" Apps geeignet.
Ich meine damit Corona = Wenn das geht, dann würde ich auch gerne mal ein Game entwickeln, wenn ich mich mit dem einarbeite. Lässt sich mit sowas "leicht" ein 2D Game wie DoodleJump z. B. entwickeln?
Webseiten auslesen geht über Network API: http://developer.anscamobile.com/content/network-0 Ob es leicht ist oder nicht, hängt von persönlichen Präferenzen ab. Zitat von der WebSite: Doodle Dash "Game of the Day on OpenFeint, topped the charts in App Store sales, and created in 8 days with Corona." Probiere es einfach aus, zum Testen ist es kostenlos
1. Ja (Network API anschauen) 2. Hängt von den persönlichen Präferenzen ab. Ich würde behaupten: Ja. Aussage von der Homepage: Doodle Dash! "Game of the Day on OpenFeint, topped the charts in App Store sales, and created in 8 days with Corona."
Ich würde auch die Datenhaltung/-verarbeitung ins Web verlagern. Wir lösen das bei einem unserer Produkte so: 1) API im Web auf PHP+MySQL Basis 2) XulRunner für Win/Mac/linux 3) Spezielle Programmierung für Android/iOS/...
Gründe für dieses Setup waren: 1) Look'N'Feel auf PC Plattformen ist gut einheitlich zu gestalten und der Wartungsaufwand ist gering (Win/Mac/Linux == selbe Codebase) 2) Android/iOS/... Nutzer können kein Programm bedienen, dass nicht auf Ihr Gerät abgestimmt ist (keine Akzeptanz == kein Verkauf/keine Nutzung)
EDIT: "Und das ich das alles mit C# schreiben kann" grad erst gelesen ;) Vergiss mein Posting, das ist mit C# nicht zu machen.
Hoff. ist es möglich mit Mono den CookieContainer usw. zu verwenden und vil. den Timer auch noch. : )