2010-06-08 10 views
7

No dude en responder la pregunta en el título tan generalmente como lo planteé, ofrezco algunos detalles más y detalles a continuación.Formas de superar el efecto de la plataforma interna mientras sigue creando aplicaciones web altamente personalizadas?

Actualmente desarrollo y mantengo una aplicación empresarial algo heredada (ASP/SQL) que es altamente personalizable y permite una personalización moderada a completa en: campos personalizados, formularios, vistas, informes, acciones, eventos, flujos de trabajo, etc. Esta personalización es necesario en el dominio que desarrollamos y nos ha permitido construir un nicho.

He estado leyendo sobre el efecto de plataforma interna y las formas de implementar la personalización de alto nivel definida por el usuario y he llegado a la conclusión de que sufrimos muchos de los problemas de efecto de plataforma interna porque esencialmente hemos creado una abstracción de alto nivel parte superior del SQL. La organización de los campos personalizados se lleva a cabo de una manera similar al enfoque encontrar aquí

http://blog.springsource.com/arjen/archives/2008/01/24/storing-custom-fields-in-the-database/

Utilizamos algo similar al método descrito meta base de datos en dicho artículo. Toda la personalización se basa en este enfoque y, en muchos sentidos, sufrimos de una base de datos en la parte superior de una base de datos.

El resultado final es algo que se ve fantástico en el papel, sin embargo, cuantas más funciones se agregan y se realiza una codificación personalizada para los clientes, más se vuelve un desastre. Parece que cuanto más leo, más me doy cuenta de que esto es una especie de antipatrón. También parece que cuanto más trato de leer, más descubro que se ha escrito muy poco sobre el tema. De todos modos, estoy tratando de aprender acercamientos modernos a este problema y tratando de encontrar más discusión/artículos sobre el tema. ¿Los sistemas de bases de datos como CouchDB son relevantes para este tipo de aplicación?

Mi pregunta es claramente bastante general. Parece que hay mucho en contra de este tipo de aplicación a favor de simplemente "conocer y definir mejor tu dominio". ¿Hay alguna forma buena/mejor de implementar este tipo de aplicación? No estoy buscando respuestas en blanco y negro, y cualquier lectura adicional sobre el tema sería fantástica. Gracias por cualquier ayuda.

Respuesta

1

Mi respuesta es: ser consciente y claro sobre qué es lo que debe hacer un complemento y qué es una configuración de usuario. En ese caso, su plataforma y su configuración son diferentes. Su aplicación proporciona servicios básicos y es descaradamente una plataforma. También puede proporcionar una aplicación creada en esa plataforma.

Por lo tanto, en ese caso se centra en las interfaces del programador en lugar de las posibilidades de implementación.

1

El consejo estándar en CS es crear otro nivel de abstracción, no estoy seguro si ese no es el problema aquí. El único consejo que puedo dar es que aplique tanta funcionalidad en la base de datos, dado que es la plataforma. SQL Server admite funciones personalizadas, fields y procedimientos almacenados (SQL). O eso o intente extraer funcionalidad repetida en funciones separadas en ASP.

Cuestiones relacionadas