Eu sou responsável por um grande site baseado em Asp.Net. Atualmente, é um site (não aplicativo da web), alguns serviços do Windows e várias bibliotecas de classes.
A camada de dados usa uma mistura de LLBLGEN e Linq To LLBGen, além de várias instâncias de SQL embutido herdado que não foram refatoradas.
Existem algumas implementações do tipo gerente, mas em muitos casos o aplicativo exibe o antipadrão da UI inteligente (ou seja, muita lógica de negócios no código por trás das classes)
O site tem tráfego razoavelmente alto e o desempenho é bom, mas estamos aumentando nossa capacidade de desenvolvimento para uma equipe de cerca de 10 pessoas e, cada vez mais, fica claro que precisamos de um design em camadas abrangente sobre o middleware existente.
Minha pergunta é por onde começar? Temos 10 anos de código (alguns deles ainda realmente migraram coisas do ASP Classic), muitas abordagens e estilos diferentes.
Refatorar toda a base de código não é realista e, provavelmente, não é desejável
Sei que não é uma situação nova, existem idéias ou conceitos úteis sobre como abordar esse problema?