Имея за плечами все больше и больше проектов, я обнаружил, что часто повторяю много общих задач от проекта к проекту, от клиента к клиенту. Итак, я начал собирать «служебную» библиотеку, коллекцию этих общих элементов, которые часто повторяются от проекта к проекту.
Пока что у меня есть утилиты для изменения размера изображений, экспорта сеток данных в Excel, отправки электронных писем и замены токенизированных сообщений.
Если бы вы создавали / использовали библиотеку служебных классов .NET, какие типы процессов вы бы сочли полезными? Какие пространства имен / группы вы бы себе вообразили?
Обновлять
Я говорю о реальной библиотеке классов, разделенной на пространства имен для группировки общих элементов.





Лично я бы поместил некоторые из этих функций в отдельные библиотеки, поскольку «полезность» - это довольно субъективный термин, и то, что один человек считает полезным, не так полезно для другого.
Если бы в библиотеке он был разбит на описательные пространства имен, я бы сказал, что это лучше (например, изменение размера изображений будет в каком-то пространстве имен .Drawing или в .Drawing.dll).
Я полностью согласен с пунктом 3.
Где-то я недавно читал, что его нельзя использовать повторно, пока он не будет использован один раз, и повторно использовать еще два раза (всего 3 раза).
Роджер, очень хорошее замечание. Что бы вы посоветовали для наименования. Из предметов, которые я включил до сих пор, они были повторно использованы в 10-20 проектах.
Хотя я сам только начинающий разработчик, я обнаружил, что функции RegEx и фильтры SQL весьма полезны. У меня также есть функция репликации слиянием для MSSQL, которая до сих пор мне очень пригодилась.
В моей библиотеке классов много вещей, которыми я делюсь между проектами:
Tuple<..> и т. д.Set<T>, Heap<T>, а также множество служебных методов для работы с различными типами коллекций.Библиотека классов добавляется, когда мне нужно больше материала.
Я бы посоветовал вместо «служебной» библиотеки просто создать библиотеки для конкретной области (графика, аутентификация, проверка и т. д.) И включать их только там, где они необходимы. Ключевым моментом, конечно же, является то, насколько конкретным будет. Как правило, чем больше конкретность, тем лучше.
Независимо от того, что у него нет домена, вы, вероятно, не понимаете его полностью, что означает, что вы должны сначала переоценить то, что вы делаете и пытаетесь достичь.
Также помните, что то, что полезно в одном или двух проектах, может оказаться полезным только в одном или двух проектах. Добавление большего количества классов, чем необходимо, только вызовет проблемы с обслуживанием в будущем.
Ой, я пропустил что-то важное в своем посте, я говорил о библиотеке, а не о классе. Я разделил элементы на различные пространства имен / классы, чтобы сгруппировать похожие элементы вместе.