Respuesta corta: Drupal es muy adecuado para construir algo así, especialmente si está dispuesto a integrar su aplicación/lógica en Drupal como un conjunto de módulos personalizados. Por otro lado, integrar Drupal en una aplicación externa también se puede hacer, pero te dará más fricción, ya que la arquitectura de Drupal está orientada a ser un framework por derecho propio.
Respuesta larga: tengo una opinión más o menos opuesta/experiencia en comparación con Palantirs. He estado trabajando casi exclusivamente con Drupal desde hace un año, en el contexto de dos proyectos "emprendedores" bastante complejos (después de varios años de uso 'en el lateral' para cosas más pequeñas). Aunque estoy de acuerdo en que impone algunas reglas rígidas (¡pero no límites!), Considero que esto es una ventaja, ya que esas reglas brindan una guía clara y brindan formas probadas de cómo hacer las cosas. Las tres partes Palantir menciona son buenos ejemplos de esto: sistema de
- Menú - Proporciona un mecanismo de reenvío bien estructurado y eficaz que es fácil de extender con su propio material, mientras que da gran flexibilidad para ajustar/manipular caminos/por defecto existente . (Tenga en cuenta que el 'sistema de menú' en Drupal denota todo el tema de la administración de su espacio de URL, no solo el subconjunto de menús 'visibles' que generalmente se asocia con el término)
- API de formularios: un enfoque declarativo de formularios web, con un flujo de trabajo de procesamiento bien diseñado y una gran cantidad de características de seguridad integradas que de otra manera tendrías que cuidar de ti mismo. También altamente extensible, con opciones directas para ajustar/extender formularios ya existentes bajo demanda, agregar nuevas reglas de validación a cualquier campo o formas enteras, formularios de pasos múltiples, ajustes de formulario basados en JavaScript, etc.
- Sistema de traducción - Esto es bastante complejo, simplemente porque la internacionalización es muy difícil de hacer. Pero está integrado, una vez más dando una orientación clara sobre cómo hacer las cosas para trabajar de una manera genérica (aunque hay problemas con algunos módulos contribuidos que no lo usan/respaldan como deberían).
Podría dar más ejemplos de partes donde apreciar las 'reglas', pero esta entrada está consiguiendo mucho ya, y todavía tengo que cubrir algunas desventajas;)
para resumir lo positivo parte - si tuviera las especificaciones aproximadas que publicó, diría 'no hay problema' e iré con Drupal, confiando en que sería una base sólida para las partes personalizadas, a la vez que proporcionaría todos los 'estándares' como foros, blogs, integración de twitter/facebook y muchos, muchos otros en forma de soluciones ya existentes (a pesar de que podrían necesitar alguna adaptación/ajuste).
Desventajas: Como siempre, hay defectos, y algunos de ellos son sustanciales, dependiendo de los requerimientos/circunstancias.
- Curva de aprendizaje - Drupal es bastante complejo, y 'grokking' sus conceptos lleva tiempo."Jugar con él durante una semana", como sugiere Palantir, sin duda le dará una sensación general/amplia impresión, pero de ninguna manera es suficiente para permitir un juicio serio de sus pros y sus contras, ya que solo aparecerán mientras se codifica in/for it. Entonces, si ya está familiarizado con un marco de desarrollo web establecido, esto podría ser un problema. Si tiene que aprender uno de todos modos, esto debería ser un problema menor.
- Restricciones a la base de datos - A partir de Drupal 6, el soporte de base de datos es MySQL o PostgreSQL solamente, usando una 'capa de abstracción' específica de Drupal (que obviamente no es una;)
Drupal 7 se moverá a PDO, que debería (finalmente) termina este estado cuestionable.
- Migraciones de prueba/etapa/producción: la flexibilidad de las partes de Drupals se debe a que muchas cosas se pueden configurar en el back-end administrativo, lo que implica que muchas configuraciones de configuración importantes se almacenan en la base de datos. Esto hace que la migración de datos y/o configuración entre varios casos muy difíciles/tedioso, una vez que sales de los (primeros) etapas de desarrollo donde se puede salir a auténtica basura/restaurar las operaciones (véase, por ejemplo this question & answers)
Estos son las principales para mí, pero probablemente encontrarás más :)
+1 - muchos puntos buenos –