PDA

Ver la Versión Completa : Solicito su colaboración para elaborar un proyecto web.


TiammatMX
24-04-2014, 15:43:16
Compañeros del foro:

Un cliente me solicita hacer una pequeña aplicacioncita basada en su intraweb, pero requiere necesariamente que sea web y además, realizada en ObjectPASCAL, para lo cual requiero saber algunas cosas:


¿Cómo hacer mi ambiente de desarrollo y prueba? ¿Qué debo configurar o hacer?
¿Qué me recomiendan usar, UniGUI, IntraWeb, Raudus?
¿Cómo debo configurar la conexión a una base de datos Firebird 2.5 para usarla en la aplicación?
¿Qué debo entregar como producto final al cliente?


Estoy trabajando con Delphi 7, Windows 7 Enterprise, Firebird 2.5 y muchas ganas de ganar ése proyecto. Por su ayuda, colaboración y apoyo, agradezco de antemano.

Ñuño Martínez
25-04-2014, 14:41:15
Una pista (menos es nada): en principio, la base de datos no necesita ninguna configuración especial. Si está en la misma máquina en la que estará la aplicación puedes "cerrar" Firebird para que nadie pueda acceder directamente desde fuera y obligar a que usen la aplicación, por ejemplo.

En cuanto aa qué entregar, pues los ejecutables y las bibliotecas, supongo, junto a la documentación. Una aplicación web no tiene por qué diferenciarse de una aplicación "normal".

mamcx
25-04-2014, 17:07:18
Que tipo de proyecto es?

Nunca me ha gustado intraweb (y los otros proyectos que mencionan son como lo mismo: Tratar de hacer una app Win32 emulada en Web), asi que como alternativa -no pudiendo jalar de python/django- es hacer una app hibrida REST y JS. Usas Delphi/FP para la logica y como servidor REST (https://es.wikipedia.org/wiki/Representational_State_Transfer) y puedes hacer el resto en HTML5/JS.

La ventaja de este modelo? La parte delphi es casi exacta a hacer una bien hecha libreria de logica negocios/datos. Si tienes un modelo cliente, entonces haces un metodo List(Filtro), Post(Data), Delete(Id) Y te queda todo tipo Clientes/Operacion?Params. Encima de la libreria es el pedacito que transforma de ida & vuelta a JSON (o lo que quieras!). Eso hace muy rapido el desarrollo, aparte de desacoplar todo y simplificar ENORMEMENTE hacer unit testing, y como no hay nada "magico" que te genera la GUI (como en intraweb) cuando llegue el momento de ver porque rayos el JS no anda como quieres va ser mas facil llegar al problema.

Tambien, la parte HTML te permite hacer la interface de forma mas profesional. Puedes adquirir una plantilla bien lograda (del tipo que se ve en http://themeforest.net/category/site-templates/admin-templates) y tener mas flexibilidad de incorporar lo que sea necesario.

La contra? No es tan automatico, necesitas saber HTML5 + JS + Librerias.

-----
Asi es como funciona http://www.remobjects.com/ (que de tener plata? Es lo mejor) o si te parece, puedes obviarte el backend en Delphi y usar http://www.remobjects.com/da/relativity.aspx (toda la logica tendrias que hacerla en procedimientos almacenados/funciones de la BD ) y solo le pegas la parte HTML (http://www.remobjects.com/ro/ nota la parte de JS), ambos permitirian esto gratis para un despliege pequeño. (Y la forma nativa en Delphi de hacer esto es DataSnap, pero solo las versiones recientes lo tienen asi como te lo describo).


------

Mirada rapida me dio este framework en FP para REST:

http://silvioprog.github.io/brookframework/

Que veo es del estilo que se usa ahora (ie: REST en backend / HTML5-JS en front-end).

Para el front end, dependiendo de lo complejo, puede ser http://getbootstrap.com/ & http://dojotoolkit.org/ u otro similar. Si me das mas detalles puedo ser mas concreto

----
Me parece que http://bottlepy.org/docs/dev/index.html es el mini-framework que mas intuitivamente expone como se hace un servidor REST -cuyas ideas son independientes del lenguaje- y con solo mirar ese tutorial creo que te haces a la idea.

TiammatMX
25-04-2014, 18:00:40
Que tipo de proyecto es?...

Esencialmente, hacer dos pantallitas. Una que recoja la entrada del usuario a la base de datos y otra donde sea posible capturar los datos de una orden. Simple y complejo a la vez.

...Nunca me ha gustado intraweb (y los otros proyectos que mencionan son como lo mismo: Tratar de hacer una app Win32 emulada en Web), asi que como alternativa -no pudiendo jalar de python/django- es hacer una app hibrida REST y JS. Usas Delphi/FP para la logica y como servidor REST (https://es.wikipedia.org/wiki/Representational_State_Transfer) y puedes hacer el resto en HTML5/JS...

Mi problema aquí es que como mencioné en la pregunta, sólo utilizo Delphi 7, no estoy por el momento con Delphi XE-lo-que-sea, así que sólo tengo acceso a IntraWeb de Atozed (la versión para D7), Raudus o UniGUI. Tu modelo suena y es interesante, pero no puedo aplicarlo en éste momento para éste proyecto.

mamcx
25-04-2014, 18:40:05
El modelo REST es un paradigma, y no esta amarrado a ningún lenguaje. Solo necesita HTTP y eso es todo.

Ahora tienes D7. Y cuando te muevas después... que va a pasar con tu código en Intraweb?

TiammatMX
25-04-2014, 21:43:50
...que va a pasar con tu código en Intraweb?...

Ya decidí que usaré Raudus..., espero que no cambie mucho entre versiones para las diferentes IDE's...

kapcomx
25-04-2014, 23:36:06
mi estimado nada mas como comentario, a mi me paso lo mismo hace un tiempo. llego el punto en que todo era desarrollos web y por mas que busque alternativas en delphi (incluido raudus). nomas no me quedo de otra y tuve que entrarle de lleno al PHP. Al principio me costo muchisisisimo trabajo ya que la forma de trabajar es muy diferente, pero al final logre concretar varios proyectos. Asi las cosas tuve que dejar delphi y dar el salto a PHP ajax, java script, etc etc etc...

Te recomiendo que si vas a desarrollar en web empieces el cambio al PHP.

Saludos...:cool:

TiammatMX
26-04-2014, 00:11:15
...Te recomiendo que si vas a desarrollar en web empieces el cambio al PHP...

Espero no llegar a ése punto..., pero no lo descarto. Gracias por la sugerencia.

mamcx
26-04-2014, 00:35:13
PHP? Junto a JavaScript se gana el puesto a uno de los peor diseñados lenguajes en uso*. Aparte de la ya obsoleta ventaja de correr directo en Apache y lo muy comun que es, python, ruby, go, scala (y muchos otros) hacen mas & mejor.


* Ej:

http://me.veekun.com/blog/2012/04/09/php-a-fractal-of-bad-design/
http://blog.codinghorror.com/the-php-singularity/

Hace 5-6 años PHP era practicamente la unica opcion viable para hacer web (open source). Desde entonces era bien sabido que era un tremendo hack, pero que rayos, era PHP o PERL. Pero ahora? Si el chiste es empezar algo nuevo, hombre, hay mucho mejor donde escojer.

kapcomx
26-04-2014, 00:43:51
Amigo mamcx, lo que comentas es correcto, de eso no me queda la menor duda de hecho me gustaria comenzar a desarrollar en phyton, pero he escuchado muy buenas cosas de Ruby.

en lo personal tu que tienes mas experiencia en esto. cual me recomiendas para empezar a darle....:confused:

Saludos....

mamcx
26-04-2014, 00:56:36
Yo tengo predilección por las sintaxis claras (por eso me gusta Pascal) asi que mi preferencia es Python. Una opción muy simple para hacer sitios web es http://flask.pocoo.org/. Django (https://www.djangoproject.com/) es quizas el mas popular.

Si te gusta el estilo C, http://golang.org/ es genial (lastima la sintaxis!), aunque todavia no esta tan maduro.

Por python, puedo decir que es por mucho el lenguaje mas simple de aprender, escribir & leer.

Por Ruby no tengo mucho que decir, osea malo, asi que si te gusta tampoco tienes pierde.

ASAPLTDA
01-05-2014, 18:04:02
[QUOTE=Ñuño Martínez;Si está en la misma máquina en la que estará la aplicación puedes "cerrar" Firebird para que nadie pueda acceder directamente desde fuera y obligar a que usen la aplicación, por ejemplo. ]

Hola Sr Martinez, podria por favor ampliar el concepto de cerrar al exterior y como se deb hacer
gracias

Casimiro Notevi
01-05-2014, 18:09:08
[quote=Ñuño Martínez;Si está en la misma máquina en la que estará la aplicación puedes "cerrar" Firebird para que nadie pueda acceder directamente desde fuera y obligar a que usen la aplicación, por ejemplo. ]
Hola Sr Martinez, podria por favor ampliar el concepto de cerrar al exterior y como se deb hacer
gracias
Detener firebird.

Algo así:

net stop FIREBIRDGUARDIANDEFAULTINSTANCE

macugi
02-05-2014, 16:53:22
Hola.

Hace unos años yo estaba en el mismo dilema que tú. Tenia todo el desarrollo con Delphi + Firebird.
Empecé a valorar otras opciones y al final me quedé con PHP + JavaScript + HTML5 + CSS3 + PostgreSQL.
Estoy muy contento con mi elección y ahora tengo todos los programas que tenia en Delphi pasados a esta combinación y todos los desarrollos nuevos estan echos así.

Los clientes muy contentos puesto que tienen sus aplicaciones funcionando en la nube ó en su nube privada (intranet). La aplicaciones tienen el mismo aspecto que tenian las de Delphi pero ahora son totalmente multiplataforma funcionan totalmente en cualquier navegador de los actuales.

Si quieres puedes darle un vistazo en http://www.megabyteinternet.com/aplicaciones_en_la_nube.html (quita las espacios para ir a la página)


Perdona que te ponga el enlace de esa forma pero es que al guardar el mensaje me dice que no tengo permitido poner enlaces. ( No se una manera más fácil de como podria indicarle a alguien que mirara algo en internet sin poner una URL )

Espero que te sirva de algo para decidirte.

Saludos,

Manuel Cuevas.

webmaster@megabyteinternet.com
http://www.megabyteinternet.com
http://www.aplicacionesenlanube.es