Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Debates (https://www.clubdelphi.com/foros/forumdisplay.php?f=29)
-   -   DataSnap o LAMP (https://www.clubdelphi.com/foros/showthread.php?t=73090)

roman 31-03-2011 17:55:13

Cita:

Empezado por Al González (Mensaje 395256)
Dada tu situación y experiencia con Delphi, mi consejo en cuanto a las interfaces de usuario sería que hagas en Web lo que estrictamente hablando deba poder usarse desde cualquier computadora con navegador y conexión a Internet. El resto, mientras no haya reparos para usar Windows, en Delphi. Es un error común creer que toda la interfaz de usuario debe estar en una misma plataforma.

Esto, en teoría, suena muy bonito. Pero en la práctica termina uno duplicando esfuerzos. Por eso es que, si bien común, no es tan erróneo. Yo lo he hecho, pero no siempre es factible dividir todo en dos grandes grupos: lo que puede hacerse en web y lo que puede hacerse en escritorio. Siempre hay funcionalidades que requieres en ambos casos y terminas codificando cosas similares para ambos ambientes.

// Saludos

Chris 31-03-2011 18:05:30

Gracias Al por tus comentarios.

Cita:

Empezado por Al González (Mensaje 395256)
Lo que no tengo claro del todo, y con este comentario me uno a tus inquietudes esperando alguna orientación de quienes ya lo han logrado, es cómo hacer que una interfaz de usuario Web tenga franca comunicación y aprovechamiento de un servidor de aplicaciones Win32 creado en Delphi. Es decir, que el servidor de aplicaciones (capa intermedia) sirva tanto a interfaces de usuario Windows, como a interfaces de usuario Web. ¿Han visto algún material por ahí que lo explique con claridad?

El modelo puede ser este:


Lo ví en esta entrada del blog de Jon Lennart Aasenden (muy bueno y lo recomiendo de hecho)

Por otro lado, no me queda claro el termino "Servidor de Aplicaciones". No sé si es algo así como un servidor web, que en lugar de servir páginas HTML, "sirve" aplicaciones :o. O algo más bien cómo "Un servidor que sirve/envía datos a las aplicaciones"

Chris 31-03-2011 18:08:58

Si ven la arquitectura que les proporcioné, notarán que casi todo depende de Windows, es por eso que no es de mi simpatía. Además hacer dos clientes, uno para Intraweb y otro un "cliente ligero" hecho en Delphi me parece redundar tu trabajo. Trabajar doble en términos prácticos.

Chris 31-03-2011 18:12:33

Cita:

Empezado por D-MO (Mensaje 395257)
¿Porqué prescindir si puede estar integrada en la aplicación?, te planteaba el caso porque pensé que era de si o si trabajar con el cliente de correo, pero si este no es el caso, concuerdo con Román, integrar toda la funcionalidad en la aplicación, deríamos que creas un pequeño CRM que almacena información de los usuarios y puedas enviarle un correo, con una plantilla predefinida le muestras al usuario un "textarea" con este texto para que modifique o lo deje así y pueda cargar archivos para enviarle. Esto es mucho mas fácil que integrarlo con el LDAP o el Plugin para el navegador.

Es una buena idea. Talvez como incluir como parte de mi aplicación un redactor de correos. Talvez una versión modificada de RoundCube Mail talvez. Trabajo extra, pues sí. Pero ofrecerle una buena aplicación a tus clientes, no tiene precio... :P.

Al González 31-03-2011 18:14:40

Cita:

Empezado por roman (Mensaje 395258)
[...] Siempre hay funcionalidades que requieres en ambos casos y terminas codificando cosas similares para ambos ambientes.

Entiendo el punto, es algo a tomar en cuenta. :)

Chris: Gracias por el enlace, lo estudiaré. En cuanto al término que refieres, yo lo entiendo de la misma forma que la ayuda de Delphi, Wikipedia, etc. (application server).

D-MO 31-03-2011 18:18:34

Cita:

Empezado por Chris (Mensaje 395266)
Es una buena idea. Talvez como incluir como parte de mi aplicación un redactor de correos. Talvez una versión modificada de RoundCube Mail talvez. Trabajo extra, pues sí. Pero ofrecerle una buena aplicación a tus clientes, no tiene precio... :P.

Quizá no estamos hablando de lo mismo, ¿quieres simplemente mandar mensajes de correo a los clientes o un completo cliente de correo (sea web o de escritorio)?

Chris 31-03-2011 18:20:56

Cita:

Empezado por Al González (Mensaje 395268)
En cuanto al término que refieres, yo lo entiendo de la misma forma que la ayuda de Delphi, Wikipedia, etc. (application server).

Creo que el termino aún así es muy ambiguo si lo usamos en Delphi. Más en caso de las aplicaciones en tres capas hechas con el IDE. Donde la aplicación o solución está hecha por tres partes. Bueno, no sé. Creo que le daré su interpretación dependiendo el contexto en que se use :-/

roman 31-03-2011 18:21:09

Cita:

Empezado por Chris (Mensaje 395266)
Es una buena idea. Talvez como incluir como parte de mi aplicación un redactor de correos. Talvez una versión modificada de RoundCube Mail talvez. Trabajo extra, pues sí. Pero ofrecerle una buena aplicación a tus clientes, no tiene precio... :P.

Ni tan extra, a menos que de verdad quieras reinventar tooooda la rueda. Hay muchos editores wysiwyg que puedes integrar a tu aplicación. Por ejemplo, TinyMCE.

// Saludos

D-MO 31-03-2011 18:31:21

Cita:

Empezado por roman (Mensaje 395271)
Ni tan extra, a menos que de verdad quieras reinventar tooooda la rueda. Hay muchos editores wysiwyg que puedes integrar a tu aplicación. Por ejemplo, TinyMCE.

Exacto, todo dependerá de lo que quiera hacer:
  • Si solo será enviar correos a los clientes/contactos, bastará con utilizar un textarea (reemplazado por el editor wysiwyg preferido, si lo quisiera) y enviarlos desde la misma aplicación, que hablando de django, acá está el como: http://docs.djangoproject.com/en/1.3/topics/email/
  • Si quisiera un completo cliente de correo, allí si, mejor vincular el sistema con cualquiera ya funcional, como el roundcube.

Saludos.

roman 31-03-2011 18:38:13

¿Django lo puedes integrar a interfaces de escritorio? Porque he visto algo de lo que puede hacerse con, por ejemplo, WxPython, y, aquí sí, creo que puede ser buena opción para hacer interfaces duales (web y escritorio) pues puedes usar el mismo código.

// Saludos

Chris 31-03-2011 18:38:58

Cita:

Empezado por D-MO (Mensaje 395269)
Quizá no estamos hablando de lo mismo, ¿quieres simplemente mandar mensajes de correo a los clientes o un completo cliente de correo (sea web o de escritorio)?

Mira, lo que sucede es que los usuarios de mi aplicación necesitan enviar correos electrónicos -claro!-. La utilidad que brinda mi aplicación es que ésta puede automatizarle gran parte del trabajo al crearles un correo que ya tenga cuerpo y asunto -el cuerpo del mensaje se toma de algún archivo de Word previamente guardado en el sistema-.

Te lo muestro con imágenes:
En esta ventana de la aplicación, el usuario elige los archivos que adjuntará en el nuevo correo y además con que archivo de Word iniciará la redacción del nuevo correo.


Luego, cuando el usuario da clic en "Enviar", la aplicación por medio de MAPI hace un enlace al cliente de correo principal instalado en la máquina, en este caso Thunderbird. La ventana de redacción que aparece ya se ha previamente rellenado con un Asunto, un cuerpo y con archivos adjuntos.

Ahora, por último el usuario tiene la posibilidad de hacer cambios al correo, elegir un remitente de la lista y adjuntar más archivos si así lo desea. El cuerpo del correo que ves, fue tomado de un archivo word elegido por el usuario en la ventana anterior.

Esa es la funcionalidad que me gustaría reproducir en una aplicación Web y que veo díficil hacerla.

roman 31-03-2011 18:59:15

A ver. En general podría decirse que en una aplicación web te vas a encontrar más dificultades para crear interfaces amigables, aunque se ha avanzado mucho y hay bibliotecas que tienen widgets muy buenos. Pero en sí, no veo que esto que describas no puedas hacerlo en web. Ni siquiera veo porqué optaste por hacerlo así (enlazar con MAPI) en la aplicación de escritorio.

Todo, adjuntos, encabezados, texto predeterminado, etc. lo puedes hacer en una aplicación web.

// Saludos

D-MO 31-03-2011 19:05:04

Cita:

Empezado por roman (Mensaje 395274)
¿Django lo puedes integrar a interfaces de escritorio? Porque he visto algo de lo que puede hacerse con, por ejemplo, WxPython, y, aquí sí, creo que puede ser buena opción para hacer interfaces duales (web y escritorio) pues puedes usar el mismo código.

La verdad no he evaluado esta posibilidad, django es realmente un framework para aplicaciones web, se encarga del manejo de sesiones, urls, peticiones, plantillas html, etc... está construido con la visión de ser usado en la web exclusivamente. Sin embargo, viendo el caso, se me ocurre que, con el conocimiento necesario, se podría desarrollar una aplicación con que tome como base los modelos definidos en django (en los modelos se definen toda la lógica del negocio) para utilizarlos con una interfaz gráfica con wxPython, pyGtk, pyQt, etc...

Pero yo preferiría proveer un servicio (webservice) en la aplicación django que sirva para comunicar una aplicación cliente (Delphi, Java, Python, etc...) con la aplicación web.

Saludos.

Chris 31-03-2011 19:06:04

Cita:

Empezado por roman (Mensaje 395281)
Ni siquiera veo porqué optaste por hacerlo así (enlazar con MAPI) en la aplicación de escritorio.

¿De que otra forma lo hubiese poder hecho Román?

roman 31-03-2011 19:08:05

Si no me equivoco, tú también has trabajado con PHP ¿no? Si es así, ¿cómo ves uno contra otro? Digo, porque se me antoja aprender python y a la larga me late que sería mucho mejor. ¿Qué opinas?

// Saludos

D-MO 31-03-2011 19:09:24

Cita:

Empezado por roman (Mensaje 395281)
Todo, adjuntos, encabezados, texto predeterminado, etc. lo puedes hacer en una aplicación web.

Completamente de acuerdo, la aplicación (web o de escritorio) puede hacer esta tarea sin mucho esfuerzo, cargas losa adjuntos, muestros el texto a enviar, te conectas a un smtp y enviado. Todo desde la misma aplicación (web o escritorio).

Saludos.

roman 31-03-2011 19:09:29

Cita:

Empezado por Chris (Mensaje 395283)
¿De que otra forma lo hubiese poder hecho Román?

Hubiera usado Indy para mandar los correos. Además, se adaptaría más a tu filosofía de tener todo bajo tu control :p

// Saludos

Chris 31-03-2011 19:14:31

Cita:

Empezado por roman (Mensaje 395284)
Si no me equivoco, tú también has trabajado con PHP ¿no? Si es así, ¿cómo ves uno contra otro? Digo, porque se me antoja aprender python y a la larga me late que sería mucho mejor. ¿Qué opinas?

No sé si me lo has preguntado a mí o a D-MO, pero igual yo voy a dar mi opinión :p. He usado PHP pero no me gusta. Para mí ese lenguaje debería llamarse C++Script. Me gusta Python porque lo siento más moderno, sencillo. En realidad mayormente evito PHP por el hecho de su estilo C++ de hacer las cosas. A estos chicos de PHP solo les faltó usar los archivos *.H

roman 31-03-2011 19:16:28

Ja, ja. Nada más te faltó como mamcx, decir que es el VB de la web. La verdad es que yo no lo veo tan mal y no me disgusta la sintaxis C, pero lo poco que he visto de python me entusiasma.

// Saludos

Chris 31-03-2011 19:16:44

Cita:

Empezado por roman (Mensaje 395286)
Hubiera usado Indy para mandar los correos. Además, se adaptaría más a tu filosofía de tener todo bajo tu control :p

// Saludos

Jajaja, si pero aveces también hay que saber delegar el trabajo... Hubiese sido demasiado trabajo porque además de enviar el correo, se tenía que guardar copia con IMAP. Era demasiado, mejor le redirigía el trabajo al cliente de correo.


La franja horaria es GMT +2. Ahora son las 17:49:19.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi