Building your own module for Sitecore Marketplace

Posted 14 October 2014 12:00 AM by Alan Yip, Senior Sitecore Consultant @ ClearPeople

Why build a module in the first place?

I was always bought into the idea that the Marketplace was an area where other developers could show off their amazing development talent by creating some fantastic module that would help someone or some business with some every day problem. This could simply be a diagnostic tool or even a development tool like Sitecore Rocks.

In your everyday life as a Sitecore developer, you tend to create small modules to help with a problem but you would never do anything with it. It’s more of a throw away piece of software, until now!

Why create something that helped you and not share this out to someone else that may have the same issue as well? You simply wouldn't, but we essentially do it either subconsciously or simply there is no time for anything else.

That is why when writing this blog, I would’ve released a Workflow Manager module to the marketplace which you can download here and install and hopefully it will help you as much as it has helped me with some of my projects.

The problems I faced

When you start to think about uploading a module to the Marketplace, there are certain things that you can sometimes forget about because we feel that our fellow developers will be able to download this module, install it and it will work like a charm!

The answer is NO!

I'm a great believer of usability of a system and that also covers development as well. How can I build something for someone else to use and make it as easy to install, develop, use, extend, etc.?

Below are some of the things I found useful to think about before uploading my module and trust me, I'm no expert at this, but thought it would be useful for someone else:

Sitecore versions

Think about which Sitecore versions your module will work on. Will it go back as far as version 5? I think 6.6 is a good start but essentially 7.2 is where most people will probably be at, but covering as much range is always good.

Installation issues with existing folders

I created a Modules folder for one of my configuration settings item which may also exist for other modules so think about how you will package this so that it doesn’t simply overwrite someone else’s folder on their solution.

How many installations before it is perfect?

I found myself installing, re-installing, deleting, and removing for long periods of time. Don’t feel that this is a complete waste of time, it isn’t! Trust me, every time you install and re-install, you always find issues so make sure the installation is perfect before pushing this out.

Do I include the code in Github?

Well, this is for the more advanced users. I always think that if I want others to contribute or extend my module, then throw it up onto Github or some other collaborative revision control.

Christ! My code doesn’t look that nice!

This is more of a POC concern than anything else. If someone was really bothered about coding design patterns or code standards, then they should be looking for the source code and redesign it to fit into their architecture. For this purpose, this is a module that helps others but everyone’s coding style is different.

Test against other modules

I always install another module alongside my one and see if it breaks when installing my module against theirs. It helps iron out the simplest of issues which could arise with others trying to install your module in their solution.

Be there to help!

Finally, I’ve sometimes found that when I download someone else’s module and I have an issue, I don’t get a response when I ask for help or leave a comment. I’m always supportive with others just as Sitecore is with you. So always support where possible because you could be getting some good constructive feedback for your module, so I hope that I do as well!


Add your comment





intranet Modern SharePoint teamwork employee engagement digital workspace SharePoint JavaScript Windows Azure Digital Transformation staff satisfaction productivity Microsoft Teams Office 365 Yammer cms content management system agile GDPR Microsoft Graph collaboration Microsoft sharepoint 2016 upgrade migration SharePoint Online 2016 Tech Trends Digital Disruption Context marketing marketing SharePoint 2010 SharePoint 2013 TFS Git security kentico Analytics jquery QA Quality Assurance testing content management websites Sitecore sitecore marketplace sitecore module cloud Microsoft Cloud Storage digital strategy technical consulting sitecore modules Experience database Sitecore 7 Sitecore 8 support account management customer experience Data Storage cms integration front end front end development prototype Cloud Storage StorSimple Front-end Development Layout SharePoint 2013 colour palette UI design website design log viewer sitecore cms website Azure big data business-critical sharepoint accessibility android apple chrome clear people clearpeople debug emulator ios mobile testing opera resize adobe desktop flash ie10 internet explorer 10 metro windows 8 bcsp Advanced System Reporter reporting framework ControlMode form control master page placeholder publishing console SharePoint 2007 SharePoint error search search results search values software testing testing scenario audit content information architecture retention schedules PowerShell QuickLaunch scripts SharePoint server 2010 business solutions metalogix replication replicator storagepoint stena technet UK Technet picture library slideshow web part RTM released to manufacturing caml caml query MOSS 2007 query infopath