Идея написать статью на эту тему возникла в 2020 году, когда к нам с запросом на разработку ПО обратился крупный региональный производитель профлиста. Компании понадобилось приложение для менеджмента заказов на производство и доставку, и уже был определен примерный список требований.
Одним из пожеланий заказчика была разработка именно десктоп-приложения. Однако в процессе обследования и оценки задач мы вместе с клиентом пришли к выводу, что быстрее разработать web-приложение на платформе Jmix (ранее Cuba Platform).
И это далеко не первый случай, когда на этапе дискавери заказчик уверен в преимуществах десктоп-приложений, но в итоге делает выбор в пользу веба. Почему так происходит, какие плюсы и минусы у веба и десктопа, и какое приложение подойдет именно вашей компании — вы узнаете из этой статьи.
Важно! Так как статья ориентирована на читателей, которые знакомы с IT-сферой и разработкой ПО скорее на уровне пользователей, чем на уровне системных администраторов, для начала определим предмет разговора и уточним, что мы понимаем под вебом и под десктопом.
Веб-приложение — программа, которой вы можете пользоваться в любом удобном для вас браузере. Перед первым запуском ее не нужно устанавливать на ваш компьютер, достаточно вести адрес для доступа в строке браузера.
Десктопное приложение — программное обеспечение, которое вы используете в отдельном интерфейсе, а не в браузере. Перед использованием его придется обязательно установить на компьютер пользователя.
Это поверхностная разница на уровне очевидных для пользователя моментов, хотя на самом деле отличий у этих двух типов приложений гораздо больше.
Еще 10-15 лет назад на рынке программного обеспечения царствовали именно десктоп-приложения, а веб только-только начинал развиваться. Процесс массового перехода к вебу происходил постепенно, и вот уже мы открываем большую часть необходимых для работы программ именно в браузере. Но, тем не менее, в представлении многих пользователей именно десктоп остался символом надежности, быстродействия и простоты. Так ли это на самом деле? Рассмотрим и попробуем опровергнуть самые распространенные мифы.
И да, и нет. Если сервер находится «снаружи» организации, и доступ к нему недостаточно защищен, то данные могут украсть независимо от того, будете ли вы пользоваться десктоп или веб приложением. То есть тут мы путаем «технологию разработки» и собственно архитектуру системы, и то, как организована защита передачи данных. Первично именно то, где находится сервер, насколько он защищен, и насколько защищены каналы доступа с клиентских ПК до сервера.
Технология разработки и интерфейс – этот как раз или веб-клиент, или десктоп. Это та часть, через которую пользователь взаимодействует с программой и запускает какие-то процессы. Защитить информацию на этом уровне можно только путем настройки доступа: создать надежные пароли и организовать их безопасное хранение, настроить уровни прав доступа для разных групп пользователей, установить на ПК антивирусы, которые обнаружат вредоносное и шпионское ПО.
Но самое ценное – собственно коммерческая информация, например, список клиентов и договоров – находится в базе данных. Местом ее хранения может быть:
Именно от того, где находится база данных, насколько надежно она защищена, и насколько защищены каналы связи, по большей части зависит безопасность коммерческих данных вашей компании. Если разместить базу в публичном облаке, не ограничивая к ней доступ третьих лиц, то будет абсолютно неважно, веб или десктоп клиент используется на машинах пользователей.
Или если облачный сервер защищен от доступа посторонних, но пользователи получают доступ к данным через открытые каналы интернет без использования шифрования (VPN) – ваши данные под угрозой в любом случае.
Возможно, 10 лет назад это утверждение еще можно было назвать правдивым, но сегодня оно точно перешло в разряд мифов, и вот почему. Как веб, так и десктоп приложению для корректной работы может требоваться интернет, если:
Пример: вам нужно простое десктоп-приложение для ведения сделок и хранения базы клиентов, которое будет работать на собственном сервере в офисе. Для удобства менеджеров в приложение встроена проверка потенциального контрагента по ИНН с указанием возможных рисков.
Для проверки система обращается к открытым источникам в интернете. Если в офисе отключили интернет, менеджеры смогут спокойно работать с самим приложением. Однако автоматическая проверка по ИНН не будет работать до того момента, пока не восстановится соединение.
Если в аналогичном примере у компании не один, а два офиса, а сервер вынесен за пределы офисной сети и доступен только удаленно, при отключении интернета любое приложение будет недоступно.
Такое впечатление может сложиться после сравнения какой-то простейшей десктоп-программы, разработанной под конкретную задачу, и сложной многофункциональной веб-системы, такой как Битрикс24. И здесь мы снова сталкиваемся с тем, что выбор технологии разработки не влияет сам по себе на удобство интерфейса. Одинаково непонятную или наоборот удобную для пользователя систему можно построить как в виде «настольного» приложения, так и в его веб-версии.
Совет: Заказчикам бизнес-приложений еще на этапе формирования своих пожеланий разработчику не стоит забывать о такой важной части, как обучение и «онбординг» пользователей. Именно от того, насколько интерфейс приложения учитывает сценарии работы пользователей, и от того, насколько гладко и успешно пройдет обучение, зависит, будут ли сотрудники использовать систему, или внутри коллектива начнется саботаж и деньги на разработку будут потрачены зря.
А еще хотя бы частично автоматизированная схема обучения позволяет не тратить время на обучение нового сотрудника, а позволяет ему самостоятельно познакомиться с основными сценариями в режиме обучения с подсказками, и задать вопросы.
После того, как мы развеяли распространенные мифы о десктопе, стоит разобраться, что на самом деле представляют из себя современные «настольные» программы, и кому они подходят.
Гибкие и кросс-платформенные решения, дешевле разработка
Это одна из главных причин, по которой сегодня веб-приложения практически заменили десктоп. Существующие фреймворки позволяют при разработке учитывать требования практически всех популярных браузеров, а не создавать отдельное приложение или адаптацию под каждый из них. Это делает разработку в несколько раз дешевле и быстрее, а полученные в результате приложения — более гибкими с точки зрения изменений и доработок в перспективе.
В первую очередь кросс-платформенность важна для разработки коммерческих продуктов. Приложения, которые будут использовать тысячи или даже миллионы пользователей из разных стран, должны по умолчанию подходит под большую часть популярных устройств и операционных систем на выбранных рынках.
Но не стоит думать, что при заказе бизнес-приложения для компании на 15-20 пользователей этот пункт не важен. Даже если сейчас вам известно, на каких именно устройствах и платформах будет использоваться разработанное решение, уже через 1-2 года ситуация может измениться.
Например, так произошло при разработке приложения для одного из наших клиентов. После завершения разработки и успешного внедрения клиент решил масштабировать решение на филиал в другом городе. И внезапно оказалось, что в парке пользовательских ПК есть старые машины с операционной системой Windows 7.
Благодаря тому, что приложение было разработано на платформе Jmix, нам удалось успешно запустить программу даже на такой «древней» операционке. Если бы вместо веб-приложения мы разработали десктоп, то заказчику было бы проще купить новые ПК, чем дорабатывать приложение под Windows 7 ради нескольких рабочих мест.
Проще в установке и поддержке
Выше мы уже описывали процесс обновления версии десктоп-приложения. А теперь сравните с вебом: достаточно за 5-10 минут загрузить обновления на сервер и попросить пользователей «перелогиниться» в системе. Даже если в компании более 50-80 пользователей, провести обновление будет намного проще, чем в случае с десктопом.
Можно сказать, что минусами веб-приложений считаются те же моменты, которые относят к плюсам у десктопных, поэтому не будем раскрывать их подробно, а повторим тезисно:
Разработку десктоп-приложения стоит выбрать, когда вашей компании необходима программа для:
Во всех остальных случаях стоит сначала рассмотреть возможность разработки веб-приложения, так как сегодня они способны решать большую часть бизнес-задач, и при этом тратить на разработку меньше времени и средств.