Как безболезненно уйти с Delphi?

Заранее извиняюсь за многословность, просто хочется более детально описать суть вопроса и проблему.



Есть фреймворк, написанный на Delphi 7, который позволяет довольно быстро разрабатывать бизнес приложения, такие как системы учета, CRM и т.п. Данный фреймворк представляет собой exe файл. Один для всех приложений. Данный файл для каждого конкретного приложения подгружает прописанные в файл настроек BPL (DLL). По сути вся бизнес логика относительно каждого конкретного проекта заложена в BPL (DLL).



Фреймворк выполняет следующие основные функции:



Стандартный каркас приложения: Главная форма, Ribbon лента, на которой подгружаются кнопки для вызова конкретных модулей. Каждый модуль оформлен в виде фрейма и подгружается системой в центральной части окна в виде Табов (Закладок).



Организация стека сообщений. Каждый модуль независим и не «знает» о существовании других модулей. Для вызова определенного модуля и для обмена между модулями информацией, организована служба сообщений.



Организация основных CRUD функций (модуль просмотра списка данных по таблице, добавление / редактирование записи, удаление, фильтрация) (аналог Django админки)



Система логирования.



Помощник работы с реестром.



Почему мы до сих пор пользуемся данным фреймворком:

1. Он позволяет быстро создавать небольшие бизнес приложения, системы учета, управления данными, CRM системы, не отвлекаясь на создание нового основного окна, каркаса приложения. Все программирование сводится к использованию стандартных CRUD заготовок или написания своего фрейма (тут имеется в виду класс TFrame). Остальное система берет на себя. За счет этого малое время разработки и низкая стоимость решения.

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

3. Помощники по стандартным рабочим операциям (логирование, окно о программе, работа с реестром, работа с БД (соединение, настройки соединения, форма авторизации)).



Почему решили отказаться.

1. Разработка собственная, слабо документированная. Новым сотрудникам приходится тратить значительное время, чтобы разобраться с нюансами работы фреймворка. Помимо этого очень ограничена возможность привлекать фриланс – программистов.

2. IDE Delphi 7 мягко говоря устарела. Переход на более новые версии IDE и языка, неизбежно приведет к временным затратам на перевод, адаптацию и переписыванию уже готового кода, да и проблема 1 при этом не исчезнет.

3. Программистов Дельфи становится все меньше

4. Ну и ряд других уже чисто субъективных проблем



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



Вообще в среде WEB разработки с этим все более чем отлично. В этом плане, например фреймворк YII на PHP или Django на Python полностью покрывает наши потребности для разработки простых систем учета, все «фишки» нашего фреймворка или реализованы, или просто не нужны в свете новой платформы. Но некоторые заказчики упорно требуют создание Desktop приложений.
  • Вопрос задан
  • 11653 просмотра
Пригласить эксперта
Ответы на вопрос 7
spmbt
@spmbt
Попробуйте поискать в аптеках таблетки «от Делфи», поспрашивать на форумах. За столько времени уже должны быть проверенные решения, которые помогут.

Кстати, про эмуляцию десктопных приложений. Гугл в своей ОС продвигает подход, да и вообще он известный, что приложение создаётся как веб, но с локальным сервером. И имеет чётко регулируемые права. Плюс в том, что оно в 2 счёта переносится в веб при надобности, а минус может быть в скорости отклика и рендеринга.
Ответ написан
RusMikle
@RusMikle
Программист
Не советую уходить с Delphi. Сейчас по работе делаю проекты и в XE2 и в VS студии 2012 c#. XE 2 уже достаточно хороша (последующих не пробовал а на дворе уже XE5). Если работа над проектом ведётся не большим количеством персонала то особого смысла уходить на ту же студию (у которой средства коллективной разработки и тестирования более развиты) не вижу. И мне неизвестно ничего такого что можно реализовать на студии в c# чего нельзя сделать в XE2.
Ответ написан
Комментировать
Nashev
@Nashev

Проблему отсутствия общедоступного движка, который все знают и любят, вместе с проблемой обучения ему, а заодно вместе с проблемой улучшения и поддержки своего движка, можно решить одним смелым ходом:

Откройте свой движок сообществу, с исходниками, на гитхабе, и пиарьте его на всех углах! Уверен, народ подтянется и будут и изучать, и развивать, и документировать, и использовать. Если он и правда так хорош, как пишите.

Ответ написан
@kozlovsv Автор вопроса
Или время десктоп приложения безвозвратно уходит? Сейчас перспективнее разрбатывать на веб или на мобильные платформах: iOS, Android? Соответственно в веб куча фреймворков, позволяющих ускорить разработку приложений, причем эти фреймворки общеизвестные и популярные, а вот для десктоп приложений такого выбора особо нет.

В принципе есть для Java фреймоврк Spring, даже его форк есть для .Net. Но это тяжеловесные фреймворки, они будут полезны для приложений корпоративного уровня. А вот чтобы быстро «клепать» системы учета, CRM. такие есть?
Ответ написан
Комментировать
sevka_fedoroff
@sevka_fedoroff
Последите за этим вопросом: habrahabr.ru/qa/37847/
Там человек тоже интересуется подобным
Ответ написан
@kozlovsv Автор вопроса
Проблема в том что у нас проекты еще на Delphi7. Так уж получилось. И переход на XE2 или другую более старшую версию, потребует довольно немало усилий. На счет реализации проектов, вы правы, я не встречал проектов которые можно было бы реализовать на С# но нельзя на Pascal.
Но во первых, популярность языка Паскаль, не так высока, и на практике сталкиваемся с нехваткой специалистов, на тот же аутсорс хотябы.
Во вторых структура языка, требует писать довольно много лишних слов, те же degin, end или объявление переменных только в начале функции, или объявления структуры классов только в специальном разделе модуля, отдельно от реализации. И так много чего по мелочам. У нас практически одинаково сейчас используется и Delphi и C# и на практике получается что на С# быстрее разрабатывать ПО.
И еще плюс C#, если десктоп приложение, понадобится потом расширить веб версией, то для C# это вообще не проблема, необходимо переделать интерфейс на веб, а вся логика не потребует серьезных изменений. И все это можно будет расширить на ASP.net. C Delphi такой трюк не пройдет, и придется всю логику писать на другом языке или извращаться с библиотеками на Дельфи и CGI
Ответ написан
Комментировать
@luis
Переход на новые версии Delphi не сложен. Так же как и написание документации к фреймворку. Кстати, можете поделиться, что за фреймворк?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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