Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News Jasper: ORM without Code Generators or Configuration Files

Jasper: ORM without Code Generators or Configuration Files

Jasper is Microsoft's new ORM project designed for rapid application development. And unlike earlier Microsoft projects, this one does not require code generators. The goal? To "make the experience of developing quick and dirty database apps one that is truly quick and clean."

Traditionally Object-Relational Mapping comes in three flavors. First is the hand-rolled code, where-in each data class is created manually without any help from the IDE. The second, which is very popular with Microsoft, is code generators. From early.NET technologies like typed datasets to LINQ, code generators create the domain objects that are mapped to the database.

In the Java and Open Source camps, configuration files are quite popular. These files, often written in XML, define what the objects look like at run time. While the tools are different, the end results are very similar to the code generators mentioned above.

Microsoft Codename “Jasper” is a set of components aimed at fulfilling the need for a rapid and iterative development experience for data. With Jasper, you are able to just point at a database and immediately begin coding against its data using intuitive, domain-specific data classes. No configuration and no source code generation are required. Jasper works with existing application frameworks (including ASP.NET, WinForms, and WPF) and existing, real-world databases.

In real terms, this means the data objects are generated at run time based on the database schema discovered. Ideally, this will give you most of the rich experience you would expect from LINQ without the hassles of keeping generated code in sync.

For the initial CTP, the target languages are Visual Basic 9 and IronPython 1.1. C# will not be supported because it lacks the late binding features needed to work with the runtime generated classes.

The dynamic features offered by the DLR are being considered for Jasper. Theoretically, they will allow business rules to be attached to the dynamically generated data objects at run time in the form of additional methods and properties.

Rate this Article