Я сомневаюсь, что смогу просто скомпилировать свое приложение для Android
Это правильно; ты не будешь.
Итак, справочная информация: философия дизайна MonoTouch и Mono для Android заключается в том, чтобы привнести «основные» возможности .NET и C # в iOS и Android, а также раскрыть основные функции каждой конкретной платформы. Принимая во внимание, что PhoneGap и Titanium абстрагируют базовую платформу (для «однократной записи, запуска в любом месте»), MonoTouch и Mono для Android не предоставляют абстракций платформы и напрямую предоставляют базовую платформу. типы и члены.
В результате программы MonoTouch используют MonoTouch.UIKit.UIButton , который непосредственно оборачивает базовый тип CocoaTouch UIButton .
Точно так же программы Mono для Android будут использовать Android.App.Activity , который непосредственно оборачивает базовый тип Android android.app.Activity .
Общими для обеих платформ являются «базовые» пространства имен и типы фреймворков, которые вы найдете в .NET, .NET CF, Silverlight, Windows Phone 7 и Mono: System
, System.Collections.Generic
, System.Linq
(да, Linq-to-Objects), System.Xml.Linq
(да, Linq-to-XML), System.IO
и т. Д. И т. Д. Например, см. Сборки , включенные в Mono для Android .
.
Итак, вы можете использовать существующее приложение для Windows Mobile как есть на Android? Нет, потому что Mono для Android не обеспечивает System.Windows.Forms
.
Однако , у вас должна быть возможность реорганизовать существующий код в соответствии с шаблоном проектирования Модель / Представление / Контроллер (или MVVM, или ...), абстрагируя пользовательский интерфейс (представление), чтобы что вы можете заменить его для различных платформ, например пользовательский интерфейс iOS с MonoTouch, пользовательский интерфейс WP7 с XAML, пользовательский интерфейс Android с Mono для Android, пользовательский интерфейс HTML с ASP.NET MVC и т. д. и т. д. и т. д. Вы не получите опыт «напиши один раз, беги куда угодно», но вы сможете предоставить пользователю собственные пользовательские интерфейсы, соответствующие выбранной платформе.
Например, см. MIX11 Conference Apps , которые используют общую кодовую базу и предоставляют пользовательские интерфейсы для платформы для iOS, Android и WP7.