Для разработчика .NET, что кривая обучения состоит в том, чтобы войти в мобильную разработку?

1110] На этот вопрос будет сложно ответить. Наивно вы могли бы подумать, что общий объем потребляемой памяти будет

vector_capacity * sizeof(std::string) + sum_of_capacity_of_each_string_in_the_vector

Но это скорее верхний предел, а не то, что можно было бы фактически использовать. Например, оптимизация короткой строки позволяет std::string хранить строковые данные в хранилище, которое использует сам строковый объект (то, что вы называете статическим размером). Если это так, то фактическое использованное пространство будет равно

vector_capacity * sizeof(std::string)

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

vector_capacity * sizeof(std::string) + sum_of_capacity_of_each_string_in_the_vector_where_
                                        the_capcity_is_more_than_the_sso_amount

. В вашем расчете sizeof(cache[i].at(0)) нет необходимости. std::string Использование char и sizeof(char) гарантированно будет 1

13
задан ctacke 18 December 2008 в 18:18
поделиться

6 ответов

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

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

Перемещение с рабочего стола на мобильный телефон довольно просто, но Компактная Платформа содержит подмножество полной платформы, но это не чистое подмножество. Это также содержит несколько вещей, которые просто не существуют на рабочем столе. Таким образом, существуют некоторые вещи учиться.

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

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

Это более просто. Только платформы Windows CE (см. следующий ответ для большего количества разъяснения) поддерживают Компактную Платформу. Существует также Микро Платформа, но я назвал бы ее более "встроенной", чем "мобильный", таким образом, это вероятно не что-то, что Вы рассматриваете (исправьте меня, если я неправ там).

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

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

Это даже не входит в различия между самими платформами WinMo (Профессионал, Стандарт, Смартфон, Телефонный Выпуск, и т.д.).

Другое соответствующее ТАК вопросы

Вы могли бы хотеть посмотреть на них:

20
ответ дан 1 December 2019 в 22:08
поделиться

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

2
ответ дан 1 December 2019 в 22:08
поделиться

Не может добавить много к тому, что уже здесь, но я скажу, что Вы будете удивлены в большом количестве мест, если Вы только использовали Полную Платформу.

  • Там является верным, ложным, и выключите, помните это, когда написание кода, которое касается системных ресурсов.
  • Производительность - OMG, вещи являются медленными, вероятно, намного медленнее, чем Вы ожидали бы в некоторых местах.
  • Недостающие остатки - необходимо будет переписать колесо в нескольких случаях, поскольку некоторый материал не был портирован должный расположить с интервалами. Я упоминал Десятичное число. Вокруг () только поддерживает округление банкира?
  • Ключи... существуют ограниченные ключи. Иногда Вы могли бы хотеть, чтобы ключи сделали разные вещи, затем Вы будете помнить, что виджеты WinForm прерывают ключи и делают предварительно запрограммированные вещи. О, noes!
  • P/Invoke. Некоторые вещи, которые Вы привыкли получать бесплатно, потребуют P/Invokes.
  • GC отличается. Могло бы стоить считать на нем, если Вы хотите создать крупное приложение.
  • Не все устройства являются тем же как ПК, то же.
1
ответ дан 1 December 2019 в 22:08
поделиться

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

Который .NET делают Вы имеете в виду: существуют различные номера версий, а также исходные и компактные различия.

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

0
ответ дан 1 December 2019 в 22:08
поделиться

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

0
ответ дан 1 December 2019 в 22:08
поделиться

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

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

  • Угождая множеству экранных ориентаций, размеров и разрешений
  • Ограничения скорости процессора
  • Ограничения/управление памяти
  • Дизайн UI (У Вас просто нет того же экранного имущества как на рабочем столе),
  • Ввод данных (Входная Панель Стилуса / Мягкая Входная Панель)
0
ответ дан 1 December 2019 в 22:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: