10 December 2012

Sitecore Extension distribution model


Distribution and management of Sitecore Extensions
With the nuget, github and Sitecore Rocks trio it has been possible for now a year to distribute Sitecore Packages through the nuget framework. Nuget enables easy management of extensions at project level and an excellent find-ability and distribution of code, combined with github for receiving contributions and distributing source code it has the potential to become a very nice eco system for everyone to use.

Since these Sitecore projects are hosted next to a lot of other great work, findability is important. Searching for "sitecore" will find anything but still leaves you with a project namespace that is quite random, therefore we propose the naming convention of "SitecoreExtension".

With time Sitecore themselves might pick up speed on the nuget distribution framework and chose to host a feed with Sitecore only nuget packages. This will just make this kind of standardization more important.

The more projects we want to import through nuget the more noise might come from them

SitecoreExtension project namespace
We have chosen the naming convention SitecoreExtension-* for allowing easier search in nuget and github and hope others will follow for getting some namespace discipline for the potential large amount of nuget packages that can spawn for Sitecore on the public nuget feed.

This means that config include files, are named with the project namespace and the nuget and github projects the same.

Since we feel this model is universal and not bound to one partner we hope that the following distributions will keep us in good standing with their original authors. We use the code on more than one project and instead of distributing our own closed source library we thought we would share some of the packages openly as github and nuget packages for everyone to be able to use and manage them through any upcomming sitecore versions.

SitecoreExtension DynamicKeyPlaceholder 
https://github.com/1508/SitecoreExtension-DynamicKeyPlaceholder

Based on prior work but as it turns out exactly the same technic as Nick Wesselman released on an excellent blog post at http://www.techphoria414.com/Blog/2012/May/Sitecore_Page_Editor_Unleashed

Having nuget packages for these types of extensions mean easier project maintenance and quicker delivery.
We are currently working on two new Sitecore releases where we required this extension and chose to github and nuget the code along the way for other to re-use.

SitecoreExtension TabbedRenderingSelector
https://github.com/1508/SitecoreExtension-TabbedRenderingSelector

Released the excellent TabbedRenderingSelector created by Cognifide as nuget package and created associated github project. Just because we wanted to be able to nuget this in place on future projects since it is such a nice addition. 

No comments: