Eu venho usando o ASP.NET MVC / Web API e agora estou começando a usar o Angular, mas não estou claro sobre a maneira correta de combiná-los.
Depois de usar o Angular, os conceitos do lado do servidor MVC ainda fornecem algum valor? Ou devo usar estritamente a API da Web para obter dados para as chamadas HTTP angulares?
Existe talvez um ponto de partida mais simples que eu deva usar se o modelo do VS estiver adicionando muitas coisas de que não preciso?
Eu gosto da ideia de uma divisão estrita do lado do servidor = dados puros e do cliente = processamento HTML puro.
javascript
mvc
asp.net-mvc
punkouter
fonte
fonte
Respostas:
A maneira mais fácil de pensar sobre isso é que o servidor atende a um estado. A Angular pode gerenciar a coleta das atualizações para esse estado e enviá-las para uma Web / API no servidor. Se você deseja acessar mais aplicativos de página única, o código do servidor seria apenas o estado inicial do seu aplicativo.
A API da Web é um excelente ponto de partida para inserir seus dados no aplicativo. Eventualmente, você atualizará os roteadores padrão para atender aos requisitos de design de seus ambientes e, se desejar, para ficar totalmente cheio.
Existem algumas bibliotecas que o ASP4 incluiu por padrão e essas também foram incluídas nos modelos MVC4. Realmente, existem muitas coisas incluídas na página que não são necessárias, além de incluídas no projeto e nunca referenciadas por suas páginas padrão. Você deve estar seguro removendo tudo, exceto o jQuery, e eu até vou remover o jQueryUI. Muitos dos padrões significam bem, mas quando você começar a preencher o conhecimento do domínio, usará bibliotecas que atendem às suas necessidades específicas.
Mesmo com uma divisão estrita, você encontrará que o lado do servidor mvc ainda é um suporte muito limpo para um aplicativo de página única. O roteamento eficaz para entregar sua página e suas chamadas de API é um excelente exemplo. Outro recurso útil são os controladores que retornam visualizações que não usam a página mestre ou são apenas uma visualização parcial. O Angular possui uma "visualização" que pode ser preenchida com um modelo, que pode ser um arquivo estático ou parcial de uma de suas rotas.
Li o seu comentário hoje cedo e reuni uma solução demo para mostrar o que eu mencionei originalmente. A solução também remove parte do "fluff" original. Ao adicionar o Angular e o Bootstrap, você obtém as bibliotecas principais e todas as derivações existentes. Essa é a vantagem de usar o nuGet.
Confira: https://github.com/QueueHammer/AngularWithPartialViewViews
Ao aprender Angular, achei o programa Angular-Seed bastante útil. Especialmente depois que experimentei as demos no site deles. O projeto de amostra é apenas diferente o suficiente para ajudá-lo a aprender. Depois disso, olhei para Angular-Exigir-Seed, mas esse é outro post. Passo a passo angular http://docs.angularjs.org/tutorial Semente angular: https://github.com/angular/angular-seed
fonte
Esses modelos de VS são bons para reduzir a configuração inicial e a curva de aprendizado no início, no entanto, você precisará personalizá-los para suas reais necessidades do projeto.
Por exemplo, neste site http://www.reviewstoshare.com , meu amigo usando
AngularJS
junto comASP.NET MVC
. Lembre-se de que este site já foi criado usando o ASP.MVC + Jquery para interação na página, conforme necessário.Por outro lado, ainda existe alguma natureza "Ajaxy" no site, como comentários, votação, sinalização etc. Não muito diferente do próprio Stackoverflow. Antes do AngularJS, havia uma confusão de plugins e funções do Jquery no
$(document).ready()
retorno de chamada, sem mencionar que o código JS não era muito testável.No geral, a combinação adequada de ambos torna o site liso e funcional.
Algumas boas referências para procurar:
fonte