Где я должен поместить мои утилиты?

Я очень новичок в Visual Studio и C #, и мне интересно, как лучше всего создать репозиторий сорта для служебных методов.

Например, нам нужен метод, который возвращает текущий финансовый год и другие значения для конкретной компании.

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

В python, например, я создал яйцо со всеми утилитами, которые затем устанавливаю в пакеты сайта.

6 голосов | спросил user39839 2 32011vEurope/Moscow11bEurope/MoscowWed, 02 Nov 2011 19:09:44 +0400 2011, 19:09:44

7 ответов


13

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

ответил Michael Wheeler 2 32011vEurope/Moscow11bEurope/MoscowWed, 02 Nov 2011 19:13:17 +0400 2011, 19:13:17
3

Я создаю создание DLL «Framework» в отдельном проекте /решении и ссылаясь при необходимости, сохраняя его обратно совместимым со своими собственными модульными тестами и т. д. Если требования являются специфичными для домена, то создайте еще один проект в текущем решении.

ответил 2 32011vEurope/Moscow11bEurope/MoscowWed, 02 Nov 2011 19:15:13 +0400 2011, 19:15:13
2

Я бы создал проект, в котором есть все утилиты, и вы ссылаетесь на него в других проектах.

Я снова добавлю специфические для компании вещи в отдельный проект.

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

ответил Jay 2 32011vEurope/Moscow11bEurope/MoscowWed, 02 Nov 2011 19:14:07 +0400 2011, 19:14:07
1

Мое предложение не беспокоиться об этом, пока вам не придется.

Создайте свои методы утилиты и поместите их в соответствующий класс в проект, который их требует. Я мог бы создать класс FiscalYear и отдельные классы для каждой области в «значениях конкретной компании». Не создавайте один класс, чтобы удерживать «значения, специфичные для конкретной компании», поскольку единственное, что эти ценности будут иметь общего, это то, что они «специфичны для компании».

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

ответил John Saunders 2 32011vEurope/Moscow11bEurope/MoscowWed, 02 Nov 2011 19:14:22 +0400 2011, 19:14:22
0

У нас есть большой набор веб-приложений в нашей команде и столкнулся с той же проблемой. Мы придумали очень высокоуровневую общую библиотеку «Утилиты приложений». Это содержит агностические функции /классы проекта. Итак, как вы предположили, date utlities, вещи, которые реплицировали некоторые из старых функций VB, которые я пропустил (String.Left, String.Right и т. Д.) И такие вещи.

Для каждого конкретного проекта у нас есть сборка BusinessLayer, которая содержит различную специфическую для проекта логику. В этом проекте нередко можно найти пространство имен «Utlities». Это будет содержать различные функции, специфичные для контекста приложения.

ответил marc 3 42011vEurope/Moscow11bEurope/MoscowThu, 03 Nov 2011 00:18:41 +0400 2011, 00:18:41
0

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

Вы можете использовать это предложение вместе с примечаниями @ marc и @ Bond выше, чтобы получить полный ответ на ваш вопрос.

ответил NoChance 3 42011vEurope/Moscow11bEurope/MoscowThu, 03 Nov 2011 01:07:03 +0400 2011, 01:07:03
-1

Не забывайте, что это Anti-Pattern. Поэтому лучше переосмыслить свое решение http : //lostechies.com/chrismissal/2009/06/01/anti-patterns-and-worst-practices-utils-class/

ответил KoolBuddhi 3 42011vEurope/Moscow11bEurope/MoscowThu, 03 Nov 2011 14:14:33 +0400 2011, 14:14:33

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132