For those who don't know it yet, Karvonite is a project hosted in the MSDN Code Gallery, available under the term and conditions of the Microsoft Public License.
But, what is Karvonite? From the homepage's overview:
Karvonite is an object persistence framework for the .NET platform. Karvonite's goal is to relieve the developer from all serialization related programming tasks in a non-invasive way. It can save you from writing a lot of boring and thus error-prone code for moving the in-memory objects to and from the data storage. The Karvonite API is very simple and provides a gradual learning curve with a very low entry point.
Despite the fact that .NET serialization and XML files are ideal for storing data easily and effectively, in several cases they are not a viable replacement for a data engine. In contrast, not all applications require the horsepower and the excessive functionality and optimization of an enterprise database or a SQL engine; databases are a skill unto themselves and the learning curve is not as fast as expected.
Benefits? Read on ...
- Transparently save/load .NET objects,
- Non-invasive (no interfaces, base classes or special attributes required.),
- Automatically handles object graphs and references (shared and circular),
- Easy to use and deploy, and
- Supports .NET Framework 3.5, XNA 3.0 (Windows, XBox360, Zune) and .NET Compact Framework 3.5.
To use this solution you will need two main components: a tool called "Persistence Model Designer" and the framework assembly named "Karvonite.dll", having both a relatively fast learning curve.
The authors of Karvonite are open to comments and suggestions, and really want to refine the solution to meet all XNA requirements. So, if your are an XNA'er go ahead and let them know the features you'd want to see in future versions of Karvonite.
Service Pack 2 for the April CTP has been released today, thus if you want to try this persistence framework go and get it here.
For further news and notifications of future releases, you can also subscribe to Karvonite's blog.
> Link to Spanish version.