Разработка для Windows Mobile: выбор компактного .Net компактного или нативного (c ++) кода - PullRequest
2 голосов
/ 08 апреля 2009

Я работаю в опытной и разнообразной команде разработчиков, и мы готовимся приблизиться к нашей первой разработке для мобильных устройств, которая будет для Windows Mobile 6 (смена платформы невозможна).

Мы обладаем навыками и опытом в технологиях Visual C ++ и .Net для разработки настольных систем и серверов Windows.

Мобильная разработка будет включать некоторую обработку изображений и доступ на чтение / запись к устройству Bluetooth. К сожалению, я не могу дать больше подробностей, чем это.

Мы пытаемся выбрать между написанием мобильного клиента с использованием управляемого кода или собственного кода. Мы будем использовать C # или C ++ соответственно.

Мои вопросы:

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

  • Существуют ли какие-либо существенные преимущества для любого языка в плане работы со службами Windows Mobile для доступа к устройствам Bluetooth?

  • Есть ли влияние на срок службы батареи между управляемым или собственным кодом?

  • Есть ли другие важные, которые следует знать нам?

Я ценю ваши отзывы.

Ответы [ 3 ]

4 голосов
/ 08 апреля 2009

Еще одним вопросом является проблема использования памяти и размера модуля. Мы столкнулись со значительными проблемами в разработке мобильных приложений, просто пытаясь заставить ОС загрузить все наши библиотеки DLL в память. В отличие от обычной разработки Windows, существует очень строгий предел 32 Мб, в который должны быть загружены все модули. Нам пришлось выполнить много очень грязных трюков, чтобы все наши вещи были успешно загружены. Мы обнаружили, что даже если пользователь включит сотовый телефон или использует устройство Bluetooth, драйверы для этих устройств вызовут сбой нашего приложения, поскольку они будут занимать место для наших модулей.

Учитывая все это, мы не смогли добавить поддержку .Net в наше приложение из-за дополнительного веса модуля, который он привнес бы в наше приложение. Возможно, вам придется принять это во внимание, если в вашем заявлении много зависимостей.

1 голос
/ 08 апреля 2009

В дополнение к великому и длинному ответу на другой вопрос, упомянутый kgiannakakis, я должен добавить несколько мыслей и замечаний.

На моем рабочем месте мы пишем приложения для Windows CE 5.0 с использованием C ++ и ATL / WTL. В итоге с ним приятно работать и он очень легкий по сравнению с MFC и .Net.

Другой момент, который следует учитывать (как объяснил старший разработчик здесь), заключается в том, что .Net compact framework должна перекомпилировать байт-код в машинный код при каждом переключении приложения. Это может занять много времени и мощности процессора, поэтому будьте осторожны.

1 голос
/ 08 апреля 2009

Очень похожий вопрос был задан и дан ответ всего несколько дней назад. Вы можете найти полезную информацию там.

Краткие ответы на ваши вопросы:

  • Нативный код работает быстрее, но для многих приложений разница в скорости не будет заметна. Не используйте собственный код только для скорости, если это не является ключевым фактором для вашего приложения. Управляемые приложения также могут работать быстро - их запуск может занять больше времени.
  • Существует хорошая библиотека Bluetooth для приложений .NET. Мне неизвестна подобная библиотека для приложений C ++.
  • Это зависит от вашего дизайна, чтобы достичь хорошего времени автономной работы. Выбор платформы не имеет значения.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...