Как решить, когда реализовать DLL? - PullRequest
3 голосов
/ 06 июля 2010

В какой момент вы решаете, что некоторые из ваших подпрограмм и общего кода должны быть помещены в библиотеку классов или DLL?В одном из моих приложений я хотел бы разделить часть своего общего кода между различными проектами (как мы все знаем, это программирование грех для дублирования кода ).мой код все в одном проекте.У меня также есть одна небольшая утилита, которая отделена от основного исполняемого файла и работает с повышенными правами доступа с единственной целью.Два элемента имеют, как правило, три общие подпрограммы.Должны ли эти общие подпрограммы быть размещены и вызваны из библиотеки классов?Как вы решаете, когда делать это?Когда у вас есть хотя бы одна общая подпрограмма?Двадцать с лишним строк кода?

Я не верю, что это должно зависеть от языка или фреймворка, но если это так, я использую .NET Framework.

Ответы [ 2 ]

1 голос
/ 08 июля 2010

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

В общем, я использую следующее правило:

  • Для простого дублирования кода (пара простых 1-2-строчных функций, которые легко понять и отладить) Я просто скопирую и вставлю код.

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

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

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

0 голосов
/ 06 июля 2010

Если код используется несколькими приложениями, он должен находиться в библиотеке DLL или библиотеке классов.

Для более крупного приложения вам также может потребоваться разбить разные подсистемы приложения на отдельные библиотеки.Таким образом, каждый проект может сосредоточиться на одной конкретной задаче.Это упрощает структуру вашего приложения и облегчает поиск любого фрагмента кода.Например, у вас может быть приложение с графическим интерфейсом пользователя с различными библиотеками DLL (проекты .NET) для:

  • Работа с определенным сетевым протоколом
  • Доступ к общему коду, например служебные классы
  • Доступ к устаревшему коду (через PInvoke)
  • и т. Д. *
...