Разработка мобильного приложения C # для запуска на нескольких платформах - PullRequest
4 голосов
/ 28 апреля 2011

У нас есть бизнес-приложение, которое работает на Windows Mobile.Это приложение Winforms с локальной базой данных SQL CE, которое получает данные от веб-службы WCF, работающей на сервере.

Теперь клиенты всегда спрашивают: «Почему бы вам не сделать версию для iPhone / iPad / Android?Телефон 7 и т. Д.Мой босс спросил, как тяжело это будет.Мой первоначальный ответ очень сложный, особенно потому, что я, вероятно, был бы единственным человеком, выполняющим работу.У меня нет опыта за пределами моего счастливого места Visual Studio.

Теперь я сталкивался с MonoTouch и MonoDroid.Похоже, они предлагают простое решение, но я уверен, что есть много проблем.Я сомневаюсь, что смогу просто скомпилировать свое приложение для Android.

Я склонен предположить, что это будет слишком много работы, и что единственным реалистичным решением является мобильный веб-сайт с несколькими версиямикаждая страница для разных разрешений экрана.К сожалению, существующее приложение имеет локальную базу данных и «иногда подключается», что не позволяет его сократить.

Какие-либо предложения и советы, прежде чем я трачу огромное количество времени?

Приветствия
Марк

Ответы [ 3 ]

8 голосов
/ 28 апреля 2011

Я сомневаюсь, что смогу просто скомпилировать свое приложение для 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.

1 голос
/ 28 апреля 2011

посмотрите на титаниум и телефонную щель.

0 голосов
/ 28 апреля 2011

Мое предложение - взглянуть на WP7.Это довольно легко, особенно если у вас есть Visual Studio (что у вас есть) и опыт C # любого рода.Тогда вам будет проще угадать, сколько времени вам понадобится для разработки приложения на C # (и, возможно, перенести его на Android с помощью MonoDroid).

И да, Titanium и PhoneGap - это варианты, но я лично думаю,MonoDroid выглядит лучше.

На какую платформу вы получаете наибольшее количество запросов?Я предполагаю, Android, как это кажется наиболее вероятным.Я видел много людей, которые говорили, что MonoDroid действительно крепкий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...