Среда программирования веб-интерфейса для замены старой системы на основе Delphi - PullRequest
5 голосов
/ 07 января 2011

Старая клиентская система на основе Delphi 5, тысячи строк кода, начинает выходить из строя. Проблемы с новыми драйверами и операционными системами являются основными проблемами.

Мы предполагаем полное переписывание модуля за раз и хотим взглянуть на интерфейс браузера. База данных - Oracle 10, которую мы могли бы заменить, если это имеет смысл.

Основные требования:

  • Получено от компании или сообщества пользователей, которое достаточно устойчиво, чтобы быть в течение следующих 5-7 лет (мы реалисты в этом).

  • Возможность быстрого взаимодействия с использованием хранимых процедур Oracle и веб-сервисов, созданных в ASP.NET и ColdFusion, в качестве источников данных.

  • Возможность развертывания на виртуализированных клиентах, а также на толстых клиентских компьютерах Windows и Apple.

  • Дополнительные баллы, если есть какой-то способ повторно использовать старый код Delphi (но опять же, мы реалисты, поэтому не ожидаем, что это произойдет).

Мы рассматриваем Silverlight, Flex и Ruby как возможные среды разработки. У кого-нибудь есть какие-либо другие рекомендации или комментарии по поводу вышеизложенного?

Спасибо за вашу помощь.

Ответы [ 4 ]

6 голосов
/ 07 января 2011

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

Во-первых, я хочу выяснить, что я воспринимаю как неправильное представление в вашем первоначальном вопросе:

Мы смотрим на Silverlight, Flex и Рубин

  • Silverlight - это клиентская технология, в основном время выполнения.
  • Сгибание имя SDK, использованного для сборки приложения для Adobe Flash Платформа.
  • Руби это программирование язык.

Похоже, вы исследуете несколько совершенно разных технологий, разработанных для совершенно разных целей. Они не будут очень хорошо сравниваться.

Более прямым сравнением будет сравнение Silverlight с Flash Player и HTML / JavaScript. Или сравнить MXML Flex с XAML .NET. Насколько мне известно, Ruby в основном используется на стороне сервера, часто с внешним видом HTML и JavaScript. Если ваше интерфейсное решение требуется для взаимодействия с веб-службами .NET и ColdFusion, я не уверен, почему вы добавили бы третью технологию на стороне сервера.

Тем не менее, я собираюсь рекомендовать использовать Flex / The Flash Payer в качестве вашей интерфейсной технологии и ColdFusion в качестве вашей серверной технологии. Есть одна причина, я рекомендую это, и это потому, что это то, что я знаю. Надеемся, что кто-то более опытный в .NET / Silverlight / Ruby может рассказать о преимуществах каждого из них.

Я рассмотрю больше по вашим пунктам, один за другим:

  Sourced by a company or user community that is robust enough to be

в течение следующих 5-7 лет (мы реалисты на этом).

Я ожидаю, что Silverlight, Flash Platform и Ruby будут живы и здоровы в течение следующего десятилетия.

Flash Platform, в частности Flex, имеет активное сообщество. Я считаю, что одна из лучших вещей, которые делает Adobe, - это развитие сообщества разработчиков вокруг их платформы и инструментов.

Flex по-прежнему нов и продолжает расти, но за последние несколько лет он значительно вырос. Несмотря на то, что Adobe туго молчит о количестве разработчиков, большинство оценок, которые я вижу, оценивают в 250–350 тыс., Что более чем вдвое превышает показатели 3 года назад. Есть подкастов , множество блогов , больше фреймворков, чем вы можете потрясти ( RobotLEgs - текущий фаворит), множество конференций (мой фаворит - 360 | Flex ) и множество проектов с открытым исходным кодом .

ColdFusion более 10 лет, в настоящее время его девятая версия и огромное сообщество с процветающими списками рассылки (такими как House of Fusion и форумы Adobe), большим количеством подкастов (таких как CFHour и cfconvesations ), блоги , книги, фреймворки (такие как Fusebox, Model Glue и Mach-II), проекты с открытым исходным кодом и конференций .

Некоторые люди говорят, что трудно найти разработчиков ColdFusion, и это иногда так, потому что сообщество относительно небольшое по сравнению с .NET. В прошлый раз, когда я видел оценки, они оценивали 750 тысяч разработчиков по всему миру. У вас могут быть похожие проблемы с разработчиками Flex. Но, похоже, у вас уже есть команда, которую вы хотите обучать, поэтому, возможно, вы не ищете новых сотрудников, и это не будет проблемой.

В мире также существует множество групп пользователей Adobe. Не стесняйтесь зайти к одному и / или спросить менеджера группы о технологии по своему выбору. Большинство известных мне групп - это Flex или ColdFusion.

Я добавлю, что ColdFusion и Flex / Flash Platform принадлежат Adobe, и Adobe приложила огромные усилия, чтобы убедиться, что они хорошо работают вместе. Я думаю, что их интеграция не имеет аналогов.

Все это говорит о том, что .NET также поддерживает крупную компанию и имеет большую базу разработчиков, чем ColdFusion и / или Flex. Я полагаю, что вы чаще найдете поддерживаемые коммерческие решения в мире .NET, чем в пространстве Flex или ColdFusion; но не могу говорить из личного опыта.

Я не думал, что у Руби есть какая-то компания, но я понял, что у нее очень живое сообщество. Вы можете легко использовать Ruby для создания серверной части приложения Flash Platform или Silverlight.

  Able to quickly interface to use stored procedures from Oracle and web

сервисы, созданные в ASP.NET и ColdFusion как источники данных.

Вы упомянули возможность замены Oracle. Я бы рекомендовал против этого. Похоже, у вас будет много работы. Если вы можете обойтись, изменив только один «слой» вашего приложения, сделайте это.

ColdFusion может быстро и легко получить доступ к данным в Oracle, используя хранимые процедуры или прямые запросы. Я не сомневаюсь, что .NET может сделать то же самое. [и я предполагаю, что у Руби с этим тоже не должно быть проблем].

Silverlight и Flash Player (Flex) разработаны как интерфейсные технологии, и я не рекомендовал бы пытаться получить доступ к базе данных непосредственно из них. Большинство приложений, которые я видел, используют уровень промежуточного программного обеспечения (например, ColdFusion или .NET) для доступа к базе данных, и тогда Flash просто получит доступ к этому промежуточному уровню. В архитектуре Model View Controller Service вы можете часто реализовывать Модель как хранилище базы данных (Oracle), службы в промежуточном программном обеспечении (ColdFusion / .NET) и представление в технологии интерфейса (Flash Player / Flex, Silverlight или HTML). / АЯКС). Контроллер в приложении Flex / Flash, скорее всего, будет создан во Flash / Flex. Я предполагаю, что Silverlight похож.

Используя ColdFusion, вы будете использовать cfstoredproc для доступа к хранимым процедурам или cfquery для выполнения запросов непосредственно к базе данных. Вы помещаете эти запросы в службу, а затем из Flex / Flash Player вы получаете доступ к этим данным с помощью RemoteObjects (это протокол AMF, который я настоятельно рекомендую использовать) или WebService (для вызовов SOAP) или HTTPService (для вызовов REST. ). AMF - это двоичный формат, который может значительно ускорить передачу данных между клиентом и сервером. ИТ-специалисты также автоматически переводят объекты на стороне сервера в объекты на стороне клиента и наоборот. Это очень приятное прикосновение, и вам не нужно писать собственные процедуры преобразования.

  Deployable on virtualized clients as well as thick client

Машины Windows и Apple.

Полагаю, я не уверен, что вы подразумеваете под виртуализированными и толстыми клиентами.

Flash Player и AIR легко устанавливаются как на Windows, так и на Mac. Adobe проделывает большую работу, чтобы подготовиться к волне мобильных устройств, если это важно для вас. Даже несмотря на аргументы Adobe / Apple в прошлом году, у Adobe есть упаковщик для развертывания на устройствах iOS. Он находится на ранней стадии, но я ожидаю увидеть некоторые важные обновления в первой половине этого года.

Adobe подверглась критике за производительность на Mac, и этому есть разные причины. Но все постоянно улучшается.

Я знаю, что у Silverlight есть поддержка Mac, но я не знаю, насколько это возможно. Я не ожидаю увидеть Silverlight на мобильных устройствах помимо ОС Windows Phone.

С точки зрения Ruby, вы, вероятно, не захотите развертывать Ruby на настольном компьютере в любой форме. Но вы можете создать AJAX / HTML, который работает с выбранным вами браузером (и / или использовать среду AJAX, которая решает проблемы совместимости браузера). В нынешних условиях HTML / AJAX, вероятно, будет вашим лучшим выбором для развертывания мобильных устройств, поскольку большинство мобильных браузеров основаны на Webkit, поэтому часто существует высокий уровень согласованности в том, как приложения HTML работают на устройствах. И такой подход, скорее всего, даст лучшую производительность, чем использование Flash [или Silverlight] на указанном устройстве.

  Extra points if there is some way to reuse the old Delphi code (but

опять же, мы реалисты, поэтому мы не ожидая, что это произойдет).

Я не могу вам здесь помочь. Лучше всего либо заново создать с нуля, либо попробовать написать инструмент для преобразования / генератора кода. Я не уверен, является ли последний практичным. Если вы превратите код Delphi в COM-объекты, как это предлагается в другом месте, их можно использовать из ColdFusion аналогично тому, как их можно использовать из .NET.

Это помогает? Что еще вы хотели бы знать?

3 голосов
/ 07 января 2011

Я бы либо придерживался Delphi (но модернизировал код до последней версии + фреймворк), если бы я действительно хотел переработать код, или я бы пошел на большой взрыв с C # / ASP.NET

Если приложению снова потребуются клиенты, я бы склонялся к Delphi. Если бы только сеть, я бы склонялся к C #.

Может быть, Java вместо C #, но только если вы работаете в большой корпорации, и они уже используют ее.

2 голосов
/ 07 января 2011

Дополнительные баллы, если есть какой-то способ повторно использовать старый код Delphi

Всегда есть Intraweb (он же VCL для Интернета) .Вы можете использовать непосредственно свой старый код.

Получено от компании или сообщества пользователей, которое достаточно устойчиво, чтобы быть рядом в течение следующих 5-7 лет (мы реалисты в этом).

Shouldn 'это не проблема.

Возможность быстрого взаимодействия с использованием хранимых процедур из Oracle и веб-служб, созданных в ASP.NET и ColdFusion, в качестве источников данных.

Delphi Enterprise и Architect обеспечивают поддержку Oracleиз коробки и все версии могут использовать веб-сервисы.Также доступны сторонние решения.

Развертываемые на виртуализированных клиентах, а также на толстых клиентских компьютерах Windows и Apple.

Толстые клиенты для Apple в настоящее время не входят в объем,«Project Pulsar» на дорожной карте обещает поддержку Mac OS X.

2 голосов
/ 07 января 2011

Если вы ищете широко поддерживаемую платформу, которая будет существовать довольно долго и которая может легко взаимодействовать с веб-службами, я, вероятно, остановлюсь на ASP.NET с C #.

.NET имеетогромное сообщество разработчиков, может легко взаимодействовать с базами данных Oracle, и имеет отличную поддержку веб-сервисов.

Я бы, вероятно, придерживался интерфейса HTML (а не полагался на Flash или Silverlight, поскольку ни один из них не гарантированно будет широко популярен после HTML5доработано).Фактически вы могли бы начать интеграцию функций HTML5 сейчас, так как большинство платформ поддерживают некоторый их набор.

Что касается интеграции со старым кодом Delphi, вы можете попытаться превратить различные модули в компоненты COM.Затем вы можете использовать эти COM-компоненты в .NET-коде через COM-взаимодействие.

... похоже, что я охватил все основы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...