This is a call to action for Sitecore to start hosting a NuGet feed of all common Sitecore assemblies. However, lets take a look at how the Sitecore development process has changed over the years.

Historically, Sitecore told developers to work in the 'web root'. This meant that you had direct access to the Sitecore assemblies as they were already in your bin directory. Some developers would even go so far as to check the entire Sitecore application, along with their code, into source control (yuck!). Some more advanced shops had very complex processes in place to 'stand up' up a Sitecore instance (think Sitecore SIM) before deploying custom code. Builds and deployments of Sitecore sites were typically very haphazard consisting of developers building locally, xcopy code deployments, and manual Sitecore package creation and installation. There weren't many developers writing 'shared source modules' back then either. Developers who were doing it were working in a Sitecore provided SVN system. They built their module, created a Sitecore package and checked it in to SVN.

So what has changed over the last five years?

  1. Team Development for Sitecore (TDS) (Sitecore serialization and other ways to source control your Sitecore items)
  2. While Sitecore hasn't officially changed their stance about 'working outside of the web root', John West and a majority of the community has accepted it as best practice.
  3. There are A LOT more Sitecore developers creating modules these days.
  4. Git[Hub] has become the De facto standard for open source projects.
  5. Sitecore has gotten out of the SVN hosting business; they created the Marketplace to aggregate modules.
  6. Visual Studio changes (extensions such as Sitecore Rocks, Package web, Slow Cheetah, etc...)
  7. Web Deploy technologies
  8. Build (and deploy) server availability and adoption
  9. NuGet

Let us consider the current process of developing an open source Sitecore Module.

The general approach, for me, would be to create a VS solution with a Web App project and a TDS project. I'd grab Sitecore DLLs from somewhere else on my system, copy them to my code workspace and put them in a 'lib' folder. I'd make the appropriate references to these libraries and begin coding. When I was all done, and ready to put the code in the public domain I'd have to remember to not commit the Sitecore DLLs and add a ReadMe telling other developers to add them. In fact, GitHub is filled with ReadMe files saying “grab the sitecore.kernel.dll from your Sitecore installation”. This is sooo 2009.

Now, once the code is up on GitHub, I would ideally have some automated build process that will build each commit that happens and make the module available to everyone. There are plenty of build server options out there these days (hosted TeamCity, Jenkins, VS Online, AppVeyor, etc...) and there really is no reason to not have this in place – except for the little problem of the build server not having easy access to the required Sitecore DLLs! Obviously, the thing that is building your code requires the dependencies; however, if we can't put the Sitecore DLLs in the source control repo, what are we to do?

Sitecore has the ability to fix that problem by 'simply' providing a NuGet feed of their assemblies! NuGet isn't going anywhere. In fact ASP.NET VNext (which is currently in CTP 2) is basically all package based. Rather than having a ReadMe file that tells the developer to go fetch the assemblies manually, the project should simply have a reference to a specific Sitecore NuGet package. 

I understand that Sitecore may not want to make their assemblies publicly available on the main NuGet feed, so why not have a private feed? Hosting a NuGet feed is trivial or there are third party providers (as they know, since Sitecore Rocks is using one). 

I've tweeted in the past asking for this, but a tweet has a short life. It is time to throw this out there to the community. Will, what I am proposing, make developing/building/distributing Sitecore sites and modules easier?

So what, you may ask, is the reason I bring this up again now? I'm glad you asked! There will be some upcoming blog posts outlining how I am revamping the build process for a Sitecore open source module.

Comments (3) -

Kam Figy

I completely concur with this idea.

Mark Stiles

I'd add that any of those binaries that aren't obfuscated also be considered for open sourcing. Pull requests could seriously streamline the bug fixing/patching process.

Mark Stiles

Oh right you suggested that. I skimmed way to much. Sorrily -mark

Add comment

  Country flag

biuquote
  • Comment
  • Preview
Loading

Selling RSWarrior.com

Selling RSWarrior.com

January 24, 2011

In the Summer of 2002, I was 24 years old, single, had a good number of friends who rode motorcycles, and my 1989 Suzuki GSXR 750 just broke down. I purchased the Yamaha Road Star (Star Cycles) Warrior in June, which, at the time, was one of the fastest and best handling power cruisers in the market. Being that I was coming from the sport bike realm, this was the bike for me.

2002 was the first model year for the Warrior so there wasn’t yet a community site up and running. There was a community of Warrior owners on a hosted forum site (Delphi), as well as a fan’ type site, but they had missing pieces. I started the rswarrior.com site in June of 2002 primarily using software written by me. With a bit of luck, and help from key people, the site took off.

Fast forward to December 2010. I am 33 years old, married, a home owner, a father to a two year old, and I have three girls on the way (yes you read that correctly). I still have the Warrior and put a few miles on it a year back and forth to work. However, my life has changed. I have responsibilities that life insurance just won’t cover, many of my friends no longer ride, and my passion time for motorcycles has dwindled.

I’ve been a fairly silent member on rswarrior.com over the last five or more years. There has been a great moderator team and, to be honest, they’ve ran it so well that I’ve been able to be silent. As silent as I was, I did always have my hands and eyes on it. The site had grown to over 21,000 registered members making about 30,000 pageviews a day. However, as my time for riding has dwindled so has my time for running the site. Even with the moderators doing a phenomenal job I just can’t help but feel that the site would be better off under someone else.

In light of the recent changes in my life, and changes yet to come, I’ve decided to let the site go. As of November 1, 2010 I am no longer the owner of rswarrior.com and by the time your read this you will have noticed that the site has changed hands.

I know that many of the 21,000 rswarrior.com members reading this are wondering what this means for them. I sincerely hope that it means you have a much better experience using the site. I created the site with a lot of blood, sweat, and tears and I know the moderators put in countless hours to keep the site running. I wouldn’t turn the site over unless I thought it was for the better. I still have the Warrior and will continue to be a member on the site.

Reflecting back, the site has had its share of bumps along the way. Very poor web hosts, server upgrades, weekend long down time, lost members, fighting members, thieving vendors, design and software changes, etc.. ultimately the community got through it all. I really do hope that the ownership change is just another small bump in the road and the community continues to grow.

Comments are closed