В Delphi я должен добавить совместно используемые устройства к своим проектам к общему пакету или ни одному?

Во-первых, вы не сможете предотвратить спам, на самом деле. Вот почему у нас есть такие сложные меры против спама в настоящее время.

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

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

Насколько мне известно, прошло много раз (десятилетий) с тех пор, как браузерные вызовы formmail.cgi стали обычной практикой.

7
задан Community 23 May 2017 в 10:33
поделиться

5 ответов

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

Что касается добавления их в файлы проекта: Я обычно добавляю некоторые единицы, которые я часто доступ (или для расширения или для ссылки) от IDE до проекта, и пропускает других для компилятора для выбора использования пути поиска. Я делаю это на на основание проекта, которое означает, некоторые единицы могут быть частью нескольких проектов, почему нет?

Помещение их в пакет только имеет смысл, если Вы на самом деле хотите создать основанное на пакете приложение, иначе, почему беспокойство?

Для большего количества информации о том, как я организую свои проекты и библиотеки, см. http://www.dummzeuch.de/delphi/subversion/english.html

8
ответ дан 6 December 2019 в 08:17
поделиться

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

Также используйте хороший инструмент сборки, чтобы сделать автоматизированные сборки, таким образом, Вы узнаете достаточно скоро, повреждаете ли Вы что-то.

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

4
ответ дан 6 December 2019 в 08:17
поделиться

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

Когда совместно используемые файлы вместо этого разделены на свою собственную библиотеку (пакет), затем существует немного дополнительного барьера для редактирования их. Я полагаю что хорошая вещь. Это будет легкое напоминание, что Вы переключаетесь от определенного для проекта кода до общего кода. Можно использовать группы проекта, чтобы позволить Вам сохранить каждый вместе в единственном экземпляре IDE. расположите проекты библиотеки перед исполняемыми проектами. "Сборка вся" команда создаст все в порядке, начиная с первого проекта.

Разделите свои файлы DCU из Ваших файлов ПЕРВЕНСТВА. Можно сделать это легко путем установки "выходного каталога DCU" опция проекта отправить единицы пакета в некоторое другое местоположение. Затем помещенный, что целевой каталог на "путь поиска" Ваших других проектов. Они найдут DCU, но они не найдут файл ПЕРВЕНСТВА, и таким образом, никакой другой проект случайно не перекомпилирует единицу, которая не является действительно участником.

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

5
ответ дан 6 December 2019 в 08:17
поделиться

Я обычно создаю пакет со всем совместно используемым устройством и просто использую единицы. Если Вы явно не отметите "Сборку с пакетами времени выполнения" содержание пакета (то все используемый dcu's) будет связан с Вашим проектом как любая другая единица.

3
ответ дан 6 December 2019 в 08:17
поделиться

Я только использовал бы пакеты во время выполнения, если бы у Вас на самом деле было два двоичных файла, которые, как предполагалось, работали на той же реальной машине, и это совместно использовало некоторый код. Следует иметь в виду, что пакеты во время выполнения являются главным образом бескомпромиссным подходом. После того как Вы решаете использовать их, Вы больше не будете также мочь связать RTL и единицы VCL прямо в Ваши проекты и должны будете вместо этого развернуть их отдельно также.

Однако пакеты могли бы все еще быть хорошим решением Вашей проблемы в сочетании с группами проекта, которая является точно, что я делаю. Я ненавижу, включая совместно используемые устройства в несколько проектов. Включая совместно используемые устройства в пакете (но не компиляция Ваших фактических проектов с пакетами во время выполнения) позволяет Вам добавлять что пакет к Вашей группе проекта так Вы (и IDE!) будет всегда иметь их легкодоступными все же приятно разделенный от определенного для проекта кода. Строго говоря Вы никогда не должны даже компилировать те пакеты. Они могут просто служить организационной единицей в менеджере проектов.

Обратите внимание, что для Находки в Файлах, можно также указать "во всех файлах в группе проекта"

2
ответ дан 6 December 2019 в 08:17
поделиться
Другие вопросы по тегам:

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