Welcome to Agility for ORMs
For software developers, there can be a significant amount of pain around database persistence. As software developers, we want to add features to applications, generally as quickly and easily as possible. Many of those features require changes to the database persistence strategy. Modifying database persistence can be tedious, error prone, and time consuming.
It should be possible for database schema changes to happen in an agile manner. Once a persisted class or a database table has a schema change identified, it should be possible to quickly make the change in one place and have the code and database sync'd up and the automated unit/integration tests rerun.
A good ORM can greatly ease the burden of developing software with object oriented programming languages against relational databases. That said, current generation ORMs generally fall short of being agile, especially when it comes to proper database schema migration support in production environments. Custom built in house ORMs tend to be more agile, but also tend to have tremendous development and maintenance costs. In house ORMs also tend to lag significantly behind the feature sets that off the shelf ORMs have.
What is needed is a holistic tool driven approach to database restructuring for software applications. Ideally, these tools would be available for all common software and relational database platforms from the Apple iPhone to the Microsoft Windows .NET environment. Just like we have tools to refactor code, we should have tools to refactor database schemas (while keeping the code and unit tests in sync with the database).
Please visit the Products Page to see what tools AFO has available for download today.
Please visit the Contact Page to let AFO know what tools in this area you would like to see released next.
If you would like to contribute to the next generation of developer tools to solve these problems, please visit the About Page to see what contributions AFO is looking for and then get in touch. Let's keep moving agile software development forward!