Для разработчика .net, какова кривая обучения для разработки мобильных приложений?

Для разработчика .net, какова кривая обучения для разработки мобильных приложений?

Сколько разных операционных систем существует, запустив .net?

Является ли Windows Mobile такой же, как windows ce?

Ответы

Ответ 1

Кривая обучения

Я ненавижу говорить "это зависит", но это действительно так, и по нескольким причинам. Каков ваш опыт разработки .NET? Имейте в виду, что CF поддерживает С# и VB.NET, поэтому, если вы парень COBOL.NET, он будет круче, чем если вы парень С#. Если вы делаете в основном ASP.NET на рабочем столе, это будет круче, чем если бы вы делали WinForms. Если вы ничего не знаете о случайно подключенных сценариях и ничего о встроенных системах, это будет круче, чем если бы вы делали.

Перемещение с рабочего стола на мобильный довольно просто, но Compact Framework содержит подмножество полного фреймворка, но не является чистым подмножеством. Он также содержит несколько вещей, которые просто не существуют на рабочем столе. Поэтому есть кое-что, чему можно научиться.

Однако, чем больше, тем лучше, что вам часто нужно другое мышление. У вас нет файлов подкачки. У вас ограниченная память и память. У вас есть сон/бодрствование. У вас меньше разрешений и динамическое разрешение и изменения аспект. Разработчики настольных компьютеров редко думают об этом.

Операционные системы

Это более прямолинейно. Только платформы Windows CE (см. Следующий ответ для получения дополнительных пояснений) поддерживают Compact Framework. Там также Micro Framework, но я бы назвал его более "встроенным", чем "мобильным", поэтому, скорее всего, это не то, что вы рассматриваете (исправьте меня, если я ошибаюсь).

CE по сравнению с WinMo

Это основная путаница для множества новичков. В отличие от XP (исключая XPe для этого обсуждения) или Vista, Windows CE является модульной ОС. Это означает, что OEM-производитель устройства может включить или исключить практически любую функцию в ОС. Это означает, что нет ни одного "Windows CE". Подумайте о Windows Mobile и клиенте Windows CE. Они принимают CE и выбирают конкретное подмножество доступных функций. Затем они добавляют к нему свои собственные части (например, оболочку WinMo, несколько API-интерфейсов и т.д.). Это означает, что ванильное устройство CE может (и часто будет) иметь материал, который не поддерживает устройство Windows Mobile. Это также означает, что все устройства Windows Mobile содержат кусочки, которые не могут использовать ванильное устройство CE. Чтобы сделать его еще более увлекательным, WinMo OEM может затем добавить даже свои собственные вещи, поэтому одно устройство WinMo может иметь материал, который другой не делает.

Это даже не связано с различиями между платформами WinMo (Professional, Standard, Smartphone, Phone Edition и т.д.).

Другие релевантные SO-вопросы

Вы можете посмотреть на них:

Ответ 2

Большая проблема заключается в том, как создать пользовательский интерфейс. Кажется, что WinCE по-прежнему использует настольную трехстороннюю работу пользователя (левую, правую и мышь) и управляемую событиями архитектуру, которая позволяет (требует) пользователя инициировать все amodally. Это часто не очень хорошо работает на мобильном телефоне. Забудьте выпадающие меню. Многоуровневые окна не очень полезны. и т.д. и т.д. Таким образом, многие из ваших фундаментальных предположений и шаблонов дизайна должны быть необразованными.

Ответ 3

Невозможно добавить многое к тому, что уже здесь, но я скажу, что вы будете удивлены во многих местах, если вы используете только Full Framework.

  • Существует true, false и power off, помните об этом при написании кода, который касается системных ресурсов.
  • Производительность - OMG, все идет медленно, возможно, намного медленнее, чем вы ожидали в некоторых местах.
  • Отсутствующие кусочки - вам придется переписывать колесо несколько раз, поскольку некоторые вещи не были перенесены из-за пространства. Я упоминал Decimal.Round() только поддерживает округление банкира?
  • Ключи... есть ограниченные ключи. Иногда вам могут понадобиться клавиши, чтобы делать разные вещи, тогда вы будете помнить, что виджеты WinForm перехватывают ключи и выполняют предварительно запрограммированные действия. О, noes!
  • P/Invoke. Некоторые из вещей, которые вы привыкли получать бесплатно, потребуют P/Invokes.
  • GC отличается. Возможно, стоит прочитать его, если вы хотите создать большое приложение.
  • Не все устройства одинаковы, как у ПК одинаковые.

Ответ 4

Я думаю, что кривая может немного зависеть от того, из какого мира .Net вы пришли, а также от какой мобильной разработки вы хотите попасть. Например, если вы являетесь веб-разработчиком и хотите создать сайт с помощью элементов управления Mobile в рамках компактной инфраструктуры .NET, это может быть не так сложно, как сказать веб-разработчик, пытающийся написать отдельное приложение, где есть изменения в том, как вещи должны течь. Также возникает вопрос, что вы хотите назвать мобильной разработкой, так как есть смартфоны iPhone, Blackberry, Treo и несколько других сред, которые могут в какой-то мере иметь различные возможности.

Какой .Net вы имеете в виду: Существуют разные номера версий, а также оригинальные и компактные отличия.

Я думаю, что есть еще один ответ, который хорошо подходит к вашему последнему вопросу.

Ответ 5

Я думаю, что фон в .NET-разработке определенно помогает. Существуют некоторые различия между двумя платформами, самым большим из которых является то, что Compact Framework предоставляет только подмножество .NET Framework. Это может оказаться затруднительным при переходе от среды рабочего стола, когда некоторая функциональность, с которой вы знакомы, не реализована на CF.

Несколько других вещей, которые следует учитывать при разработке для устройств Windows Mobile:

  • Обеспечение множества ориентаций, размеров и разрешений экрана.
  • Ограничения скорости процессора
  • Ограничения/управление памятью
  • Дизайн пользовательского интерфейса (у вас нет того же свойства экрана, что и на рабочем столе)
  • Ввод данных (панель стилуса/мягкого ввода)

Ответ 6

В дополнение к комментариям ctacka о путанице, вызванной различными версиями OC, я хотел бы упомянуть о своей первоначальной сложности с большим количеством возможностей CAB для фреймворков, SDK и особенно для двигателей и клиентов SQL Server. Кажется, что параметры меняются все время, и я все еще пытаюсь разобраться во всем этом. Моя самая крутая часть кривой обучения для Mobile Development - это создание среды разработки и среды выполнения и правильной работы процессов.