Monday, July 14, 2008

How do you DO?

As someone recently commented, this blog is not overall a very positive one. And while it was never my intention to write a fanboi blog, it doesn't have to be all negative either ;-)

Overall, I have grown to like the Sitecore product quite a lot. I find, that I am able to apply it to most any scenario my clients throw at me (though there was this one client of my former employer, who wanted the CMS to realtime translate her articles into all of the other installed languages... :P) - It helps me get the job done.

Now I am sure that most people who work implementing Sitecore solutions on a regular basis has adapted a way of their own. Either in the form of socalled "Helper" libraries, or maybe a drawer full of ready to go renderings for topmenus, left menus, breadcrumbs and whatnot. Me, as I often work with Sitecore jobs that involve tight integration with Sitecore data and external data (either in form of added Sitecore functionality, or migration from third party systems for instance), my most important tool in the drawer is the ability to work following modern OO practices - Domain Objects if you will.

I decided it is time for me to share something with the Sitecore community that makes it easy to do just that. Basically, this is my "5th generation" data layer if you will, although I would probably huff over anyone classifying this as generic "DAL".

Not only is it being shared, it is being shared in full. It is being released under the GNU General Public License v3, sources and all, in the hope there are other people out there that can see the benefit of the approach I suggest and will find it useful.

Here's a quick snippet of how Sitecore integration looks, when using it:

Enough rambling for now. Head on over to the official site in the Sitecore Shared Source Library to grab your copy, and to have a look around.

3 comments:

Jon said...

Hey Mark,

I'm trying to figure out exactly the implication of the GPLv3 license on this project; it looks great, and I'd love to use it, but I'm pretty sure that my clients aren't going to go nuts over my release of their site's source to comply with the license.

Am I missing something, or do you release all the source to sites you build with this since you licensed it GPL? I'm not trying to troll or anything, just confused and trying to figure out all the implications.

Thanks!

Mark Cassidy said...

Hi Jon,

I spent quite a long time reading through the GPL and all the interpretatoins of it - because I knew this exact issue would be relevant.

In short, the license does NOT require you to release your clients sites into the public domain.

The license has "copy-left" implications if you were to base code on DomainObjects that you would then release publically, either commercially or in any other form.

Deploying code to a client site is not a "public release".

I hope this clarifies it a bit :-)

See also: http://www.gnu.org/licenses/gpl-faq.html

Jon said...

Awesome - that's pretty much what I figured, but better safe then sorry. Thanks for your help; the implications behind the GPL are something i've never really fully understood.

I guess I'm going to be taking a closer look at this project now!

Thanks a lot!

- Jon