There are many ways to develop SharePoint 2013 solutions or apps.
Some of these options are:
- Have SharePoint locally on the laptop or on a VM.
- Use Office 365 SharePoint Online and have Visual Studio installed locally.
- Use a VM online like Azure and CloudShare then remote into those to do development.
and now there is one more:
- Use CloudShare to install SharePoint 2013 and have Visual Studio installed locally.
Personally I like the option to develop using SharePoint Online however I would like to have a little bit more control over the SharePoint Farm that I develop against. So I start looking into alternatives and found one:
Using CloudShare and have both options of developing on the VM itself and remotely like with the SharePoint Online. For this to happen we need to enable the SharePoint to be available on the internet and enable SharePoint Apps infrastructure to be available on the internet too.
Danny Jessee posted on CloudShare Blog (http://blog.cloudshare.com/2012/11/09/setting-up-the-cloudshare-sharepoint-2013-rtm-farm-to-support-apps/) showed how to enable Apps inside SharePoint using a local DNS server.
We will turn that around and use a public DNS server which would help us getting Apps working inside SharePoint from the Internet.
To make things simpler and be able to follow the entire process I put together all the steps necessary to create a single server Farm with Apps enabled from the internet: (if you only look on how to enable the remote app development check step 3 bellow)
- Install single SP Server VM
- Windows Server 2012
- SharePoint Foundation 2013 (single server Farm)
- Install binaries
- SharePoint Products Configuration Wizard
- Extend the SP WebApp to use the external URL
- The initial installation creates a Web App that uses the computer name. CloudShare provides a static external url to access the VM so we will use this URL to access SharePoint from Internet by extending the Web App to respond to this URL
- Configure the SP App domain to point the external address
- What we need is a wildcard CNAME DNS entry to a custom domain that will be used by SharePoint to generate apps urls.
- For this we will use a www.cloudns.net free subdomain which allows
- Create new zone and Configure a Wildcard CNAME DNS entry for the external address of the VM
I have created a zone under cloudns.us named spapps and then added a CNAME entry: (use your own zone name)
|CNAME||External url for the SharePoint VM from step 2 above|
- Configure SP to point to the newly created app domain
Central Admin -> Apps -> Configure App URLs
(need to have “App Management Service” and “SettingsServiceApp” installed and running: Follow http://technet.microsoft.com/en-us/library/fp161236.aspx on how to get those two services up and running.)
Associate the App Service Proxy with the Web App
Central Admin -> Application Management -> Service Applications -> Configure Service Application Associations
- Create App Catalog (optional)
- Add an app form the SharePoint store ( World Clock and Weather from Bamboo Solutions should do it)
- Create a Developer site collection
/sites/dev using Developer site Template
- Start Visual Studio and Happy codding SP Apps remotely.
With this approach I am able to develop remotely with no need to remote desktop and I also have full access to the SharePoint Farm to configure it as I see fit.