A Quick Simple.Data roadmap

Version 0.4, mid-January

I’ve recently got to do some more work on Simple.Data, and this week I’ll be pushing the 0.4 release to NuGet and OpenWrap. This release adds support for stored procedures, which can be executed by calling them as methods on a Database or Transaction:

var db = Database.Open();
var procedureReturnValue = db.usp_SomethingTheDbaWrote(fromDate: DateTime.Today);

This also adds support for multiple result sets being returned from the procedure. I’m looking into how to handle Output Parameters with some kind of mutable value wrapper, because the dynamic framework doesn’t support ref/out method parameters.

Version 0.6, early February

The next release version will be 0.6, which is going to add support for constructing complex queries with explicit joins, column lists, ordering and grouping and so on. I’m intending the syntax for that to look something like:

var db = Database.Open();
var q = db.Employees.As("Employee").CreateQuery();
q.LeftJoin(db.Employees.As("Manager"), q.Employee.ManagerId == q.Manager.EmployeeId)
    .Select(q.Employee.Name.As("Employee_Name"), q.Manager.Name.As("Manager_Name")
var rows = q.Run();

If you’ve got any ideas for improving that syntax, please leave them in the comments. I’m aiming to get 0.6 out in early February.

Version 1.0, late February?

Unless somebody points out a glaring omission, the difference between 0.6 and 1.0 will be bug fixes and performance improvements, plus I’ll also be adding support for SQL Server Compact Edition 4.0 in 1.0 Beta 1. If you don’t need that or the complex query feature, then by all means start using the 0.4 release, which would let you work around that gap with stored procedures anyway.

I’ve also had some people ask about Mono support, and that’s something I intend to support fully for Mono 2.8 and above. If you’d like to contribute towards that goal, then the main thing that will be required is Providers for the AdoAdapter. This works much like the Ruby DataMapper approach, which has an adapter for RDBMS systems which then accepts further plugins for specific databases. Obviously the key providers for non-Windows systems are MySQL, PostGRESQL and Sqlite. So if you fancy working on that, let me know.


  1. Do you think Oracle support will arrive in v1.0?

    • It hasn’t been high on my to-do list, but it’s not a massive task. Basically just an extra provider for the ADO adapter. It’d be a fun way of brushing up my Oracle skills, too. So I’ll add it to the list for 1.0.


  1. […] working on 0.6 features, which are as described in this earlier post, but there are a few other things that need doing if you’re looking for something to hack on. The […]

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: