What would be your main requirements for ORM/OPF framework in case you want to use one?

Comments

  1. Documentation. There are several frameworks out there now, both commercial and open source, but in most cases, documentation is either lacking or very thin. These are large, complex frameworks, and "Read the source, Luke" is not a great solution.

    ReplyDelete
  2. Bill Meyer Agreed - and another very useful thing would be Delphi design time tools, like what exists for EF, etc.

    ReplyDelete
  3. Andrea Raimondi Absolutely. Design tools would be great, but once again, need good docs, and also need a good deal of work. I have been trying to come to grips with TMS (Aurelius and Data Modeler), as I am able to make time. These are documented, though the documentation could benefit from greater depth. Data Modeler is quite good, but in generating classes, is as yet incomplete in handling the variations needed for some RDBMSes. Example: Targeting Firebird, I define generators on some of the tables. When the classes are generated by Data Modeler, the [Sequence} attribute has not been inserted, so I need to do that by hand.

    Also, Data Modeler is right now a reminder of the old code generator products we saw in TP/BP days: it is a one-way tool. The [Sequence] attribute being missing, and the tool being one-way, have curbed my enthusiasm, as I need to commit to doing all the DB design work in Data  Modeler, but each time I make a significant change, I must generate updated classes, and then must manually add the [Sequence] attributes. So for now, I don't find it ready for use on a major project.

    ReplyDelete
  4. Micro-versioning, ie. ability to handle past versions of the structures without having to migrate the DB. This can be very important when DB are large, have regularly evolving structures, and can't be stopped for long periods.
    Also DB structure migrations always have a potential of going wrong, which means required extensive testing, which on larger databases is always problematic in one way or another.

    ReplyDelete
  5. What happened to InstantObjects by the way? The site hasn't been updated in quite a while, anybody's got an idea?

    ReplyDelete
  6. Eric Grange There are great tools (even free ones) which help to keep database up to date. Since we started using LiquiBase we now do not have any problems when database structure changes. We can change it as we want and anytime we want. All you need is to have updated ChangeLog file.

    ReplyDelete
  7. Linas Naginionis The problem isn't knowing what SQL to run to update the database, it's running the SQL on the large, live production database that is problematic. We've been having the whole db SQL & metadata in VCS since last century.
    Running the SQL takes time, restoring a backup takes even more time, and that's not counting the testing that has to happen to make sure the change won't cause any data loss (be it on existing data, or on new data entered after the structure changed). Even simply adding a new index on an existing table can result in huge server loads and has to be scheduled.

    ReplyDelete
  8. Bill Meyer We at TMS Software are addressing the exact issues you are experiencing with Data Modeler and Aurelius. The next two major features to be added are Sequence support in TMS Data Modeler and Update Database Schema in TMS Aurelius. Those are two very requested features and we are just listening the customers to make both Data Modeler and Aurelius the ORM solution for Delphi. With both, you can solve the sequence problem and also have a bidirectional solution (since you will be able to change mapped classes and update database from that). Finally I would like to say that although it can always improve, I'm very proud of TMS Aurelius documentation, it's extensive, it's easy to understand, and I can feel its efficiency since we almost all support issues we have about how to use something can be quickly answered with a link to some point in the manual, which is online at http://www.tmssoftware.com.br/aurelius/doc.

    ReplyDelete
  9. Wagner Landgraf Wagner, it is good to hear what lies in the near future. I have tried not to make biased or unjust comments on either DM or Aurelius. As to the documentation, while there is a good deal of it, I have still found myself looking for answers which are not there. As someone who has written a good deal of documentation in my career, I know, too, that although I may think the coverage in my writing is terrific, my own opinion is less valuable than that of a user trying to learn from what I have written.

    I am especially pleased that DM will become a bidirectional tool, though I shall be happily surprised if that capability comes very soon.

    My comments have been based on the PDF documentation. If it is not up to date with the online form, then I may be missing the full appreciation of the content. However, I am generally not a fan of online docs, and much prefer a PDF, as my preferred study happens away from keyboard, blogs, and e-mail.

    Finally, though I have said I don't think I am ready to commit a project to DM, I am still anticipating that it will become my tool of choice. The capabilities already in DM put it and Aurelius far ahead, in my view, of the other available frameworks and tools.

    ReplyDelete
  10. Bill Meyer About the documentation, sure it's not perfect and sometimes it's hard for the writer (TMS) to know in advance all types of topic an user might want to know. If you have any specific feedback about what do you miss in manual, I will be glad to know. You can write it here or send me a direct private message, whatever you prefer. PDF should be in sync with online doc. Thank you for your compliments!

    ReplyDelete

Post a Comment