Разработка Windows Mobile - Где начать? [закрытый]

Очень поздний ответ: мы можем сделать это просто так:

etv.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {
        }

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
            if (s.toString().length() > 3 && s.toString().contains(".")) {
                if (s.toString().length() - s.toString().indexOf(".") > 3) {
                    etv.setText(s.toString().substring(0, s.length() - 1));
                    etv.setSelection(edtSendMoney.getText().length());
                }
            }
        }

        @Override
        public void afterTextChanged(Editable arg0) {
        }
}
26
задан Mat Nadrofsky 18 December 2008 в 16:59
поделиться

15 ответов

Здесь несколько слов на основе моего опыта до сих пор (приблизительно 9 месяцев) .net разработки Windows Mobile.

  1. Хорошо Вы иногда соединяетесь. (Или более вероятно иногда разъединяемый). Необходимо выбрать, собираетесь ли Вы использовать обмен сообщениями с очередями (т.е. WCF/SOAP/XML или что-то как он) или синхронизация базы данных. Я выбираю маршрут синхронизации SQL, таким образом, я не могу действительно прокомментировать обмен сообщениями. Маршрут синхронизации SQL не является свободной стычкой!

  2. при потере работоспособности по синхронизирующему маршруту с SQL, компактным как я у Вас в основном есть два варианта. Репликация слияния SQL Server или более новые услуги по Синхронизации ADO.NET. При выборе первого, необходимо быть действительно осторожными с дизайном DB, чтобы гарантировать, что он может быть легко разделен между мобильными абонентами и издателем. Действительно необходимо думать о конфликтах, и таблицы разделения, которые обычно не разделялись бы в нормализованном дизайне DB, являются одним способом сделать это. Необходимо рассмотреть ситуации, куда устройство идет офлайн в течение некоторого времени и DB издателя (т.е. основной DB), и/или подписчик изменяет те же данные. Что происходит, когда устройство возвращается онлайн? Это могло бы означать разрешать конфликты даже при разделении вещей хорошо. Это - то, где я был записан. Но Репликация Слияния SQL может работать хорошо и уменьшает объем кода, который необходимо записать.

  3. DAL Самокрутки. Не пытайтесь использовать datareaders и т.д. непосредственно от UI, кодируют и не используют введенные наборы данных также. Может быть третье лицо DALs, которые работают с Windows Mobile (т.е. Я знаю, что LLBLGEN делает, мог бы быть достойный внимания), но Linq к SQL не поддерживается, и так или иначе Вам нужно что-то легкое. Возможности являются DAL, не будет слишком большим, так прокрутите его сами.

  4. при использовании .net Вы, вероятно, закончите тем, что желали некоторые нереализованные функции платформы. Я рекомендую использовать эту недорогую платформу, чтобы дать Вам, что Ваших пропавших без вести (тем более, что связанный с возможностью соединения и управлением питанием) - http://www.opennetcf.com/Products/SmartDeviceFramework/tabid/65/Default.aspx

  5. устройства Windows Mobile частично выключают для экономии электроэнергии, если не используемой. При выполнении дизайна типа опроса, необходимо будет разбудить их каждый x минуты. Нормальный .net класс таймера не сделает этого. Необходимо будет использовать функцию платформы, которая может использоваться от OpenNetCF (выше). Класс таймера называют LargeIntervalTimer и находится в блоке/пространстве имен OpenNetCF.WindowsCE (я думаю).

Удачи!

16
ответ дан Christopher Edwards 15 October 2019 в 08:17
поделиться

Owen можно совместно использовать код от Компактной Платформы-> Рабочий стол, это является только Настольным-> Компактная Платформа, которая имеет проблемы совместимости, если Вы используете определенные объекты, которые не поддерживаются CF.

, В то время как настольный lib не работает над CF, lib CF будет работать над рабочим столом, можно также выполнить CF.exes на рабочем столе!

Просто создают библиотеку CF как проект, который определяет Ваши базовые объекты / взаимодействует через интерфейс и т.д.

0
ответ дан Quibblesome 15 October 2019 в 08:17
поделиться

"Синхронизация документа" - который означает двунаправленный? Или кумулятивный только для записи? Я могу думать о мобильной архитектуре, которая главным образом собрала бы и отправила бы транзакции для общего документа - если это - Ваше требование, тогда мы должны обсудить офлайн - это - длинное (и интересный) разговор.

0
ответ дан dkretz 15 October 2019 в 08:17
поделиться

Я собираюсь добавить дополнительный вопрос этому сообщению, как его, достаточно активный, и надо надеяться буду полезен другим, а также мне. Хорошо, поэтому после игры вокруг я теперь понимаю, что библиотеки стандартного класса не могут быть включены в приложения Windows Mobile.

Теперь подавляющий совет здесь, кажется, использование встроенная база данных, хотя у меня теперь есть варианты использования, и кажется, что у меня должна будет быть синхронизация документа, а также реляционные данные. С этим в памяти взаимодействие уровня служб кажется неизбежным. Таким образом, мой вопрос состоит в том, как я совместно использовал бы общие объекты области и интерфейсы между слоями?

0
ответ дан Owen 15 October 2019 в 08:17
поделиться

Существует пара ссылок, с которых, можно провериться, запускаетесь:

  1. http://developer.windowsmobile.com
  2. http://msdn.microsoft.com/en-us/windowsmobile/default.aspx

, Если у Вас есть камень преткновения при разработке, существуют также выделенные чаты Windows Mobile на MSDN, что можно посетить и задать вопросы. Календарь еще не был обновлен, но следующие должны быть в январе. Можно найти расписание здесь: http://msdn.microsoft.com/en-us/chats/default.aspx

0
ответ дан 15 October 2019 в 08:17
поделиться

Я должен был сделать это однажды. Странная установка с Macs для разработки, и мы были всеми программистами Java. И короткий крайний срок. Макинтоши PowerPC также, таким образом, никакой шанс установить Windows для разработки Visual Studio, не берут в голову, что деньги для этого никогда не появлялись бы.

Мы закончили тем, что писали приложения с помощью Java, работая на виртуальной машине IBM J9, с SWT для пользовательского интерфейса. Стопка совершенно свободного развития. Легкий развернуться. Код работал на любой платформе, которой мы требовали, не просто PocketPC/WinMob.

большая часть работы была на стороне сервера так или иначе - база данных, сервер веб-сервиса. Логика. Механизм создания отчетов. Сторона клиента не была полностью проста однако - получит шаблоны формы от сервера (потому что они часто изменялись), детали сайта (многоузловое развертывание), генерируйте UI из шаблона формы (использующий некоторые компоненты графического интерфейса пользователя SWT, которые замечательны для разработки PocketPC, как ExpandBar), соберите данные с точкой и нажмите интерфейс (минимизирующий запись клавиатуры где возможный), и затем отправьте его назад серверу.

Для автономного хранения мы использовали XML-файлы на самом устройстве. Более чем достаточно для наших потребностей, но Ваши могут отличаться. Возможно, рассмотрите SQLite?

0
ответ дан JeeBee 15 October 2019 в 08:17
поделиться

" 24 Часа Разработки приложений Windows Mobile " из Блога Команды Windows Mobile имеет некоторые хорошие ресурсы

2
ответ дан Peter Mourfield 15 October 2019 в 08:17
поделиться

Вы не должны быть запуганы для разработки Windows Mobile. Это очень не отличается от настольной разработки. Я настоятельно рекомендую использовать.NET Компактная Платформа для разработки и не C++ / MFC.

Некоторые полезные ссылки:

  • раздел Mobile в Проекте Кода. Вы нашли бы много статей, немного рытья необходимо для нахождения соответствующего.
  • Платформа Интеллектуального устройства от предложение OpenNetCF ценные расширения компактной платформы.
  • при установке Мобильного SDK Вы найдете в соответствии со ссылками папки Community для Windows Mobile и блогов платформы CF. Это также ценные ресурсы.

Относительно Вашего приложения, Вы правы относительно WCF и CE SQL Server. Это надлежащие пути к обработке коммуникации и устройства хранения данных.

Некоторые подсказки для людей, происходящих из настольного мира:

  • у Вас должно быть своего рода управление питанием. Устройство может автоматически пойти для приостановки состояния. Кроме того, Вы не должны потреблять энергию, когда Вы не имеете к.
  • Сетевое соединение является сложным вопросом. Можно зарегистрировать уведомления для того, когда определенная сеть (Wi-Fi, GPRS) становится доступной или недоступной. Можно также установить предпочтительные средства сообщения.
  • Делают UI максимально простым. Пользователь использует свой ползунок и/или перо, и он, вероятно, в движении.
  • Тест в физическом устройстве как можно раньше.
2
ответ дан kgiannakakis 15 October 2019 в 08:17
поделиться

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

Компромиссы, являющиеся, что комплект инструментальных средств менее богат и интеграция с другими продуктами MSSql является нолем.: (

5
ответ дан Quibblesome 15 October 2019 в 08:17
поделиться

Вы могли бы хотеть обратиться к этому:

getting-started-with-windows-mobile-development

4
ответ дан Community 15 October 2019 в 08:17
поделиться

SqlCE - [только 110] один из опций, доступных для локального хранения данных на устройстве Windows Mobile, и хотя это - превосходная база данных, он имеет ограничения. С одной стороны, SqlCE не будет работать (период) при шифровании (другими словами, если Ваш пользователь зашифрует местоположение, где Ваш файл SDF, Вы больше не будете в состоянии получить доступ к данным).

второе (и самый очень важный) слабость SqlCE находится в инструментах RDA/Merge Replication. Репликация Слияния SqlCE не составляет 100%, надежных в ситуациях, где сетевое соединение может отбросить во время репликации (очевидно очень распространенный в устройствах Windows Mobile). Если Вы любите пытаться объяснить то, чтобы избегать или поврежденные данные Вашим клиентам, идете вперед и использовать репликация слияния и SqlCE.

Облегченная Oracle является хорошей альтернативой SqlCE, хотя это также не работает правильно при шифровании. Если шифрование является потенциальной проблемой, необходимо найти механизм базы данных, который работает при шифровании (я не знаю об одном), или иначе запишите собственный компонент персистентности, использующий XML или что-то.

Запись приложения WM, поскольку фронтэнд, который, прежде всего, взаимодействует с веб-сервисом в режиме реального времени, будет только работать во всегда соединенной среде. Лучший подход должен записать Ваше приложение как фронтэнд, который, прежде всего, взаимодействует с локальными данными (SqlCE, Облегченная Oracle, XML или безотносительно), и затем создайте отдельный компонент Синхронизации, который обрабатывает продвижение и получение по запросу данных.

Снова, репликация слияния SqlCE делает это продвижение и получение по запросу красиво и изящно - это просто не работает все время. Если Вы хотите механизм репликации, который работает надежно, необходимо будет записать собственное. Облегченная Oracle имеет что-то позвонившее таблица снимка, которая работает очень хорошо с этой целью. Таблица снимка в изменениях дорожек Олите (как добавляет, обновляет и удаляет), и позволяет Вам запрашивать изменения отдельно и обновлять центральную базу данных (через веб-сервис) для соответствия.

8
ответ дан MusiGenesis 15 October 2019 в 08:17
поделиться

Этот поток я просто отправил на, ТАК несколько дней назад, оказалось, был большим ресурсом для меня к настоящему времени.

Также Windows Mobile MSDN WebCasts богатство информации обо всем от просто начала работы до перспективной разработки.

6
ответ дан Community 15 October 2019 в 08:17
поделиться

Если Вы можете, попытаться начать с пользовательских вариантов использования и работать назад к коду, а не наоборот. Действительно легко провести намного больше времени, работая над инструментами, чем работа над бизнес-проблемой. И продумывание требований пользователя поможет Вам рассмотреть альтернативные стратегии, потому что много шаблонов, которые Вы знаете от нормальной.NET, не применяется.

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

я upvoted предложение SqlLite BTW. MS еще не стабилизировали их историю персистентности для CE.

1
ответ дан dkretz 15 October 2019 в 08:17
поделиться

Для бита репликации базы данных я настоятельно рекомендую Sybase Ultralite . С точки зрения гибкости и производительности он сбивает с ног SQL CE

1
ответ дан 28 November 2019 в 07:16
поделиться

Эту книгу следует прочесть для всех разработчиков Windows Mobile: http://www.microsoft.com/learning/en/us/books/10294.aspx

0
ответ дан 28 November 2019 в 07:16
поделиться
Другие вопросы по тегам:

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