La idea es usar Firemonkey para que la aplicacion que ya tengo en VCL sea multi plataforma, utilizar las mismas unit de logica de negocio que ya tengo (en el ejemplo de arriba la unit Productos) y que el servidor contenga todo los TxxxMgr (en el ejemplo el TProductoMgr). En realidad necesito poder conectar desde dispositivos moviles, si fuera una Firemonkey de escritorio puedo conectar con Zeos, FireDAC, ADO, tal como decis vos
En la logica defino el objeto en si, que atributos y operaciones pueden realizar, esto deberia ser comun ya sea para una aplicacion VCL o para una Firemonkey.
Luego cada unit de la logica inlcuye en el uses el DataModule principal, y le piden al Mgr correspondiente que inserte, borre, actualice o realice un select, etc
De esa forma al realizar mantenimientos, agregar campos o correciones hago el trabajo una sola ves, con recompilar los binarios de todas las plataformas deberia ser suficiente
Ahora el problema con Datasnap es que cuando se acceden a los ServerMethods, lo que se retorna es una
referencia de la clase TServerMethods no una
instancia que es lo que yo venia haciendo.
Código Delphi
[-]
procedure TServerContainer1.DSServerClass1GetClass(
DSServerClass: TDSServerClass; var PersistentClass: TPersistentClass);
begin
PersistentClass := ServerMethodsUnit1.TServerMethods1;
end;
si se busca la definicion del tipo TPersistentClass encontramos esto:
Código Delphi
[-]
TPersistentClass = reference to TPersistent;
Es decir, debemos heredar de TPersistent para poder publicar los metodos (cosa que yo no hacia)
Creo que la solucion es crear varias DSServerClass, en lugar de tener lo que yo llamo un TProductoMgr, tener un DSServerClassProductos por decir algo, que se encarge de publicar los respectivos metodos Get, Update, Save, Insert.. etc
Aunque tambien se podrian poner TODOS los metodos en el TServerMethods que genera el wizard, con el unico inconveniente de que queda todo junto y no separado cada cosa con la suya pero bueno
No es en este preciso momento lo mas urgente que tengo para hacer asi que lo voy a dejar momentaneamente de lado, se agradecen los comentarios
Igual, seguramente lo que termine haciendo es, dado que el servidor datasnap es necesario pura y exclusivamente para los dispositivos moviles, implementar los metodos que necesito y chau.. no es la idea que desde el telefono se pueda manejar todo, es mas que nada para sacar algun listado/estadistica/reporte
Saludos!