Vengo de usar ASP.NET MVC / Web API y ahora estoy comenzando a usar Angular, pero no tengo claro la forma correcta de mezclarlos.
Una vez que estoy usando Angular, ¿los conceptos del lado del servidor MVC todavía proporcionan algún valor? ¿O debería usar estrictamente la API web únicamente para obtener datos para las llamadas HTTP angulares?
Cualquier consejo que tenga para un tipo de ASP.NET MVC que haga la transición a Angular sería útil
asp.net-mvc
angularjs
asp.net-mvc-4
user2256870
fuente
fuente
Respuestas:
API web pura
Solía ser bastante duro con ASP.NET MVC, pero desde que conocí a Angular no veo una razón por la que usaría ningún marco de generación de contenido del lado del servidor. Pure Angular / REST (WebApi) ofrece un resultado más rico y suave. Es mucho más rápido y le permite crear sitios web que se acercan bastante a las aplicaciones de escritorio, sin ningún tipo de trucos.
Angular tiene una pequeña curva de aprendizaje, pero una vez que su equipo la domine, creará sitios web mucho mejores en menos tiempo. Principalmente, esto tiene que ver con el hecho de que ya no tiene todos estos problemas de estado (menos).
Por ejemplo, imagine un formulario de asistente con cualquier marco tradicional del lado del servidor. Cada página debe validarse y enviarse por separado. Quizás el contenido de la página dependa de los valores de una página anterior. Quizás el usuario presionó el botón de retroceso y está volviendo a enviar un formulario anterior. ¿Dónde almacenamos el estado del cliente? Todas estas complicaciones no existen cuando se usa Angular y REST.
Entonces ... ven al lado oscuro ... tenemos galletas.
Pregunta similar
fuente
AngularJS está más asociado con el paradigma de la aplicación de una sola página y, como tal, no se beneficia mucho de las tecnologías del lado del servidor que representan el marcado. No hay ninguna razón técnica que le impida usarlos juntos, pero en un sentido práctico, ¿por qué lo haría?
Un SPA recupera los activos que necesita (vistas JS, CSS y HTML) y se ejecuta por sí solo, comunicándose con los servicios para enviar o recuperar datos. Por lo tanto, una tecnología del lado del servidor sigue siendo necesaria para proporcionar esos servicios (así como otros medios como la autenticación y similares), pero las partes de representación son en gran medida irrelevantes y no particularmente útiles porque es una duplicación de esfuerzos, excepto que MVC lo hace. en el lado del servidor y Angular lo hace en el cliente. Si está utilizando Angular, lo desea en el cliente para obtener mejores resultados. Puede crear formularios HTML de publicación de Angular y recuperar vistas parciales de las acciones de MVC, pero se estaría perdiendo las mejores y más fáciles funciones de Angular y le haría la vida más difícil.
MVC es bastante flexible y puede usarlo para atender llamadas desde una aplicación SPA. Sin embargo, WebAPI está más finamente ajustado y es un poco más fácil de usar para tales servicios.
He escrito una serie de aplicaciones AngularJS, incluidas algunas que migraron desde aplicaciones WebForms y MVC preexistentes, y el aspecto ASP.NET evoluciona hacia una plataforma para entregar la aplicación AngularJS como el cliente real y para alojar la capa de la aplicación. el cliente se comunica a través de REST (usando WebAPI). MVC es un buen marco, pero generalmente se encuentra sin trabajo en este tipo de aplicaciones.
La aplicación ASP.NET se convierte en una capa más de la infraestructura, donde sus responsabilidades se limitan a:
Otra gran ventaja de un SPA es que puede aumentar el ancho de banda de su equipo. Un grupo puede explotar los servicios mientras que el otro se encuentra en la aplicación cliente. Dado que puede copiar o simular servicios REST fácilmente, puede tener una aplicación de cliente completamente funcional en servicios simulados y cambiar por los reales cuando terminen.
Tienes que invertir por adelantado en Angular, pero vale la pena. Como ya está familiarizado con MVC, tiene una ventaja sobre algunos de los conceptos básicos.
fuente
Depende del proyecto en el que esté trabajando.
Si angularJS es algo nuevo para usted, preferiría elegir un pequeño proyecto de bajo riesgo / presión para comenzar y asegurarme de que aprenda a hacer las cosas de la manera correcta (he visto muchos proyectos que usan Angularjs incorrectamente debido a la presión, los plazos ... falta de tiempo para aprenderlo de forma adecuada, por ejemplo, utilizando JQuery o accediendo al DOM dentro de los controladores, etc ...).
Si el proyecto es de campo verde y tiene algo de experiencia en AngularJS, tiene sentido abandonar ASP.net MVC y en el lado del servidor optar por REST / WebAPI puro.
Si se trata de un proyecto existente, puede elegir un subconjunto complejo de funcionalidades y crear esa página como una aplicación angularJS separada (por ejemplo, su aplicación está compuesta por un gran grupo de páginas estándar basadas en Razor de complejidad simple / media, pero necesita un editor avanzado / página, que podría ser la pieza de destino para construir con AngularJS).
fuente
Puede usar el marco Angular para el desarrollo de front-end, es decir, para construir vistas. Le proporciona una arquitectura robusta y una vez que aprenda, encontrará sus ventajas sobre el motor de vista de maquinilla de afeitar de Asp.net MVC. Para obtener datos, debe usar WebAPI y ahora el proyecto ASP.Net MVC admite controladores WebAPI y MVC listos para usar. Puede consultar el siguiente enlace que comienza con el desarrollo de aplicaciones Angular y ASP.Net MVC.
http://hive.rinoy.in/angular4-and-asp-net-mvc-hybrid-application/
Actualmente hay dos marcos disponibles para desarrollar componentes de interfaz de usuario para aplicaciones angulares. He usado estos dos marcos en uno de los proyectos angulares en los que trabajé.
Material https://material.angular.io/
PrimeNG https://www.primefaces.org/primeng/#/
fuente