Веб-приложение в Delphi
Я оцениваю возможность написания веб-приложения с помощью Delphi (ISAPI/CGI/...). Я все еще не вижу достаточных причин использовать Delphi вместо "классической" Платформы веб-разработки.
Если у вас есть опыт в этой конкретной области, пожалуйста, поделитесь своими замечаниями. Вы бы рекомендовали Delphi вместо PHP / Rails/ASP/...? Вы знаете какие-либо веб-приложения, написанные на Delphi? (не веб-сервис)
5 ответов
Если вы используете Delphi для веб-приложение, вы получите следующие преимущества:
- производительность по сравнению с другими языками сценариев.
- повторное использование кода Delphi.
- работа в отличной среде IDE.
- используйте свой любимый язык (Delphi).
- Если вы используете Intraweb, вы можете получить встроенную поддержку AJAX и producative, не требуя глубоких знаний в веб-или JavaScript.
но disadvange:
- развертывание непросто, вам нужно работать с ISAPI & IIS, и вы редко найдете хостинг copmany, который предлагает ISAPI для вас.
- только платформа windows, (Если вы используете freePascal вы можете получить другие).
- нет фреймворков, нет библиотек для помощи вам на этой стороне.
- очень плохая документация на этой стороне, и большинство статей старые.
- работа с Webbroker не продуктивна по сравнению с другими решениями, такими как Asp.Net.
- даже если вы используете Intraweb, он более продуктивен, чем другие решения, но не является гибким, потому что он скрывает веб-сторону на вас.
кстати, Shareit заменил их старый веб-applicatoin, который был основан на PHP, на более новый, построенный с Delphi и Intraweb.
причиной может быть то, что ваша модель, бизнес-логика или уровень доступа к данным написаны на Delphi, и вам нужно использовать это в своем веб-приложении. Al tough, вы можете использовать свою модель, бизнес-логику или уровень доступа к данным с других языков программирования через такие вещи, как dll-вызовы, COM, REST или SOAP. Тогда это не повод использовать Delphi для разработки веб-приложений.
другой причиной может быть то, что разработчики очень хороши в Delphi и менее хороши с другими языки.
использование скомпилированного языка также дает вам преимущество в производительности по сравнению с интерпретируемыми языками, такими как php, rails и asp.
Delphi имеет много сильных сторон, но его возможности веб-приложений не учитываются среди этих IMO. Это именно из-за скомпилированного кода, который он генерирует. Среди прочих:
- Если вы не контролируете сервер(скажем, он размещен вашим провайдером), может быть почти невозможно установить скомпилированный код. Скриптовые языки принимаются почти всеми веб-хостами, о которых я могу думать.
- есть некоторые особенности, связанные с использованием DLL из ваши приложения ISAPI. Например, при загрузке библиотеки с помощью LoadLibrary текущей папкой является C:\Windows\System32 что может быть удобно, если вы вызываете существующий код, который ожидал, что DLL будут находиться в текущей папке.
- более новые версии IIS также имеют некоторые функции безопасности, которые делают их неудобными. Существует параметр" защита приложений", который должен быть установлен на самый низкий параметр, и все утвержденные расширения ISAPI должны быть отдельно включены. На сервере, с которым Вы делитесь у других есть большой потенциал для катастрофы.
Delphi Prism может предложить больше, поскольку он может выполнять полный набор технологий, связанных с .NET, включая MVC и Silverlight. Я уже делаю все свои веб-службы на C#, и если бы мне пришлось начать новый веб-проект, Delphi Prism или Visual C# были бы моим выбором.
Я успешно развернул несколько коммерческих приложений на протяжении многих лет, используя Delphi для создания dll ISAPI. Доводы, которые я использовал для выбора Дельфи, были просты. Мы были магазином Delphi, и количество времени, потраченного на кодирование, было значительно сокращено, выбрав Delphi в качестве нашего движка с некоторым Javascript на стороне клиента на стороне браузера. Большая часть требуемых функций связана с вызовами в серверную базу данных, которая должна оставаться зашифрованной, чтобы уменьшить возможное воздействие роботов.
Если вы решите пойти по этому пути, я настоятельно рекомендую использовать idDebugger инструмент для помощи в отладке. Это действительно снимает боль.
замечательный ассортимент инструментов и методов создания богатых веб-приложений. Также он поддерживает все современные технологии. Таким образом, вы можете свернуть любой тип приложения / веб-приложения, которое вы можете придумать. У меня много примеров.