У меня есть большая коллекция статических классов «Утилита», которые содержат очень общие статические методы. Например, у меня есть класс CollectionUtility, в котором есть такие полезные методы, как:
общедоступная статическая пустота RemoveDuplicates (коллекция ICollection) ... и т. д.
В C# 3.0 я преобразовал их в методы расширения.
Я слышал некоторые разговоры о том, что в приложениях «корпоративного уровня» часто считается лучшей практикой избегать использования больших библиотек этих статических классов и методов. Я полагаю, что это может быть довольно сложно поддерживать.
Вопрос к тем из вас, кто работает над крупными корпоративными проектами для крупных компаний - поддерживаете ли вы библиотеки подобных служебных классов или нет? Что ты?
Нитпик: Не существует такого понятия, как «C# 3.5». Пожалуйста, обратитесь либо к «C# 3.0», либо к «.NET 3.5», либо к обоим.





Точно нет. Служебные модули со временем превращаются в большие коллекции грубого кода.
Я обычно помещаю такие вещи, как конфигурация и константы, только в одноэлементный или статический класс, потому что он никогда не изменится и с таким же успехом может быть «глобальным».
Конфигурация никогда не изменится?!? -1 Нет тебе супа.
Думаю, я не был достаточно ясным. Я имею в виду значения, которые никогда не изменятся в жизненном цикле приложения, например свойства для получения значений из web.config.
Я поддержу тебя из страны негатива, друг
Вы говорите о коде, который будет частью общей библиотеки. Статические методы действительно используются в общих библиотеках. Проверьте System.Linq.Enumerable
Я бы следовал этим рекомендациям:
Если вам нравится внедрение зависимостей, вы все равно можете это сделать. Код, основанный на статическом методе, может вместо этого вызывать Func (T, U) или действие, которое ссылается на этот статический метод.
I've heard some talk that in an 'enterprise level' application it is often considered best practice to avoid large libraries of these static classes and methods. I imagine that it could get quite hard to maintain.
IMHO, вы должны применять такие вещи, как дженерики, чтобы сократить размер ваших служебных методов / библиотек, и если вы используете служебный метод только в одном месте, то он не принадлежит общей библиотеке, но в конце дня у вас все еще, вероятно, будет довольно много.
Во всяком случае, это меня озадачивает. Если бы вы не поместили их в общую библиотеку, куда бы вы их поместили? Копировать / вставлять в каждый проект или что-то в этом роде?
Пожалуйста, пометьте вопросы, связанные с языком, с помощью языка.