DORM, Delphi ORM es un nuevo marco ORM OpenSource para Delphi utilizable desde DelphiXE + (debería funcionar también en D2010, pero no está probado en esa versión). Admite (y usa) todas las nuevas funciones de RTTI. Permite mapeo de archivos, atributos y Convención sobre configuración. Hay grandes sistemas de producción basados en eso. Se integrará en Delphi Spring Framework desde la próxima versión principal. Es desarrollado por una pequeña comunidad internacional (6 personas). http://code.google.com/p/delphi-orm/
Para mostrar algunas características básicas, esta es una prueba de unidad realmente utilizada.
procedure TTestDORM.TestCRUD;
var
p1: TPerson;
p1asstring: string;
id: integer;
begin
p1 := TPerson.NewPerson;
try
Session.Save(p1);
p1asstring := p1.ToString;
id := p1.id;
Session.Commit;
finally
p1.Free;
end;
Session.StartTransaction;
p1 := Session.Load<TPerson>(id);
try
CheckEquals(p1asstring, p1.ToString);
Session.Commit;
finally
p1.Free;
end;
Session.StartTransaction;
p1 := Session.Load<TPerson>(id);
try
p1.FirstName := 'Scott';
p1.LastName := 'Summer';
p1.Age := 45;
p1.BornDate := EncodeDate(1965, 1, 1);
Session.Update(p1);
p1asstring := p1.ToString;
Session.Commit;
finally
p1.Free;
end;
Session.StartTransaction;
p1 := Session.Load<TPerson>(id);
try
CheckEquals(p1asstring, p1.ToString);
Session.Delete(p1);
Session.Commit;
finally
p1.Free;
end;
Session.StartTransaction;
p1 := Session.Load<TPerson>(id);
try
CheckNull(p1);
Session.Commit;
finally
p1.Free;
end;
end;
P.S.Soy el autor principal y director de DORM
Creo que actualmente no vale la pena para un proveedor para dirigirse exclusivamente D2010 –
@Marco: Delphi 2010 introdujo extendida RTTI cuales es necesario para serializar/deserializar todos los campos de objetos (incluidos los privados y protegidos) y los atributos que son una forma muy poderosa de agregar metadatos a las definiciones de clase. – mjn
Voto para cerrar esta pregunta como fuera de tema porque es una opinión abierta pregunta. –