Для разработчика .net, какова кривая обучения в разработке мобильных приложений? - PullRequest
13 голосов
/ 18 декабря 2008

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

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

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

Ответы [ 6 ]

20 голосов
/ 18 декабря 2008

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

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

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

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

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

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

CE против WinMo

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

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

Другие соответствующие вопросы SO

Возможно, вы захотите взглянуть на это:

2 голосов
/ 18 декабря 2008

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

1 голос
/ 19 декабря 2008

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

  • Есть истина, ложь и отключение питания, помните об этом при написании кода, который касается системных ресурсов.
  • Производительность - OMG, дела идут медленно, возможно, намного медленнее, чем вы ожидаете в некоторых местах.
  • Недостающие фрагменты - вам придется несколько раз переписывать колесо, так как некоторые вещи не были перенесены из-за нехватки места. Я упоминал, что Decimal.Round () поддерживает только банковское округление?
  • Ключи ... есть ограниченные ключи. Иногда вам может понадобиться, чтобы ключи делали разные вещи, тогда вы помните, что виджеты WinForm перехватывают ключи и выполняют заранее запрограммированные действия. О нет!
  • P / Invoke. Некоторые вещи, которые вы привыкли получать бесплатно, требуют P / Invokes.
  • ГХ отличается . Возможно, стоит почитать об этом, если вы хотите создать большое приложение.
  • Не все устройства одинаковы, как ПК одинаковы.
0 голосов
/ 27 января 2009

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

0 голосов
/ 19 декабря 2008

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

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

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

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

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

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

...