2009-05-14 7 views
35

Recientemente descubrí que salesforce.com es mucho más que un CRM en línea después de encontrar un Case Study de Morrison en el que desarrollan una aplicación de administración de trabajos. Lo he estado probando con el objetivo de recrear nuestro propio sistema de gestión de obras en la plataforma.¿Cómo son salesforce.com y Apex como plataforma de desarrollo de aplicaciones?

Mi experiencia es en Microsoft y .Net, y la primera opción obvia sería asp.net. Sin embargo, en realidad solo tengo experiencia con .net y mi gerente con un fondo de programación de Synergy más legado, y soy autodidacta y estoy evaluando otras opciones de RAD (por ejemplo, Ironspeed).

la naturaleza del negocio está en los principales 2-5 contratos de tipo de construcción concurrente que se ejecutan durante 3-5 años cada uno, cada uno requiere 15-50 usuarios del sistema. Tradicionalmente, hemos utilizado nuestro sistema de gestión de obras basado en caracteres para todo y ajustado para cada contrato. El modelo de licenciamiento de Salesforce se adapta a este tipo de flexibilidad, pero me preocupa la curva de flexibilidad/aprendizaje de desarrollo y todos los problemas que rodean a Lock-In. No parece haber mucho análisis neutral sobrio de la plataforma en la web que no sea el propio material/blogs de Salesforce

¿Alguien ha tenido alguna experiencia en desarrollar una aplicación en Salesforce en comparación con la más 'tradicional' .Net ¿ruta?

Respuesta

2

No he desarrollado en el lado .Net de Salesforce, sí creé algunas adiciones internas a una instalación de Salesforce muy grande.

Lo que puedo decir al respecto es que las herramientas de desarrollo dentro del sistema pueden ser confusas y el cuello de botella más grande que siempre tuve (en tiempo de desarrollo) fue obtener la sintaxis correcta para las consultas que quería. (advertencia, esto fue en 2007)

+0

.Net comaprison realmente tenía como objetivo buscar opinión comparándolo con SalesForce como una plataforma de desarrollo RAD, en lugar de interactuar con SF a través de .Net que sé que puedes hacer. Estaba bastante impresionado con las herramientas de desarrollo: obtienes mucha UI gratis que puede desarrollarse en el navegador con la opción de entrar en Eclipse para cosas más profundas de Apex. Es solo cuestión de cuán rápido llegas a los casos 'edge' a través de – mhollers

8

Realmente no puedo decirte qué tan rápido llegarás a los casos extremos, pero puedo decirte que es diferente a cualquier otro desarrollo que he hecho. El tiempo de implementación requerido para crear una solución viable y la capacidad de iterar rápidamente una solución para que los patrocinadores de negocios los evalúen no tienen comparación con ningún entorno que haya experimentado.

El código Apex se basa en Java, con diferencias específicas de la plataforma. Sin embargo, algunas cosas no se pueden hacer a través del código. La combinación de implementación declarativa (basada en pantalla) y basada en código necesaria para elaborar una aplicación completa es difícil de entender al principio.

Debido a la naturaleza multi-tenant del entorno, existen 'límites de gobernador' que impiden que una única organización monopolice los recursos. Esto restringe las opciones de implementación en cosas como insertar y actualizar desencadenantes.

La implementación de su aplicación también es una experiencia muy diferente.

Consulte la capacitación del desarrollador (Dev 501) disponible como podcast de video en iTunes: http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=325668840 Podrá ver exactamente de lo que estoy hablando.

49

Salesforce es una experiencia bastante dolorosa para desarrollar cualquier cosa que no sean las aplicaciones más simples. Salesforce tiene una idea muy específica de lo que uno querría desarrollar, y si su aplicación no está dentro de esos límites, ¡manténgase alejado!

Los límites del gobernador son realmente lamentables: 16 recursiones de nivel, 1 montón de megas, no más de 200 objetos devueltos por una consulta, no más de 20 consultas en una invocación. 10 llamadas web en una invocación, 1000 elementos en una sola lista, y continúan. El resultado final es que cualquier ingenio que se te ocurra para superar un límite choca con otro.

Una vez que alcance cierto tamaño, todo su tiempo se dedicará a la codificación de estas limitaciones. El lenguaje, Apex, realmente no admite ninguna herencia significativa. Incluso tareas aparentemente simples terminan tomando días cuando uno encuentra limitaciones nuevas y aparentemente arbitrarias, por ejemplo, todos los objetos en Apex heredan de SObject; sin embargo, no se permite crear una instancia de una colección de genéricos SObject s, por lo que es casi imposible crear bibliotecas de utilidad útiles. Las uniones de bases de datos complejas (incluso bastante simples) no son posibles.

Las herramientas y el soporte para Salesforce también son extremadamente débiles. No son confiables y difíciles de usar para procesos de desarrollo reales. La implementación es una pesadilla, ya que las herramientas tienen una enorme dificultad para resolver problemas complejos de dependencia, y numerosas entidades que se crearán en el curso del desarrollo normal simplemente NO PUEDEN implementarse programáticamente. Otras pequeñas características son también deliciosas, como el hecho de que el lenguaje no distingue entre mayúsculas y minúsculas, pero el IDE distingue entre mayúsculas y minúsculas. No hay herramientas de refactorización de las que hablar, así que obtienes todo el dolor de un lenguaje estáticamente tipeado, sin ninguno de los supuestos beneficios. Y el tiempo de guardar/compilar es alto; veo frecuencias de más de 2 minutos. Y, por supuesto, si tienes múltiples errores de compilación en un solo guardado (y lo harás, ya que no querrás recompilar cada cambio, con esas esperas de 2 minutos ...) solo obtendrás un error a la vez !

En una nota relacionada, parece haber notado que la documentación de Salesforce es bastante autocomplaciente ... bueno, es así hasta el final. No se menciona en ninguna parte ni siquiera en las referencias técnicas más oscuras de los errores comunes, o incluso las limitaciones de una api o característica determinada. Es todo "aquí está lo mejor que puedes hacer" y no se menciona "pero imaginas que también lo haría ___, ¡pero estarías equivocado! ¡Muerto mal!" La documentación realmente parece material de marketing hasta el final. Llevo más de 18 meses programando en este entorno y, de vez en cuando, me resulta difícil encontrar elementos básicos, como la referencia de API.

Salesforce no es un entorno flexible. No es un entorno de desarrollo rápido (al menos en comparación con cualquier otro marco de programación web). No es un buen entorno para construir nada más que aplicaciones de juguete como las que muestran en sus tutoriales. Solo di no.

+10

. He trabajado con Salesforce desde hace bastante tiempo y no podría estar más de acuerdo con tu publicación. Ha llegado al punto en el que estamos escribiendo nuestra propia herramienta de implementación y, posiblemente, buscando escribir nuestras propias extensiones IDE porque lo que Force.com proporciona simplemente no está ni cerca de una oferta convincente. – lomaxx

+10

Desearía poder votar esto una y otra vez.El lema de Salesforce de "No es software, es Salesforce" es totalmente engañoso porque todavía requiere un desarrollador de software y una cantidad de tiempo desmesurada para realizar las tareas más básicas. Incluya las tarifas recurrentes y todo el sistema comienza a costar mucho más de lo que vale. – Jake

+1

@Ben ¡No puede ser una mejor respuesta que esta! – MnZ

9

Escuchar Ben. No realmente. Escucha a Ben. Salesforce es un mundo de dolor absoluto. Lo único bueno de Salesforce es su equipo de marketing.

12

Sé que esta pregunta es un poco viejo, pero también valdría la pena mirar a esta pregunta Disadvantages of the Force.com platform

he estado desarrollando en la plataforma por un tiempo y no podría estar más de acuerdo con Ben. Hay tanto problema con la "plataforma de desarrollo" que es force.com que realmente no creo que sea justo llamarla una plataforma de desarrollo.

Hemos tenido problemas con el soporte de herramientas, que es terrible, soporte de implementación, que es terrible e incluso su soporte técnico que es, lo adivinaste, terrible.

Lo principal que quiero decir es que Salesforce comenzó como CRM y luego decidieron agregar la "plataforma en la nube" a su oferta. La plataforma en la nube, sin embargo, está orientada a ampliar su producto CRM y si lo que quiere hacer es ampliar el CRM, entonces el entorno de force.com le permitirá hacerlo bien.

Lo que no le dejará hacer bien es deshacerse de su CRM y dejarle construir fácilmente su propia aplicación completamente personalizada. Todavía está vinculado a su modelo de seguridad y usuario, todavía tendrá sus objetos estándar en su base de datos y aún tendrá sus páginas estándar en su entorno de producción. No hay "Archivo -> Nuevo Proyecto" por así decirlo.

Además, alguien más mencionó que está "basado en Java". Esto no significa que puedas ejecutar el código Java allí. Significa que robaron algunos bits de Java y lo bastardizaron para parecerse a Java pero en realidad no lo es ... lo cual es realmente molesto porque no puedes simplemente tomar un conjunto de bibliotecas de Java e importarlas a su nube ... así que si quieres hacer algo como analizar JSON ... vas a escribir eso tú mismo.

Ovearall, evitaría la plataforma force.com como la peste.

5

Parece que la mayoría de las respuestas aquí son negativas, y yo diría que siempre es más fácil culpar a una plataforma que culpar a su propia inexperiencia.

Hubo una curva de aprendizaje para mí y fue frustrante (proveniente de un fondo de Java). La sintaxis era similar, pero el paradigma era muy diferente. Después de luchar por un tiempo, he logrado construir aplicaciones utilizadas por decenas de miles de usuarios que se escalan perfectamente, son fáciles de administrar y seguras, y que incorporan casi todas las arquitecturas de programación tradicionales actualmente incluidas, incluyendo los conceptos básicos de OOP, MVC y muchos de los otros patrones de diseño de "Gang Of Four".

Si desea que le indique un código de ejemplo o grandes aplicaciones integradas en la plataforma, con mucho gusto lo ayudaré.

+2

Ciertamente, hay aplicaciones que funcionan y, dependiendo de las circunstancias, Salesforce podría ser la herramienta adecuada, pero regresando después de otros 10 meses desarrollando SF, estoy de acuerdo con todo lo que dije anteriormente. Los problemas que encuentra nuestra tienda nunca tienen que ver con escalar usuarios, sino con escalar los datos (que en nuestra aplicación no es una función de la cantidad de usuarios) y escalar las características y la complejidad. Me gustaría saber cuál es el tamaño de tus aplicaciones en promedio. Me alegra saber que está funcionando, sin embargo! – Ben

3

Véase mi respuesta en otro hilo StackOverflow: Desventajas de Force.com:

Disadvantages of the Force.com platform

la que recientemente respondió a pesar de que el hilo era viejo, porque sólo quería correr el riesgo de sonar fuera de lo molesto es la plataforma. Esos pensamientos son muy actuales.

Sugeriría que si planea hacer algo con la plataforma, asegúrese de que algunos de los miembros de su equipo estén certificados por Apex. En general, recomendaría evitar totalmente la plataforma hasta que aborden seriamente el lado de la experiencia del desarrollador y donde haya casos de negocios específicos y muy simples.

Mi apodo para la plataforma es "Little Ease", que lleva el nombre de una cámara de tortura 4x4 en Londres, donde no podía extenderse en una sola dirección. Llegarás a los límites constantemente.

He aquí un blog mayores, también:

http://suprablog.com/index.php/2010/02/25/salesforce-the-astonishingly-powerful-little-ease-platform/

1

Se pueden hacer cosas grandes y sorprendentes con Salesforce. El único problema es que, en mi opinión, para muchos sistemas no triviales y funcionalidad parecida, el costo total de propiedad (SDLC completo) es fácilmente 3-10 veces mayor de lo que sería con dotNET y un RDBMS tradicional como SQL Server. . ¿Por qué pagar mucho más por el mismo resultado?

Cuestiones relacionadas