¿Es bueno usar Angularjs para aplicaciones de múltiples inquilinos?

Esta es una pregunta de diseño, por lo que mi respuesta será de alto nivel.

Una aplicación web del lado del cliente multiinquilino tendrá las siguientes variables, la mayoría de las cuales ya ha mencionado. Debe tomar dos enfoques generales sobre cómo proceder.

Establezca cuáles son las variaciones en cada una de las variables enumeradas a continuación por adelantado (tanto como sea posible).

Enfoque a) Si cree que las variaciones en las variables entre inquilinos son manageable cree 1 aplicación que maneje a todos los inquilinos. ¿Qué es manageable ? Puede hacer un ejercicio siguiendo las Variaciones de manejo en la sección de variables a continuación. Vea si puede manejar cosas por metadata . Esto se entiende al comprender las variaciones entre los inquilinos para cada una de las variables.

Enfoque b) Si cree que las variaciones son demasiadas, reconsidere hacer estas aplicaciones separadas. A medida que avanza puede encontrar algo en común. Puede volver a factorizar ese código como un módulo común y exponerlo como un artefacto bower (privado).

Enfoque a) Manejo de variaciones en las variables

1) Look & Feel – Skin Use un CSS por inquilino.

2) Datos Si el esquema JSON difiere, tiene un problema. Sugeriría simplemente ir al Enfoque b). Si ve algunos campos agregados + restados, está bien. Recomiendo crear el esquema JSON.

3) Formularios de entrada Recomiendo conducir los formularios desde el esquema JSON + algunos metadatos. ¿Sería capaz de usar el mismo templo AngularJS con un montón de ng-if, ng-switch para variaciones de inquilinos? Si no, entonces ve por FORMULARIO separado. ¿Estás terminando con demasiadas “FORMAS separadas”? Luego retroceda al Enfoque b).

4) Validación de formulario

Puede esquema JSON y decorarlo aún más con los atributos de validación. (No sé lo que ofrece su pila, pero en Java Bean las anotaciones de validación son bastante útiles: puede externalizarlas en el momento de la compilación y agruparlas con el cliente para que los campos de entrada de formularios puedan aplicar la validación de forma pragmática desde el esquema).

5) Flujo de trabajo Si ve que la lógica de enrutamiento cambia por cliente, use enrutadores angulares y defina las rutas por inquilino.

6) Informes Suponiendo que estas son algunas vistas que se adaptan por inquilino. ¿En qué se diferencian? Si puede usar ng-if / ng-switch sin desordenar las plantillas, puede hacerlo; de lo contrario, cree plantillas separadas, vistas (las rutas pueden ocuparse de las vistas).

7) i18n / l10n AngularJS tiene un montón de utilidades como $ locale, ngPluralize, varios filtros como moneda, datos, número. Pago AngularJS i18n

En resumen, un buen diseño de metadata , Validation decorated JSON schema y un good routing ([AngularJS routing ][2]) design diseño de good routing ([AngularJS routing ][2]) design lo ayudaría a mantenerlo como una sola aplicación multiinquilino que puede administrar durante una buena vida útil del producto.

Espero que esto responda sus preguntas y la mejor de las suertes con sus proyectos creativos. Si desea discutir sus ideas, siéntase libre de enviarme un mensaje directo a mí y feliz de conversar.

Aclamaciones,

Micro

Contrata a AngularJS Developer

¿Está utilizando la multitenancy en sentido estricto (Multitenancy), o simplemente quiere decir que tiene muchos clientes? HTTP (que es lo que usan todas las aplicaciones web, ya sea con páginas HTML tradicionales o angulares) no está realmente configurado para multitenencia porque es un protocolo sin estado. Creo que necesitas explicar más lo que realmente estás tratando de hacer.

Claro, ciertamente puedes hacer eso; La interfaz de usuario SaaS de mi empresa utiliza bootstrap y angular. Muchos tutoriales para aprender estas cosas. El back end puede ser cualquier tecnología que conozcas mejor. El arrendamiento simplemente se rastrea en el back-end a través de los datos adjuntos al token portador OAuth del usuario. Ese token se envía con cada solicitud utilizando el encabezado http “Autorización”, configurando el objeto $ http de angular.

Angular es solo un marco front-end de javascript. Funcionará con o sin bootstrap.

Como backend, construiría mi aplicación como una API json REST, luego es fácil de conectar con Angular.

Respuesta: Sí, está bien. Y es ampliamente utilizado por grandes aplicaciones.