SharePoint Cloud Development for Community Projects

By Danielle Arad - November 7, 2016

How CloudShare has enabled me to contribute to SharePoint community projects

We are pleased to welcome long-time CloudShare client and SharePoint architect, John Calvert, as a guest contributor to our blog .

The following article is an excerpt from a post on John’s personal blog. We invite you to read the full post here.

 

Until recently if you wanted to contribute to an open source or community-based software project in your spare/volunteer time, it often meant having to build a full-scale software development environment on your home/personal computer, including substantial CPU cores/RAM/disk hardware and numerous software licenses – with a potential cost of thousands of dollars. Fortunately the recent rapid growth in cloud-based IaaS/PaaS offerings has dramatically changed this situation. Now the software hobbyist or software engineering professional volunteering their time can contribute to nearly any project with no more equipment than a modern web browser.

j_calvert_quote.jpgThese cloud-based IaaS/PaaS offerings are a huge boon – especially for community projects targeting enterprise software systems such as Microsoft SharePoint Server and Microsoft Dynamics CRM. Both SharePoint Server 2013 and 2016 have hardware requirements that generally exceed the specs of most home office computer equipment. For example, a single server farm with all services requires 24GB RAM. Furthermore, when your focus is on rapidly enhancing a community project, then the time and effort to install, configure, tune, and patch server software such as the operating system, database server, and SharePoint Server is an overhead cost that does not directly advance the project.

Why CloudShare?
Two important considerations when I’m volunteering my spare time on an open source or community project are:

  • Ready availability of a pre-configured virtual machine suited to the community project’s technology stack – so I don’t have to spend hours or days building up a standard development environment before I can even begin making my volunteer contribution
  • Rapid provisioning and resumption of the virtual machine – which allows me to eke out useful contributions in spare moments of 20-30 minutes at a time

For my cloud-based custom software development platform I chose the CloudShare SharePoint development environment because it offers the best fit for me as an independent software developer.

A CloudShare environment comes with these essential features which satisfy my need for pre-configured virtual machines:

  • vm_templates_400px3.pngExtensive gallery of fully pre-built and pre-configured virtual machines
  • Gallery includes SharePoint Server farms in various single-server and multi-server configurations
  • Commonly used SharePoint service applications are pre-configured, e.g. Managed Metadata, Search, and User Profile
  • Commonly used SharePoint web applications are pre-configured, e.g. Publishing Portal, My Sites, and Team Site

With CloudShare it takes me under 5 minutes to provision a brand new fully functional SharePoint Server 2013 farm, and under 1 minute to restore it from hibernation. And it is completely self-serve, which fits in well with my erratic volunteer schedule.

Other features of the CloudShare platform that I have found especially beneficial for work on open source and community projects include:

  • Full local admin access for additional server configuration and software installation
  • “Environment” container for sets of virtual machines used for managing hardware resources and other global resources
  • On-demand snapshot of environment to baseline the configuration, e.g., for repeatability of functional and deployment testing
  • Easy to dispose of a virtual machine and re-provision a new one
  • External URLs for browser/HTTP access to virtual machine SharePoint site, e.g., for demos of the open source/community project

CloudShare for my Community Projects
Over the past several years, I’ve used the CloudShare platform to present at several conferences and user group meetings, and to support and contribute to several SharePoint and web community projects. Let’s take a closer look at how you prepare a CloudShare environment and SharePoint virtual machine ready for custom .NET, App-model, and pure HTML5/JavaScript software development for an open source/community project.

Prepare a CloudShare Environment
In my case, I’m working primarily with Microsoft SharePoint, so when creating my environment, I simply chose two virtual machines from CloudShare’s template gallery:

  • Microsoft SharePoint 2010 Server
  • Microsoft SharePoint 2013 Server

vm_list.jpg

The SharePoint 2013 Farm virtual machine is a single server farm with the following service applications and web applications pre-configured, which makes the virtual machine immediately ready for custom development for your open source or community project:

  • Application Discovery and Load Balancer service application
  • Managed Metadata service application
  • Search service application
  • State service application
  • Usage and Health Data Collection service application
  • User Profile service application
  • Publishing Portal web application
  • My Sites web application
  • Team Site web application

Wrap Up
Thanks to CloudShare, my idea of the home office has completely changed. Now my home office is in the cloud and I can resume and access it or even re-provision it whenever I need, not just when I’m physically at home. This has enabled me to contribute to numerous open source or community software projects in my spare volunteer time.

john_calvert.jpgAbout the Author
John Calvert is a seasoned SharePoint solution and technology architect and .NET solution architect, designer and programmer/analyst, with over 18 years’ experience designing IT systems and software for leading enterprises and government agencies – from Nortel to the Department of Justice of Canada to the Canadian House of Commons. John is also passionate about speaking, teaching, and training in the IT community.