Eu vim de usar ASP.NET MVC / API da Web e agora estou começando a usar Angular, mas não estou certo de como misturá-los.
Depois de usar o Angular, os conceitos do lado do servidor MVC ainda fornecem algum valor? Ou devo usar estritamente a API Web apenas para obter dados para as chamadas HTTP angulares?
Qualquer dica que você tenha para um cara da ASP.NET MVC em transição para o Angular seria útil
asp.net-mvc
angularjs
asp.net-mvc-4
user2256870
fonte
fonte
Respostas:
Pure Web API
Eu costumava ser muito hardcore com ASP.NET MVC, mas desde que conheci o Angular, não vejo uma razão para usar qualquer estrutura de geração de conteúdo do lado do servidor. Pure Angular / REST (WebApi) oferece um resultado mais rico e suave. É muito mais rápido e permite que você crie sites que chegam bem perto de aplicativos de desktop, sem nenhum hacks funky.
O Angular tem uma pequena curva de aprendizado, mas assim que sua equipe o dominar, você construirá sites muito melhores em menos tempo. Principalmente, isso tem a ver com o fato de que você não tem mais todos esses problemas de estado (menos).
Por exemplo, imagine um formulário de assistente com qualquer estrutura tradicional do lado do servidor. Cada página deve ser validada e enviada separadamente. Talvez o conteúdo da página dependa dos valores de uma página anterior. Talvez o usuário tenha pressionado o botão Voltar e esteja reenviando um formulário anterior. Onde armazenamos o estado do cliente? Todas essas complicações não existem quando se usa Angular e REST.
Então ... venha para o lado negro ... nós temos cookies.
Pergunta semelhante
fonte
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:
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.
fonte
Depende do projeto em que você está trabalhando.
Se o angularJS for algo novo para você, prefiro escolher um pequeno projeto de baixo risco / pressão para começar e garantir que você aprenda a fazer as coisas da maneira certa (vi muitos projetos usando Angularjs errado por causa da pressão, dos prazos ... falta de tempo para aprender de forma adequada, por exemplo, usando JQuery ou acessando o DOM dentro dos controladores, etc ...).
Se o projeto for um campo verde, e você tiver alguma experiência em AngularJS, faz sentido abandonar o ASP.net MVC e no lado do servidor ir para REST / WebAPI puro.
Se for um projeto existente, você pode pegar um subconjunto complexo de funcionalidades e construir essa página como um aplicativo angularJS separado (por exemplo, seu aplicativo é composto de um grande grupo de páginas baseadas em Razor de complexidade simples / média, mas você precisa de um editor avançado / página, que pode ser a peça-alvo a ser construída com AngularJS).
fonte
Você pode usar o framework Angular para desenvolvimento de front-end, ou seja, para construir visualizações. Ele fornece a você uma arquitetura robusta e, uma vez que você aprenda, encontrará suas vantagens em relação ao mecanismo de visualização de navalha do Asp.net MVC. Para buscar dados, você deve usar WebAPIs e agora o projeto ASP.Net MVC suporta controladores WebAPI e MVC prontos para uso. Você pode consultar o link abaixo com o desenvolvimento de aplicativos Angular e ASP.Net MVC.
http://hive.rinoy.in/angular4-and-asp-net-mvc-hybrid-application/
Existem duas estruturas atualmente disponíveis para desenvolver componentes de UI para aplicativos angulares. Usei esses dois frameworks em um dos projetos angulares que trabalhei.
Material https://material.angular.io/
PrimeNG https://www.primefaces.org/primeng/#/
fonte