SharePoint Genesis

I’m preparing some posts on dealing with lists in a very cool way, but the whole concept is revolving around SharePoint Genesis, an open source tool I don’t think everyone is familiar with, so this post is a brief intro on the topic (and not an advertising material).

We’re working on a pretty large SharePoint project which involves fiddling a lot with technical lists and content types. I haven’t got a massive SharePoint experience (five moths so far) but I found that I (and every other developer I work with) have serious issues with these things put together by hand.

Once I had to deal with the fact that a content type was generated differently on my development server, on our integration server, on the client’s development server and even on the production server. And yes, it was put together by the very same person, in a few days’ difference. Try to get SPMetal work with that one.

Of course there’s a solution to this problem – and it is open source and downloadable from You could have guessed that it’s called SharePoint Genesis. In a nutshell it’s a list-generating framework for SharePoint. Using it we were able to wrestle complete control of every list used in the project from consultants. It gives you type-safety and can be easily used similarly as an ORM tool. Fields, content-types, lists, event receivers – it provides everything needed to store and retrieve data from SP.

Even better you can easily wrap it around an existing list and using the repository pattern it’s easy to access the underlying data from code. Be sure to examine it and experience with it before you make a decision. The main drawback is the lack of documentation (and for me it was very strange to work with inner classes as if they were properties (which they really should have been)), but you can always read the source.

Leave a Reply

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

You are commenting using your 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