Что нужно знать разработчику .net, чтобы начать разработку мобильных приложений?
Сколько существует различных операционных систем, работающих под управлением .NET?
Windows Mobile - это то же самое, что Windows CE?





Кривая обучения
Ненавижу говорить «это зависит от обстоятельств», но это действительно так, и от нескольких факторов. Каков ваш опыт "разработки .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 является модульной ОС. Это означает, что 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
Вы можете посмотреть на них:
Отличные ссылки! Спасибо! Также я рад, что не только у меня проблемы с версиями ОС!
Я думаю, что это стало доступно после того, как вы опубликовали этот ответ, но у Red5 Labs есть компонент, позволяющий устройствам Series 60 запускать приложения .Net CF на Series 60 / Symbian. Конечно, если эти приложения используют P / Invoke, State and Notifications Broker или другие функции, специфичные для Windows Mobile, они не будут работать. Учитывая, что компонент должен быть лицензированным, я бы не стал смотреть на это как на что-то, что может использовать случайный разработчик.
Я только что нашел это: «Мы с сожалением сообщаем, что Red Five Labs прекратила свою деятельность с 18 января 2010 года». redfivelabs.com, значит, должна была быть проблема с профессиональными разработчиками, использующими этот компонент.
Я думаю, что кривая может немного зависеть от того, из какого мира .Net вы пришли, а также от того, в какую мобильную разработку вы хотите попасть. Например, если вы веб-разработчик и хотите создать сайт, используя элементы управления Mobile в компактной платформе .Net, это может быть не так сложно, как, скажем, веб-разработчик, пытающийся написать автономное приложение, в котором есть изменение в том, как все должно течь. Также возникает вопрос, что вы хотите называть мобильной разработкой, поскольку есть смартфоны iPhone, Blackberry, Treo и несколько других сред, которые могут в некоторой степени нести различные возможности.
Какой .Net вы имеете в виду: существуют разные номера версий, а также оригинальные и компактные различия.
Я думаю, что был еще один ответ, хорошо отвечающий на ваш последний вопрос.
Большой вопрос - как спроектировать пользовательский интерфейс. WinCE, похоже, по-прежнему предполагает работу пользователя на рабочем столе с тремя руками (слева, справа и с помощью мыши) и управляемую событиями архитектуру, которая позволяет (требует), чтобы пользователь запускал все одновременно. Это часто не очень хорошо работает с мобильным телефоном. Забудьте о раскрывающихся меню. Многопанельные окна не очень полезны. и т. д. и т. д. Необходимо отучить многие из ваших фундаментальных предположений и шаблонов проектирования.
Я думаю, что опыт разработки .NET определенно помогает. Между двумя платформами есть некоторые различия, самое большое из которых состоит в том, что Compact Framework предоставляет только подмножество .NET Framework. Это может оказаться трудным при переходе из среды рабочего стола, когда некоторые функции, с которыми вы знакомы, не реализованы на CF.
Еще несколько вещей, о которых следует помнить при разработке для устройств Windows Mobile:
Не могу ничего добавить к тому, что уже здесь, но я скажу, что вы будете удивлены во многих местах, если вы использовали только Full Framework.
В дополнение к комментариям ctacka о путанице, вызванной различными версиями OC, я бы упомянул свои первоначальные трудности с огромным количеством вариантов CAB для фреймворков, SDK и особенно механизмов и клиентов SQL Server. Кажется, что варианты все время меняются, и я все еще пытаюсь во всем разобраться. Самым крутым этапом в обучении мобильной разработке было получение правильной работы среды разработки и выполнения, а также установки процессов.