Структура папок и классов в проекте C#

Разросся проект C# (visual studio) до пары десятков файлов cs. Хочется разложить их по папкам (файлы классов .cs) Как это сделать? Если можно то объясните подробнее, или дайте ссылку на правильную статью.

Из того что я нагуглил, одни ответы говорят что ничего не нужно делать, просто разложить по папкам, а другие пишут жуткие инструкции по переносу. Кому верить?


Ответы (1 шт):

Автор решения: VoidStack

Структура должна быть максимально простой и понятной не только вам, но и остальным. Один из возможных вариантов, это от файлов, которые хранят высокоуровневые методы, классы, и т.д. до низших. К примеру:

// Основные классы, которые будут дальше использоваться в проекте,
// реализующие некие интерфейсы.
Core -> (Interfaces) & (Classes)

// Тут будем хранить классы, которые используют уже основные классы,
// методы и т.д.
Сlasses -> { ... ... ...}

// Тут будем хранить кастомные контролы,
// которые будут реализовываться в проекте.
Controls -> { ... ... ...}

// Тут будем хранить формы, которые уже будут использовать (например)
// наши контролы, классы, методы, и т.д.
Forms -> { ... ... ...}

// Тут будем хранить какие-то стили, современные палитры цветов,
// которые мы хотим использовать в проекте.
Styles -> { ... ... ...}

// Тут будем хранить остальной полезный "хлам",
// который уже некуда приткнуть.
Other -> { ... ... ...}

Подключать наши расфасованные классы, стили и т.д. будем так:

using (namespace проекта).Core.Classes;
using (namespace проекта).Classes;

... и т.д.

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

P.S. Структурировать файлы необходимо начинать с самого начала разработки проекта, иначе могут возникнуть неприятные проблемы, связанные с названиями проектов, бесконечными перемещениями файлов из папки в папку - всё это до добра не доведёт.

→ Ссылка