Rob Gonda's Blog

ORM: Transfer 0.6 Released

Mark just announced that Transfer 0.6 has been released. No major changes since the last 0.6 RC other than a few bug fixes; however, this is great news -- for me at least -- because now Mark can jump to the next few items on the road map, such as composite keys.
There are many methodologies in database design, and mines always end up with composite keys all over the place, which makes it a little more difficult to use Transfer, but no more! I'll be the first one to alpha test the new releases since I've been a major pain bugging for this enhancement.

Nicely done Mark!

Transfer ORM Presentation

Mark Mandel presented his Transfer ORM today over breeze -- see the online recording here. For those of you new to ORM, it stands for Object-Relational Mapping, and it is a programming technique that links databases to object-oriented language concepts. Relational databases use a series of tables representing simple data, while in OOP, programming objects represent real-world objects.

Transfer is based on the Data Access Object (DAO) design pattern to separate low-level data access logic from high-level business logic, but automating classes that provide CRUD (create, read, update, delete) operations for each data source.

A typical DAO implementation has the following components:

  • A DAO factory class
  • A DAO interface
  • A concrete class that implements the DAO interface
  • Data transfer objects (sometimes called value objects)

The concrete DAO class contains logic for accessing data from a specific data source. In the sections that follow you'll learn techniques for designing and implementing data access objects.

Transfer automatically generates all the access objects to the database, allow you to concentrate in the service layer (and perhaps any gateways you may need).

The beauty is that by using an ORM, you don't need to write any CRUD SQL statements, data access objects, beans, or value objects. Transfer works with MsSQL, MySQL, PostgreSQL, and Oracle.

This blog is running version 5.9.003. Contact Blog Owner