[.NET, Разработка мобильных приложений, Сетевые технологии, C#, История IT] Менеджер приложений для Windows Mobile

Автор Сообщение
news_bot ®

Стаж: 6 лет 9 месяцев
Сообщений: 27286

Создавать темы news_bot ® написал(а)
28-Янв-2021 19:31

Предисловие Это очередная статья из цикла о том, как я работаю с устаревшими устройствами, добавляя им больше возможностей и упрощая взаимодействие. Однако в этот раз я не стал брать чужие разработки и заставлять их работать, а написал своё собственное приложение, поскольку аналогов для него просто нет. Меня всегда волновало удобство установки программ на старые устройства. Я уже давно держу свой FTP сервер для этих целей, а клиенты есть практически подо все операционные системы, но это всё равно не слишком удобно, особенно для людей, не сталкивавшихся раньше с FTP. Поэтому около года назад мне пришла в голову мысль сделать что-то вроде магазина приложений, но у меня всё как-то не было времени и желания и достаточных знаний, возможно. И на самом деле проект включает в себя не только WinMobile, но кучу разных мобильных и десктопных систем, таких как Symbian, Mac OS (classic), старые версии Windows, DOS, Palm... словом все, к которым у меня есть доступ для отладки и которые можно вывести в сеть. Почему же я начал именно с WM? Всё очень просто. Так вышло, что моим любимым языком программирования является C#, а на WM есть свой собственный .Net, который, хоть и с большим числом ограничений, позволяет писать приложения.Так же стоит сразу сказать, что хоть уже сейчас приложение запускается, работает и выполняет свои функции, проект ещё очень сырой, но я регулярно им занимаюсь, дописываю новые функции и исправляю ошибки, поэтому рад любым предложениям, советам и просто сообщениям об ошибках. В конце я оставлю ссылку на гитхаб.Как вообще сейчас писать под Windows Mobile?Способов на самом деле много, но в любом случае понадобится Windows Mobile SDK. Я использую версию для WM 5.0, но она позволяет собирать приложения и для WM2003 и для WM6. В качестве IDE я использую Visual Studio 2008, но видел мануалы по подключению SDK к студиям вплоть до 2017. С VS2008 этот SDK работает из коробки, поэтому я просто создал виртуальную машину с Windows 7 (потому что на Windows 10 такая старая студия уже не устанавливается), поставил студию и всё заработало.
Окно проекта VS2008Писать можно как на Visual C++, так и на C# с .Net Compact Framework 3.5. Для КПК существует отдельный Smart Device Project. Отладка производится либо на встроенном в SDK эмуляторе, либо на подключенном через ActiveSync физическом устройстве.
Эмулятор с WM2003
Но я предпочитаю использовать HTC CruiseОбзор возможностей клиентаДизайн приложения довольно простой и не содержит дизайнерских изысков, но, как мне кажется, хорошо вливается в интерфейс остальной системы и выглядит лаконично. После загрузки менеджера выводится список доступных для установки приложений. Для выбора любого из них достаточно кликнуть по его названию.
Список приложений на сервереСтраница приложения содержит некоторое количество информации о нём и позволяет загрузить и установить программу.
Страница приложенияНа вкладке "Установленные" находится список уже загруженных на устройство приложений. Здесь же можно удалить их или узнать некоторые свойства, такие как место установки, дата установки и т.д.
Список установленных приложенийДля доступа к настройкам приложения требуется выбрать меню "Действия" -> "Параметры". Выбор вкладки "Обновить" того же меню приведет к загрузке списков доступных и установленных программ заново.
Параметры менеджераС помощью меню "Справка" можно узнать информацию о приложении, авторе и получить помощь в работе.
О ПрограммеНемного о внутреннем устройствеКак я уже говорил выше, я уже давно использую FTP-сервер с хранилищем приложений для разных устройств, поэтому он же и лёг в основу всей системы. Причем мне нужно по сути всего 3 команды: листинг, скачивание файла и считывание размера файла. В Net CF почему-то нет поддержки FTP, так что мне пришлось искать стороннюю библиотеку. Сначала я использовал OpenNetCF.Net.FTP, но потом просто взял оттуда нужные функции. Я всё равно к этому времени уже переписал часть библиотеки для своего удобства, поэтому "ванильную" версию всё равно использовать было бы нельзя.Так как все файлы на сервере лежат в виде zip-архивов, мне понадобилась библиотека распаковщика. В качестве оной я взял ICSharpCode.SharpZipLib. К сожалению та версия, что сейчас лежит на гитхабе уже давно не поддерживает WinMobile, но я нашел старую DLL-библиотеку, собранную ещё в 2008 году и она заработала без проблем.Далее - установка. Я использую вызов стандартной утилиты wceload для установки Cab-файлов. Сейчас она запускается со своим интерфейсом, но в будущем я хочу сделать установку тихой, не прерывая работу менеджера. Если же программа представляет из себя одиночный exe или папку, то я копирую её в установочную директорию и "руками" создаю ярлык и инсталляционные записи в реестре. И наконец список установленных приложений вместе со свойствами просто считывается из реестра из ключа HKLM\Software\Apps.Кроме этого мне пришлось написать свой собственный диалог выбора папки, окно "О Программе" и некоторые методы (например, определение свободного места в памяти), потому что их тоже нет среди стандартных функций Net CF.ИтогЯ написал эту статью по большей части для того, чтобы оценить интерес людей к подобному проекту. Ну и привлечь к нему внимание, конечно. Учитывая, что это, по сути, только начало пути, я думаю, будут ещё статьи о работе над менеджером и сопутствующих вещах.Этот проект, как и другие мои поделия можно найти на моём гитхабе.Пожалуй и всё, что мне хотелось сказать сегодня.
===========
Источник:
habr.com
===========

Похожие новости: Теги для поиска: #_.net, #_razrabotka_mobilnyh_prilozhenij (Разработка мобильных приложений), #_setevye_tehnologii (Сетевые технологии), #_c#, #_istorija_it (История IT), #_windows_mobile, #_.net, #_app, #_programmirovanie (программирование), #_retro (ретро), #_kpk (кпк), #_ftp, #_.net, #_razrabotka_mobilnyh_prilozhenij (
Разработка мобильных приложений
)
, #_setevye_tehnologii (
Сетевые технологии
)
, #_c#, #_istorija_it (
История IT
)
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 22-Ноя 16:13
Часовой пояс: UTC + 5