Project Description
A lightweight service/repository framework on top of
mongoDB. This framework will allow any project developer to get up and running with a service/repository framework that will store and retrieve data from a
mongoDB database. This project is still very much in an "alpha" development phase. However, there are many planned enhancements (see the
project roadmap for more details).
Features
- Provides a framework of Services and Repositories to help organize your code that will use mongoDB ad your data store.
- The ability to interact with mongoDB using standard POCO's.
- Store your models in one or more databases.
- Provide a before and after save functionality that will always occur.
Why did I create this project?
I am currently working on a side project and when I started, I created the start of the code base for this project. I thought that this might be something that others were creating over and over. I created this project as a starting point to for any .Net project that will have a need to store and retrieve data from a
mongoDB database.
Some technical details
This project is written in Visual Studio 2010 using C# 4.0. It utilized the
mongo c# driver from the creators of
mongoDB. For testing it is using
xUnit.Net and
moq.
Project Roadmap
This is a list of the items that are currently planned for future versions.
- Add some examples to the documentation section of this site
- Create a sample project that will utilize all of the functionality of this framework
- Distribute via NuGet
- Exposing more of the mongoDB functionality through the framework
- Better exception/error handling
- Soft-deleting of data rather than completely losing it forever
- Record-level versioning (easier that creating and maintianing an audit trail collection)
- Pre/Post delete functionality
- Limits for the number of resulting records
- Ordering of the records
- Behaviors that will be applied to all queries through a given repository
- Dynamic getters
- Test and ensure that it runs on Mono
- Any other crazy features that may be useful!
You can follow me on Twitter: @MarkStarkman