Десктопное приложение в Web приложение — что использовать?
Здравствуйте!
Суть вопроса такова. Существует десктопное приложение, написанное на Delphi 7 с давних времен. Со временем программа разрослась до космических размеров и поддерживать её в данное время очень сложно.
Это своего рода CRM, которая организует работу в компании и осуществляет кучи разных операций: вывод разного рода заявок, статусов, пользователей, генерации отчетов, фильтрации по разным параметрам и все в этом духе.
Появилась цель переписать данную вещь в Web приложение. Преимуществ как все понимают много (использование браузера и более современных технологий в разработке, поддержка на всех видах устройств и т.д).
Цель: выбрать комплекс web технологий для решения данной задачи (на чем собственно начинать писать данную штуку).
Предложения среди программистов на данный момент следующие:
Использовать в качестве фронтенда Angular JS (1.5+), в качестве бэкенда Node.js/Express.
Проблема больше стоит перед выбором фреймворка для фронтенда. Angular 2+ вещь довольно новая, все только только переходят на неё и то - сетуют на недостаток документации и определенные баги. Не совсем понятно когда будет создана стабильная версия данной версии фреймворка.
Вопрос больше адресован к опытным разработчикам с большим стажем в веб-разработке.
Кто и что может посоветовать? Рассматриваются все мнения. Спасибо.
Начните с того, что напишите подробное ТЗ по вашей системе без привязки к каким-либо технологиям и языкам, а с привязкой к бизнесу. Со схемами, скриншотами, разделениями на модули.
Затем решите кто это будет делать, и какими технологиями он это предлагает решать.
Ну тут много спорных нюансов:
- 1C наверняка нехило так берет за каждую лицензию за раб место
- Для многих заказчиков зачастую важно иметь возможность зайти в систему хоть с ноутбука в кафе, хоть с телефона, хоть с пылесоса, поэтому именно веб бывает предпочтительнее (а возможно еще и какое-нибудь Android/IPhone приложение под эту дудку можно впарить).
- Многое зависит от продаванских навыков и от платежеспособности заказчика. Я знаю одного ушлого товарища, который годами впаривал системы учета, написанные на VBA+Access. Когда это стало совсем неприличным - он нанял программистов, которые переписали все это хозяйство на ASP.NET.
Я тоже долго дивился, почему заказчики не переходят на 1С.
Наверняка, конечно, есть и под веб готовые системы, но опять же, любая система избыточна, а заказчиков вводит в ступор любой доп функционал, который к их задаче не относится. Т е система должна хорошо и гибко настраиваться.
Но, в целом, я с вами согласен, перед тем, как начинать что-то делать, стоит проанализировать имеющиеся варианты.
- Еще для кучи. Когда взаимодейтствие идет по схеме "заказчик->исполнитель", то это одно. А когда программу переписывает программист, находящийся в штате этой же компании, то это другое. Программы могут жить годами, а то и десятилетиями.
mletov:
> - 1C наверняка нехило так берет за каждую лицензию за раб место
От 6000 рублей за 1 место даже по розничной цене при покупке по 1-му месту
До 4000 рублей за 1 место по розничной цене при покупке сразу большими пачками на несколько рабочих мест. 1c.ru/rus/partners/pricelst.jsp
mletov:
> - 1C наверняка нехило так берет за каждую лицензию за раб место
Это все равно несопоставимо дешевле стоимости разработки с нуля.
> - Для многих заказчиков зачастую важно иметь возможность зайти в систему хоть с ноутбука в кафе, хоть с телефона, хоть с пылесоса, поэтому именно веб бывает предпочтительнее (а возможно еще и какое-нибудь Android/IPhone приложение под эту дудку можно впарить).
1C все это умеет (причем ВАЖНО практически полностью автоматически - что большая экономия времени и радикальное снижение стоимости разработки): и притворяться веб-сервером и приложения для смартфонов.
1С умеет поддерживать API, если нет желания использовать приложения 1С на смартфонах и веб-интерфейс 1С, а хочется сделать свои приложения и свой фронтенд.
>- Многое зависит от продаванских навыков и от платежеспособности заказчика. Я знаю одного ушлого товарища, который годами впаривал системы учета, написанные на VBA+Access. Когда это стало совсем неприличным - он нанял программистов, которые переписали все это хозяйство на ASP.NET.
Здесь мы обсуждаем вполне конкретные технические причины,
а не абстрактное умение продавать.
> Я тоже долго дивился, почему заказчики не переходят на 1С.
Вы что ожидаете ИНИЦИАТИВУ от самих заказчиков? Что за детство?
Они просто не знают, что 1С кроме базового учета еще много чего умеет.
Заказчика интересует только функционал и цена, и для столь сложной системы КТО-ТО должен им все рассказывать и показывать.
Шильдик 1С - это дополнительный бонус. У меня есть заказчик, который при прочих равных выбрал 1С, потому что был уже знаком с качественным ПО этой фирмы.
Не прогадал - доработка 1С потом обошлась дешевле.
> Наверняка, конечно, есть и под веб готовые системы, но опять же, любая система избыточна, а заказчиков вводит в ступор любой доп функционал, который к их задаче не относится. Т е система должна хорошо и гибко настраиваться.
Вы считаете, что готовые системы не гибко настраиваются?
Да на них МИЛЛИАРДЫ делают - см. Salesforce.
1С - очень гибко настраивается. Но именно в тех пределах как это нужно для учета. Велосипедов там писать не нужно. Все готовые для учета базовые объекты в 1С уже есть. В этом ее сила. Потому она и захватила рынок.
> Но, в целом, я с вами согласен, перед тем, как начинать что-то делать, стоит проанализировать имеющиеся варианты.
Очень сильно зависит от тех навыков, которые имеются у наличиствующих программистов. И от того - что это за система.
Если это тиражируемое решение на продажу с большим бюджетом, то я бы выбрал полностью заказное решение без 1С. Если это на продажу по модели SaaS, то я бы выбрал микросервисное решение. И т.д.
А 1С позволит создать решение быстро и дешево. И сэкономить бабло.
> - Еще для кучи. Когда взаимодейтствие идет по схеме "заказчик->исполнитель", то это одно. А когда программу переписывает программист, находящийся в штате этой же компании, то это другое. Программы могут жить годами, а то и десятилетиями.
Нормальную систему ТАКОГО уровня как вы описали - не выгодно делать под одного заказчика. Ну разве что ГазПром или Сбербанк может оплачивать такие эксперименты, да и то www.yaplakal.com/forum3/st/0/topic1291216.html .
mletov:
Скорее всего, вы имеете ввиду, весьма ограниченную, чрезвычайно узкозаточенную систему с минимальный функционалом.
То да, такие вещи написать на заказ для одного-единственного заказчика не очень дорого.
Но даже минимальная гибкость и универсальность - поднимает себестоимость разработки, поддержки, внедрения и обучения просто в РАЗЫ.
Если стоит задача максимально повторить существующее решение, то советую обратить внимание на webix. Мне это решение не подошло, т.к. мне нужно было что-то близкое скорее к блогу, чем к десктопному приложению, поэтому не могу рассказать, как оно в деле.
Константин Нагибович:
1. 1С десктопное приложение не заменит.
2. 1С приравниваю к Access. (что то делать можно, но полноценно работать нет)
3. Это еще надо как то поддерживать
4. Вести разработку CRM на основе 1C = засунуть себе ружье в рот и просить всех проходящих нажать на курок.
P.S. Если человек знает 1C отлично то, скорее всего наваяет любой функционал и оно будет работать.
Но если человек знает хотябы 1 язык помимо 1C он точно этого делать не будет. А у автора Delphi и я думаю он лучше будет поддерживать старый некропроект чем перепишет на 1C
Alex: я работал и с Access и с 1С. 1С более заточена под решение различных учетных задач нежели Access. Опять же, если нужно работать с решением через веб, то 1С это отлично умеет из коробки.
Не зацикливайся на фреймворках - тебе придется попробовать все
Оцени нагрузку на свой сервис - паблик/приват сервис
После определения нагрузки, подумай, имеишь ли ты желание разбираться с особенностями поведения феймворков под нагрузкой
Стоит аналогичная задача, но для проекта на прод. (то же большой некропроект на Delphi)
Так же в муках выбора и уже сделали рыбу на Angular 1.x + Express.
Для Ваших задач, я думаю, этой связки будет вполне достаточно.
Мы остановились в отсутствии серверного рендеринга Angular 1 и смотрим Angular 2, а так же React.
На сервере присматриваемся к GraphQL