Generally speaking, the OpenNETCF ORM library gets worked on offline. We use it extensively in our Solution Engine product and so the “working” copy of the code resides on a separate source tree. The good part of this is that it’s always getting tested, extended and fixed. The down side is that I have to manually merge those changes back to the public source tree so it doesn’t happen probably as often as it should.
At any rate, I did a large merge this morning and there are some cool new features that have been added, along with a long list of bug fixes.
The general bug fixes and enhancements are largely SQL Server related, since we did a large SQL Server push for a customer this year, and the ORM benefitted from that.
The new features are twofold:
1. I added some rudimentary Connection Pool support. The ORM itself can now keep a pool of connections to your target data store and it will re-use them in a round-robin fashion. It’s nothing overly complex, but if you’ve got a few different threads doing different work on the database, it improves performance.
2. I added what I call a “Recovery Service” because I couldn’t come up with a better name. This doesn’t restore data, but instead it attempt to recover from failures when it can. It’s really useful for remotely connected data stores. For example, if you are using a SQL Server or DreamFactory DSP and the server or network goes down, your data actions are going to fail and you have to add in a load of handling logic for that. The Recovery Service is designed to help you out here. It will look for those types of failure and cache your operations until the store comes back online, at which time it will then apply the changes. Sort of a “store-and-forward” type of capability, but at the command level and in RAM.
The new release is over on CodePlex in source and binary format.