Prepare for Core Data enhancements

Jan 31, 2007 14:26 GMT  ·  By

Core Data is a part of Mac OS X's Cocoa API that was introduced for the first time in Mac OS X 10.4 Tiger and allows any data type organized using the relational entity-attribute model to be serialized into XML, binary, or SQLite stores. This data can be manipulated using a higher level set of objects that represent entities and the relationships that exist between these entities. Core Data interfaces directly with SQLite, providing object lifecycle and object graph management and insulating the developer from the underlying SQL foundations.

The same way Cocoa Bindings handles many controller tasks in a Model-View-Controller design, Core Data is being able to take care of many model duties, such as change management, serializing to disk, queries and memory footprint minimization, but one of its big issues at this time is that you can't use it to build multi-user applications.

Mac OS X Server, the Leopard version, will ship with MySQL, a notorious high quality multi-user database engine, and everybody expects Xcode 3 to arrive at about the same time. With Core Data available as a complement to Apple's Cocoa, developers are able to build quality applications based on the Model-View-Controller (MVC) pattern, while easily defining the data models in a graphic way and providing the meanings to deal with undo/redo and data persistence.

Take it as a rumor, if you want, but we have to see a consistent upgrade in Core Data to allow the development of multi user applications, even though this may support Mac OS X Server/MySQL for the start, leaving the other database systems aside. If Apple manages to do this, the road to fast building of enterprise quality applications will be much easier, and this will add a solid boost to Leopard's success. All we have to do for now is wait, but be sure that I'll keep you posted!