asp.net-mvc angularjs asp.net-mvc-4

¿Mezcla de api angular y ASP.NET MVC/Web?



asp.net-mvc angularjs (4)

AngularJS está más asociado con el paradigma de la aplicación de una sola página, y como tal, no se beneficia mucho con las tecnologías del lado del servidor que hacen el marcado. No hay ninguna razón técnica que te impida usarlos juntos, pero en un sentido práctico, ¿por qué lo harías?

Un SPA recupera los activos que necesita (vistas JS, CSS y HTML) y se ejecuta solo, comunicándose a 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 los "me gusta"), pero las partes de renderizació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 usa Angular, lo quiere en el cliente para obtener mejores resultados. Puede hacer que Angular publique formularios HTML y recuperar vistas parciales de las acciones de MVC, pero se estaría perdiendo las mejores y más fáciles características de Angular y haciendo su 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 afinado y es un poco más fácil de usar para tales servicios.

Escribí varias aplicaciones de AngularJS, incluyendo una pareja que migró de aplicaciones WebForms y MVC preexistentes, y el aspecto de ASP.NET evoluciona hacia una plataforma para entregar la aplicación AngularJS como el cliente real, y para alojar la capa de aplicación el cliente se comunica a través de REST (usando WebAPI). MVC es un buen marco, pero generalmente se encuentra sin un trabajo en este tipo de aplicaciones.

La aplicación ASP.NET se convierte en otra capa de la infraestructura, donde sus responsabilidades se limitan a:

  • Aloja el contenedor de dependencia.
  • Conecte las implementaciones de la lógica de negocios al contenedor.
  • Configura paquetes de activos para JS y CSS.
  • Hospede los servicios de WebAPI.
  • Haga cumplir la seguridad, realice el registro y el diagnóstico.
  • Interfaz con cachés de aplicaciones para el rendimiento.

Otra gran cosa acerca de un SPA es que puede aumentar el ancho de banda de su equipo. Un grupo puede destruir los servicios mientras que el otro establece en la aplicación del cliente. Dado que puede tropezar fácilmente o burlarse de los servicios REST, puede tener una aplicación de cliente completamente funcional en servicios simulados y cambiarlos 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.

Vengo del uso de ASP.NET MVC / API web y ahora estoy empezando a utilizar Angular, pero no tengo claro cuál es la mejor manera de mezclarlos.

Una vez que estoy usando Angular, ¿los conceptos del lado del servidor MVC aún proporcionan algún valor? ¿O debería utilizar estrictamente la API web puramente para obtener datos para las llamadas angulares HTTP?

Cualquier sugerencia que tengas para un chico ASP.NET MVC que transite a Angular sería útil


Depende del proyecto en el que estés trabajando.

Si angularJS es algo nuevo para usted, prefiero elegir un pequeño proyecto de bajo riesgo / presión para comenzar y asegurarme de que aprende a hacer las cosas bien (he visto muchos proyectos que utilizan Angularjs incorrecto debido a la presión, los plazos ... falta de tiempo para aprenderlo de manera adecuada, por ejemplo, usando JQuery o accediendo al DOM dentro de los controladores, etc ...).

Si el proyecto es uno de campo verde, y usted tiene alguna experiencia en AngularJS, tiene sentido abandonar ASP.net MVC y en el lado del servidor ir por puro REST / WebAPI.

Si se trata de un proyecto existente, puede seleccionar un subconjunto complejo de funciones y compilar esa página como una aplicación angularJS independiente (por ejemplo, su aplicación se compone de un gran grupo de páginas basadas en Razor estándar de complejidad simple / media, pero necesita un editor avanzado / página, esa podría ser la pieza objetivo para construir con AngularJS).


Puede usar el marco angular para el desarrollo del front-end, es decir, para construir vistas. Le proporciona una arquitectura robusta y, una vez que aprenda, encontrará sus ventajas sobre el motor Asp.net MVC con vista de maquinilla de afeitar. Para obtener datos, debe usar WebAPI y ahora el proyecto ASP.Net MVC es compatible con los controladores WebAPI y MVC listos para usar. Puede consultar a continuación el inicio del enlace 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/#/


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 cualquier marco de generación de contenido del lado del servidor. Pure Angular / REST (WebApi) brinda 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 truco funky.

Angular tiene una pequeña curva de aprendizaje, pero una vez que su equipo la domine, construirá sitios web mucho mejores en menos tiempo. Principalmente esto tiene que ver con el hecho de que ya no tienes todos estos problemas de estado (menos).

Por ejemplo, imagina un formulario de asistente con cualquier marco de servidor tradicional. Cada página debe validarse y enviarse por separado. Tal vez el contenido de la página depende de los valores de una página anterior. Tal vez el usuario presionó el botón Atrás y vuelve 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