Migración de proyectos a Delphi 2010
Bueno, ya he empezado a realizar la migración de mis proyectos a Delphi 2010. Es una tarea ardua y difícil pero que de momento estoy muy interesado en hacer gracias a las nuevas novedades que trae éste editor. Estoy realizando la migración de uno de mis proyectos más explicado aquí en el blog y es que estoy muy interesado en la serialización de objetos que éste nuevo editor ofrece gracias al Marshal/UnMarshal mediante JSON. He encontrado varios artículos muy buenos de blogs que sigo donde se explica fabulosamente bien todo éste concepto de serialización utilizando las nuevas librerías DBXJSONReflect y DBXJSON. También he descubierto los nuevos diagramas UML que dispone el Model View, que son mucho más bonitos que los de su antecesor Delphi 2007 y 2009. Cómo podéis ver en las siguientes imagenes, la nueva estructura de la aplicación Thundax Box Manager, ha cambiado un poco para dar paso a un diseño más cómodo y fácil y donde podré hacer todo el tema de la serialización en cuanto resuelva un problema con la clase TPoint, ya que ésta (que es un record) no se puede serializar utilizando JSON, por lo tanto tendré que hacer una clase que derive de TObject.
Aún tengo que mirarme todo el tema de la RTTI que ha cambiado bastante y mirar de resolver algunos problemas sobre mi aplicación.
Aquí os dejo los nuevos diagramas de la aplicación:
Clase TBox:
Clase TLine:
Class Intersector:
Aquí os dejo también el código de la serialización de la clase TVertex utilizando JSON:
El resultado de la visualización del TMemo, es la siguiente:
En los próximos post empezaré a indagar sobre el tema del RTTI y que cosas nuevas nos dan para poderlas aprovechar al máximo en nuestras aplicaciones.
Custom Marshalling/Unmarshalling in Delphi 2010.
Aún tengo que mirarme todo el tema de la RTTI que ha cambiado bastante y mirar de resolver algunos problemas sobre mi aplicación.
Aquí os dejo los nuevos diagramas de la aplicación:
Clase TBox:
Clase TLine:
Class Intersector:
Aquí os dejo también el código de la serialización de la clase TVertex utilizando JSON:
uses DBXJSONReflect, DBXJSON; procedure SerializeVertex(); var Mar: TJSONMarshal; // Serializer UnMar: TJSONUnMarshal; // UnSerializer vertex: Tvertex; SerializedVertex: TJSONObject; // Serialized for of object begin Mar := TJSONMarshal.Create(TJSONConverter.Create); try try vertex := Tvertex.Create(10,10); SerializedVertex := Mar.Marshal(vertex) as TJSONObject; finally FreeAndNil(vertex); end; finally Mar.Free; end; // Output the JSON version of the vertex object Memo1.lines.add(SerializedVertex.ToString); // UnMarshalling vertex UnMar := TJSONUnMarshal.Create; try vertex := UnMar.UnMarshal(SerializedVertex) as Tvertex; try Assert(vertex.x = 10); Assert(vertex.y = 10); finally vertex.Free; end; finally UnMar.Free; end; end;
El resultado de la visualización del TMemo, es la siguiente:
En los próximos post empezaré a indagar sobre el tema del RTTI y que cosas nuevas nos dan para poderlas aprovechar al máximo en nuestras aplicaciones.
- Enlaces de interés:
Custom Marshalling/Unmarshalling in Delphi 2010.
Comments
Post a Comment