O AngularJS está mais associado ao paradigma de aplicativo de página única e, como tal, não se beneficia muito das tecnologias do lado do servidor que renderizam marcação. Não há nenhuma razão técnica que impeça você usá-los juntos, mas em um sentido prático, por que você faria isso?
Um SPA recupera os ativos de que precisa (visualizações JS, CSS e HTML) e é executado por conta própria, comunicando-se com os serviços para enviar ou recuperar dados. Portanto, uma tecnologia do lado do servidor ainda é necessária para fornecer esses serviços (bem como outros meios, como autenticação e similares), mas as partes de renderização são amplamente irrelevantes e não particularmente úteis porque são uma duplicação de esforços, exceto pelo MVC no lado do servidor e o Angular faz isso no cliente. Se você estiver usando o Angular, você o deseja no cliente para obter melhores resultados. Você pode criar formulários HTML de postagem no Angular e recuperar visualizações parciais de ações MVC, mas estaria perdendo os melhores e mais fáceis recursos do Angular e tornando sua vida mais difícil.
MVC é bastante flexível e você pode usá-lo para atender chamadas de um aplicativo SPA. No entanto, a WebAPI é mais ajustada e um pouco mais fácil de usar para esses serviços.
Eu escrevi vários aplicativos AngularJS, incluindo alguns que migraram de aplicativos WebForms e MVC pré-existentes, e o aspecto ASP.NET evolui para uma plataforma para entregar o aplicativo AngularJS como o cliente real e para hospedar a camada de aplicativo o cliente se comunica via REST (usando WebAPI). MVC é uma boa estrutura, mas geralmente fica sem trabalho nesse tipo de aplicativo.
O aplicativo ASP.NET torna-se outra camada da infraestrutura, onde suas responsabilidades são limitadas a:
- Hospede o contêiner de dependência.
- Conecte as implementações da lógica de negócios ao contêiner.
- Configure pacotes de recursos para JS e CSS.
- Hospedar serviços WebAPI.
- Garanta a segurança, execute registros e diagnósticos.
- Interface com caches de aplicativos para desempenho.
Outra grande vantagem de um SPA é que ele pode aumentar a largura de banda de sua equipe. Um grupo pode explodir os serviços enquanto o outro configura o aplicativo cliente. Como você pode facilmente criar um stub ou simular serviços REST, pode ter um aplicativo cliente totalmente funcional em serviços simulados e trocá-los pelos reais quando estiverem prontos.
Você precisa investir antecipadamente no Angular, mas compensa muito. Como você já está familiarizado com MVC, tem uma vantagem sobre alguns dos conceitos principais.