Веб-приложение в Delphi

Я оцениваю возможность написания веб-приложения с помощью Delphi (ISAPI/CGI/...). Я все еще не вижу достаточных причин использовать Delphi вместо "классической" Платформы веб-разработки.

Если у вас есть опыт в этой конкретной области, пожалуйста, поделитесь своими замечаниями. Вы бы рекомендовали Delphi вместо PHP / Rails/ASP/...? Вы знаете какие-либо веб-приложения, написанные на Delphi? (не веб-сервис)

5 ответов


Если вы используете Delphi для веб-приложение, вы получите следующие преимущества:

  1. производительность по сравнению с другими языками сценариев.
  2. повторное использование кода Delphi.
  3. работа в отличной среде IDE.
  4. используйте свой любимый язык (Delphi).
  5. Если вы используете Intraweb, вы можете получить встроенную поддержку AJAX и producative, не требуя глубоких знаний в веб-или JavaScript.

но disadvange:

  1. развертывание непросто, вам нужно работать с ISAPI & IIS, и вы редко найдете хостинг copmany, который предлагает ISAPI для вас.
  2. только платформа windows, (Если вы используете freePascal вы можете получить другие).
  3. нет фреймворков, нет библиотек для помощи вам на этой стороне.
  4. очень плохая документация на этой стороне, и большинство статей старые.
  5. работа с Webbroker не продуктивна по сравнению с другими решениями, такими как Asp.Net.
  6. даже если вы используете Intraweb, он более продуктивен, чем другие решения, но не является гибким, потому что он скрывает веб-сторону на вас.

кстати, Shareit заменил их старый веб-applicatoin, который был основан на PHP, на более новый, построенный с Delphi и Intraweb.


причиной может быть то, что ваша модель, бизнес-логика или уровень доступа к данным написаны на Delphi, и вам нужно использовать это в своем веб-приложении. Al tough, вы можете использовать свою модель, бизнес-логику или уровень доступа к данным с других языков программирования через такие вещи, как dll-вызовы, COM, REST или SOAP. Тогда это не повод использовать Delphi для разработки веб-приложений.

другой причиной может быть то, что разработчики очень хороши в Delphi и менее хороши с другими языки.

использование скомпилированного языка также дает вам преимущество в производительности по сравнению с интерпретируемыми языками, такими как php, rails и asp.


Delphi имеет много сильных сторон, но его возможности веб-приложений не учитываются среди этих IMO. Это именно из-за скомпилированного кода, который он генерирует. Среди прочих:

  1. Если вы не контролируете сервер(скажем, он размещен вашим провайдером), может быть почти невозможно установить скомпилированный код. Скриптовые языки принимаются почти всеми веб-хостами, о которых я могу думать.
  2. есть некоторые особенности, связанные с использованием DLL из ваши приложения ISAPI. Например, при загрузке библиотеки с помощью LoadLibrary текущей папкой является C:\Windows\System32 что может быть удобно, если вы вызываете существующий код, который ожидал, что DLL будут находиться в текущей папке.
  3. более новые версии IIS также имеют некоторые функции безопасности, которые делают их неудобными. Существует параметр" защита приложений", который должен быть установлен на самый низкий параметр, и все утвержденные расширения ISAPI должны быть отдельно включены. На сервере, с которым Вы делитесь у других есть большой потенциал для катастрофы.

Delphi Prism может предложить больше, поскольку он может выполнять полный набор технологий, связанных с .NET, включая MVC и Silverlight. Я уже делаю все свои веб-службы на C#, и если бы мне пришлось начать новый веб-проект, Delphi Prism или Visual C# были бы моим выбором.


Я успешно развернул несколько коммерческих приложений на протяжении многих лет, используя Delphi для создания dll ISAPI. Доводы, которые я использовал для выбора Дельфи, были просты. Мы были магазином Delphi, и количество времени, потраченного на кодирование, было значительно сокращено, выбрав Delphi в качестве нашего движка с некоторым Javascript на стороне клиента на стороне браузера. Большая часть требуемых функций связана с вызовами в серверную базу данных, которая должна оставаться зашифрованной, чтобы уменьшить возможное воздействие роботов.

Если вы решите пойти по этому пути, я настоятельно рекомендую использовать idDebugger инструмент для помощи в отладке. Это действительно снимает боль.


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