Я написал портал ASP.NET WebForms для клиента. Проект как бы развивался, а не был должным образом спланирован и структурирован с самого начала. Следовательно, весь код объединяется в одном проекте и без каких-либо слоев. Теперь клиент доволен функциональностью, поэтому я хотел бы провести рефакторинг кода, чтобы быть уверенным в выпуске проекта. Поскольку существует много разных способов проектирования архитектуры, я хотел бы высказать несколько мнений о наилучшем подходе.
ФУНКЦИОНАЛЬНОСТЬ
Портал позволяет администраторам настраивать шаблоны HTML. Другие ассоциированные «партнеры» смогут отображать эти шаблоны, добавив код IFrame на свой сайт. В рамках этих шаблонов клиенты могут регистрироваться и приобретать продукты. API был реализован с использованием WCF, что позволяет внешним компаниям также взаимодействовать с системой. Раздел администратора позволяет администраторам настраивать различные функции и просматривать отчеты для каждого партнера. Система рассылает счета и уведомления по электронной почте клиентам.
СОВРЕМЕННАЯ АРХИТЕКТУРА
В настоящее время он использует EF4 для чтения / записи в базу данных. Объекты EF используются непосредственно в файлах aspx. Это облегчило быструю разработку, пока я писал сайт, но, вероятно, недопустимо поддерживать его таким, поскольку он тесно связывает БД с пользовательским интерфейсом. Специальная бизнес-логика была добавлена к частичным классам объектов EF.
ВОПРОСОВ
Целью рефакторинга будет сделать сайт масштабируемым, легко обслуживаемым и безопасным.
Какая архитектура будет лучше для этого? Пожалуйста, опишите, что должно быть на каждом слое, должен ли я использовать шаблон DTO / POCO / Active Record и т. Д.
Существует ли надежный способ автоматической генерации DTO / BO, чтобы любые будущие усовершенствования были простыми для реализации, несмотря на дополнительные уровни?
Было бы выгодно преобразовать проект из WebForms в MVC?