Я недавно испытал то же самое на работе. Много специального кода, который нужно было структурировать и организовать.
Поначалу это очень сложно, потому что так много. Я думаю, что лучший совет, который я мог бы дать, это просто инвестировать в это время по ветру в пятницу днем, в течение пары недель я просто выбирал приложение / кусок кода, изучал, что там было Подумайте о том, что мы могли бы сделать универсальным, скопировать его, поместить в новую библиотеку, где бы я ни думал. После переноса всего кода в приложении я работаю над рефакторингом приложения для работы с общей средой. Это иногда приводило к проблемам, которые необходимо было исправить, но до тех пор, пока вы тщательно не сделаете это, оно не должно быть слишком большим. сделка.
Кусочек за штукой, это единственный способ сделать это.
С точки зрения структуры я пытался имитировать пространство имен MS, поскольку по большей части оно довольно логично (например, Company.Data , Company.Web , Company.Web.UI и т. Д.
Одним из основных преимуществ является, вероятно, количество удаленного дублирования кода. Да, в приложениях требовался небольшой рефакторинг, но базовая база кода намного меньше и во многих отношениях «умнее».
Еще одна вещь, которую я заметил, это то, что у меня часто бывают проблемы с попыткой выяснить , куда поместить материал (в терминах пространства имен), так как я не был уверен, к чему он принадлежит. Теперь это действительно касалось меня, я считал его таким неприятным запахом. С тех пор как все перестроилось, теперь все гораздо приятнее. А с (в настоящее время очень небольшим количеством) кода, специфичного для приложения, они помещаются в Company.Applications.ApplicationName Это помогает мне действительно больше думать о бизнес-объектах, так как я не хочу слишком много в этом пространстве имен, поэтому я придумываю более гибкие конструкции.
Извините за длинный пост .. Это вроде бессвязно!