Yo lo implementaria en Java porque es portable, tiene frameworks muy
interesantes, es opensource y sobre todo porque es el lenguage de programacion
que mejor manejo.
Como dicen en otros mails el hecho de que java este de moda tiene grandes
ventajas, si tu aplicacion esta hecha en java la gente que te lo compre lo va
prejuzgar positivamente como algo sofisticado y de calidad aunque en la
realidad no necesariamente lo sea.
Tu aplicacion "servidor" deberia dividirse en una capa de persistencia, en
donde tenes el codigo para el acceso a la base de datos, la cual implementaria
con Hibernate y JPA (java persistence API). Esto resuelve el conflicto
relacional-objeto y algo tambien muy interesante es que tu aplicacion
funcionaria para la gran mayoria de base de datos simplemente cambiando dos
datos de un archivo xml (driver y dialecto).
A la capa de persistencia la consultas mediante la capa de servicios, en donde
tenes los servicios que expones al cliente, por ejemplo dar alta un usuario o
algo asi. En esta capa tambien manejas las transacciones y van las reglas de
negocio que no puedan ponerse en el modelo por problemas de cohesion o
acoplamiento, aunque siempre hay que tratar de ponerlas en el modelo. Esta capa
es interesante implementarla con Spring, mas que nada porque te resuelve el
tema de las transacciones y te alienta a utilizar interfaces en lugar de clases.
Por ultimo queda la capa del modelo, en donde estan realmente tus objetos y
haces la hermosa POO con la que implementaras las reglas de negocio, calculos y
demas cosas que necesites. Esta capa es consultada tambien por la capa de
servicios.
Para que este servidor quede independiente de la tecnologia de los clientes yo
agregaria una capa mas para webservices, que lo unico que haria es exponer como
webservices a los metodos de la capa de servicios que quiera exponer a los
clientes.
Todo esto en java. La ventaja del webservice es que esta muy bien soportado
tanto por java como por la gran mayoria del resto de tecnologias y puede ser
consumido por .NET, PHP, python, C++, incluso visual basic. Obviamente tambien
podes hacer un cliente usando tecnologia java, con swing para desktop o JSF
para web (aunque Wicket es mas lindo que JSF).
En fin, lo malo de java es que hay mucho y uno no sabe que elegir ni que
aprender. Como dije antes, yo lo haria en java utilizando webservices, Spring,
Hibernate y Wicket pero porque son tecnologias muy poderosas que ya las se
manejar. Si las usas vas a tener el resultado que queres, multiplataforma y con
clientes bien genericos, pero aprender cada una de esas tecnologias puede
llevarte un tiempito.
Mi consejo, trata de seguir esa arquitectura de webservices con las tecnologias
y lenguajes que conozcas salvo que quieras aprovechar este proyecto para
aprender a usar la ultimas tecnologias que se estan usando y que van a tener
soporte por un tiempo informaticamente mas que aceptable.
> Date: Sat, 21 Feb 2009 11:05:37 -0200
> From: [email protected]
> To: [email protected]
> Subject: [Prog] desarrollo applicacion linux - win - web
>
> Hola, quisiera hacer el desarrollo de una aplicacion que pueda correr
> en linux y windows, y ademas
> que pueda ser web.
>
> Se me ocurre separar servidor y cliente.
> El servidor podria hacerlo en python, C o cualquier lenguaje portable.
> Los clientes podrian ser PyGtk, o hacer distintas versiones (VB, Qt,
> Curses...)
> El cliente web lo haria en Javascript, por ejemplo.
>
> Lo importante sera el protocolo para intercambiar datos entre servidor
> y clientes. Aqui creo que deberia
> usar JSON-RPC ya que es el formato mas apropiado para el cliente web,
> y se puede usar en varios lenguajes.
>
> Les parece esto algo viable o existen soluciones mejores ?
>
> Gracias
> _______________________________________________
> Lista de correo Programacion.
> [email protected]
> http://listas.fi.uba.ar/mailman/listinfo/programacion
_________________________________________________________________
El doble de diversión: con Windows Live Messenger compartí fotos mientras
charlas.
http://download.live.com/messenger
_______________________________________________
Lista de correo Programacion.
[email protected]
http://listas.fi.uba.ar/mailman/listinfo/programacion