8
Karma
37.6
Rating
Пьянков Сергей Михайлович @SergeyPyankov

Delphi- и SQL-разработчик

Использование FPC-библиотеки «InternetTools» в Delphi

0
Последний раздел — «Освобождение ресурсов» — теперь, скорее всего, становится неактуальным — была сделана доработка по автоматическому освобождению в некоторых случаях.

Использование FPC-библиотеки «InternetTools» в Delphi

0
  1. InternetTools не является простой, состоящей из нескольких модулей, библиотекой: если брать в расчёт только inc- и pas-файлы, то их общее количество составит около 65-и, а размер примерно 5,5 МБ.
  2. Специфичность и низкоуровневость некоторых модулей: в качестве образца можно привести bbutils.pas, который способен подарить разработчику, до этого использовавшему строки только в прикладном ключе, новые неожиданные «удовольствия».
  3. Вопрос качества. Хотя библиотека и содержит автотесты (тоже, к слову, требующие портирования), их успешное прохождение не гарантирует отсутствия таких проблем, как, например, утечки памяти — это потребует отдельных тестовых сценариев.

Косвенно трудоёмкость задачи можно оценить из того факта, что запрос на портирование существует уже 5 лет, однако до сих пор ни автор InternetTools, ни кто-то ещё подобное не сделали.

Использование FPC-библиотеки «InternetTools» в Delphi

+1
Если у читателя остались вопросы касательно тонкостей взаимодействия с DLL (т. е. не по InternetTools), то рекомендую серию статей, которая послужила основой для данной.

Создание сайта на Delphi, или Как использовать uniGUI по-минимуму

+2
Jef239 и DrPass, прошу прощения за вмешательство в ваш диалог, но, как мне кажется, он довольно далеко ушёл от темы статьи и содержит очень мало полезной информации для её читателей (в том числе зря отвлекая подписавшихся на комментарии). Может быть стоит перенести разговор в личную переписку?..

[Перевод] Обработка ошибок и транзакций в SQL Server. Часть 1. Обработка ошибок – быстрый старт

0
Почему-то в статье не упомянут способ, избавляющий от необходимости указывать конструкцию SET XACT_ABORT ON в каждой процедуре, — он заключается в настройке нужного поведения сразу для всего сервера:

  1. Графически, через интерфейс SSMS, это настраивается так:

  2. Скрипт для того же самого выглядит следующим образом (значение 16384 подходит только для случая на снимке выше, т. к. представляет собой битовую маску, поэтому иная комбинация параметров потребует другого числа):

    EXEC sys.sp_configure N'user options', N'16384'
    GO
    RECONFIGURE WITH OVERRIDE
    GO

Создание сайта на Delphi, или Как использовать uniGUI по-минимуму

Создание сайта на Delphi, или Как использовать uniGUI по-минимуму

0
По итогам этого диалога были внесены правки в раздел «Постановка проблемы», более точно очерчивающие применимость подхода из статьи.

Создание сайта на Delphi, или Как использовать uniGUI по-минимуму

0
Дело в том, что в статье не отражена некоторая подоплёка: изначально никакой ручной вёрстки не планировалось, однако после того, как было сделано чуть больше половины работы (включая интерфейс и серверный код, ответственный за доступ к данным), из-за одной проблемы с uniGUI, которую так и не удалось решить, пришлось применить описанный в статье подход, сохранив, что крайне важно и приятно, весь серверный код. Поэтому написанное — это положительная иллюстрация того, что библиотека позволяет при острой необходимости проделать такую радикальную замену.

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

Создание сайта на Delphi, или Как использовать uniGUI по-минимуму

0
а как обстоит дело с состоянием(state), если делать приложение с web интерфейсом
Если правильно понял вопрос, то дело с состоянием вполне обстоит — при каждом обращении к веб-приложению (речь идёт о SPA) создаётся своя сессия в новом потоке, которая может хранить любые нужные ей данные (то самое состояние); если представить, что пользователь открыл, скажем, 3 вкладки такого сайта, то на сервере появится та же троица сессий.
многопотчность при standalone server
Данный тип сервера ничем не отличается в этом плане от прочих — на каждую сессию будет автоматически создан свой поток.

Создание сайта на Delphi, или Как использовать uniGUI по-минимуму

0
Уточните — что в итоге получается от компиляции проекта? И как оно потом подключается к сайту.
Зависит от выбранного в мастере типа проекта:
  • Автономный (standalone) сервер и Windows-служба компилируются в исполняемый файл (exe), как такового подключения не требуют, т. к. сами себе и веб-сервер, и сайт — всё в одном флаконе.
  • ISAPI-модуль представляет собой DLL, которую необходимо добавить в сторонний веб-сервер. Сайт-агрегатор, упомянутый в статье, развёрнут именно в таком виде (на IIS).
Можно стандартно приладить туда обычные компоненты?
Если под «туда» имелась в виду форма, а под определение «обычные» подпадают визуальные VCL-компоненты, то нельзя, однако большинство невизуальных (например для работы с базами данных) — конечно можно.

Создание сайта на Delphi, или Как использовать uniGUI по-минимуму

0
Дополню ответ выше. С Delphi поставляются различные редакции IntraWeb, обладающие разными возможностями:
  • С Professional — Personal-редакция, в которой наиболее неприятное ограничение — 5 одновременных сессий.
  • С Enterprise и выше — Standard с не такими критичными запретами.

0+ / 18+ ставить или нет?

Борьба со сложностью в сетевом протоколе прикладного уровня

0
Насколько понимаю, Вы предлагаете полностью веб-решение, когда приложению (в том числе мобильному) отводится всего лишь роль контейнера для браузера; для несложных случаев — почему бы нет, но у синхронизации (да и всего проекта в целом) требования довольно разнообразны и специфичны (например, работа над списками без доступа к сети).

Борьба со сложностью в сетевом протоколе прикладного уровня

0
Не могли бы Вы уточнить, почему упомянули UniGUI? Её связь со статьёй довольно слаба — разве что эта библиотека использует в качестве транспорта HTTP, озвученный здесь в таком же качестве.

Тестирование БД мобильного Delphi-приложения

Выбор СУБД для мобильного Delphi-приложения

Выбор СУБД для мобильного Delphi-приложения

0
Изначально FireMonkey создавалась для полностью самостоятельной отрисовки интерфейса, но позже были добавлены некоторые родные компоненты у двух ОС: Windows и iOS; в дополнение к этому, для мобильных платформ есть как бесплатные наборы для построения родного интерфейса в Android и iOS, так и платный — но только под iOS.

Выбор СУБД для мобильного Delphi-приложения

0
Делфи выполняет компиляцию напрямую в машинные коды, причём это касается не только Android, но и всех поддерживаемых платформ. Никакие сторонние графические фреймворки тоже не используются — за отрисовку интерфейса отвечает собственная библиотека FireMonkey.

Выбор СУБД для мобильного Delphi-приложения

0
По меньшей мере FireDAC работает с указанной версией MySQL (не вижу причин, почему прочие универсальные библиотеки должны отставать в этом).

Выбор СУБД для мобильного Delphi-приложения