SharePoint 2013 Development Environment
In this post, I’m going to describe my setup and some of the software and system requirements I needed for getting a SharePoint 2013 development environment up and running. I’ll try to update this post as new releases of the Microsoft Office Developer Tools for Visual Studio 2012 are released or I make major changes or discoveries as time progresses.
Development Environment Setup
I’ve been using CloudShare for some of my SharePoint 2013 development ever since I purchased my new MacBook Air 11 inch which is maxed out at 8 GB and running Parallels so I can run Windows 7. But recently I’ve decided to pull out my old Dell Precision M6500 laptop which has 16 GB to get a SharePoint 2013 development environment set up locally. This beast is a great laptop for SharePoint development, but it is very heavy (the power supply is heavier then my MacBook Air). The great thing about it is that supposedly it is upgradable to 32 GB (using 4 DIMM slots). I may try to upgrade two of the SIMMS to get up to 24 GB if I’m not productive using 16 GB. This blog post describes my current configuration leveraging the 16 GB and a brief description of the Microsoft Office Developer Tools for Visual Studio 2012 Preview 2 (OfficeToolsForVS2012GA.exe – released November 11th, 2012).
If you are new to SharePoint 2013 development, there are some significant changes in the development requirements compared to SharePoint 2010. First of all, Microsoft recommends at least 24 GB of RAM. Yep that’s right 24! In the following article they state at least 16 GB, but 24 is recommended:
In any development environment, you should use a computer with an x64-capable CPU, and at least 16 GB of RAM to install and run SharePoint 2013 Preview; 24 GB of RAM is preferable.
There is some debate if you really need that much RAM. See Bjørn Furuknap’s SharePoint blog post and all the steamy comments from Jeremy Thake, Doug Ware, Joel Oleson, Chris McNulty, Sahil Malik, and others for more details: http://blog.furuknap.net/sharepoint-2013-system-requirements-the-real-story-and-theyre-out-of-this-world
Now the other requirement for SharePoint 2013 development is to use either Windows Server 2012 or Windows Server 2008 R2 SP1. Since I’m running VMware Workstation 7.1.6 on my laptop, I was unable to install Windows Server 2012 and instead of paying the $120 upgrade fee to get to VMware Workstation 9.0, I opted for using Windows Server 2008 R2 SP1.
By the way, if you want to use Windows 7 or Windows 8 to develop apps for SharePoint, Microsoft recommends that you use Office 365 and sign up for a developer site to develop in the cloud:
We support installation of SharePoint 2013 Preview only on Windows Server 2008 R2 Service Pack 1 x64 or Windows Server 2012. If you want to develop apps for SharePoint for SharePoint 2013 Preview on Windows 7 or Windows 8, you can sign up for an Office 365 Developer Site and develop apps remotely. See How to: Set up an environment for developing apps for SharePoint on Office 365 for instructions about how to create this sort of development environment.
So my configuration today is as follows (note that I haven’t fully built out the machine, and it is likely to change, but this is what it looks like so far):
- Laptop with Windows 7 x64
- 2 internal drives (256 GB SSD for C: and 500 GB secondary drive for data)
- 16 GB (hopefully expandable to 32)
- Quad Core Q820 i7 CPU (Hyperthreaded to show 8 processors in Task Manager)
- VMware 7.1.6
- Two VM’s with Windows Server 2008 R2 SP1 (AD on one and SharePoint 2013 on the other)
Here are the specs for the Active Directory server:
- Windows Server 2008 R2 SP1
- 2 GB RAM (originally 1 GB, but bumped up so I can install Office 2013)
- 1 CPU
- Active Directory Domain Controller
- SQL Server Tools
- One 100 GB virtual hard drive
Virtual Machine #1:
Here are the specs for my SharePoint 2013 server:
Virtual Machine #2:
- Windows Server 2008 R2 SP1
- 10 GB RAM
- 4 CPU’s
- Three virtual hard drives 300 GB each
- SQL Server 2012 Developer Edition
- SharePoint 2013 Enterprise Edition
- Visual Studio 2012 Ultimate Edition
- Microsoft Office Developer Tools for Visual Studio 2012 (Preview 2)
If you are good with math, you may have noticed that the virtual machines’ hard drives add up to 1 TB (100 GB on VM1 plus 900 GB on VM2). But my host machine only has 756 GB. This is the magic of virtualization. I can use expanding disks so the virtual drives only consume as much space as needed on the physical drives.
Here is another optimization I did. I moved the databases and log files to the second and third virtual drives and moved those virtual drives to physically reside on the SSD (my C: drive). On the SharePoint 2013 Server, I moved the SQL Server master database to the second virtual hard drive. The benefit of doing this is that all databases created for SharePoint, will go to the same drive and location as the master database. This will allow me to use the faster SSD disk for SQL data, which is used heavily in SharePoint. Refer to the following MSDN article for the steps to follow to accomplish this task:
The log files are easy to move:
- Move IIS log files using APPCMD: http://forums.iis.net/t/1172386.aspx
- Move ULS logs files using Central Admin: http://technet.microsoft.com/en-us/library/ee748656.aspx
If I get more RAM for my laptop, I’ll be able to bump up Virtual Machine #2 to something more than 10 GB to get closer to the Microsoft minimum of 16 GB. But for now, this is what I’ve got. Note that the host OS (Windows 7) has 4 GB and the rest is allocated for these two VM’s. I’m thinking I may install Office 2013 on the AD server which has a minimum requirement of 2 GB of RAM. That way I can use the AD server as a test client since I’m still using Office 2010 on my host machine.
SharePoint 2013 Developer Tools
Here is the interesting part. SharePoint RTM was completed on October 11, 2012, six and a half weeks ago, but the developer tools are still in Preview 2 as of November 25th. You can download them on the “Tools” section of the following web page:
Now, SharePoint 2013 was made available for MSDN and TechNet subscribers to download on October 24, but that is still four and a half weeks ago. When will the final version of the tools be available? I’m guessing there was some pressure to release Windows 8, Office 2013, along with a bunch of other products as soon as possible, so for now we will need to work with the preview tools released two weeks ago until the final tools are polished and ready for final release. But you never know, sometimes developer tools stay CTP or preview release quality. Anyway, I’ll update this blog post if there is an update.
This is a good time to talk about snapshots. I took a few key snapshots of my VM’s while building the servers so I could roll back or branch as needed. For example I took snapshots after the OS was installed and fully patched. Before I installed SharePoint 2013 I took another snapshot. And before I installed the Preview 2 developer tools for SharePoint 2013, I took a snapshot as well. That way, I can roll back in case I have issues when the final SharePoint tools arrive, so I don’t have to rebuild my rig from scratch.
Visual Studio Project Templates for SharePoint 2013
After I installed the Microsoft Office Developer Tools for Visual Studio 2012 – Preview 2 (which you can download here: http://msdn.microsoft.com/en-us/office/apps/fp123627), there are two types of SharePoint templates that show up in Visual Studio 2012:
- SharePoint Solutions
Apps for SharePoint 2013 Project Template
The “Apps” are for building SharePoint apps using the new “Apps for SharePoint” development model described on MSDN here: http://msdn.microsoft.com/en-us/library/fp179930.aspx
There is only one SharePoint template under “Apps”. The other template provided in this section is for Office 2013.
SharePoint Solution Project Templates for SharePoint 2013
The “SharePoint Solutions” are for building SharePoint 2007 style “Farm Solutions” which require full trust or “Sandbox Solutions” which allow you to deploy with less privileges.
There are five project templates for SharePoint 2013 included in the Microsoft Office Developer Tools for Visual Studio 2012 Preview 2 (released November 11th, 2012). These are:
- SharePoint 2013 – Empty Project
- SharePoint 2013 – Silverlight Web Part
- SharePoint 2013 – Visual Web Part
- SharePoint 2013 – Import Solution Package
- SharePoint 2013 – Import Reusable 2010 Workflow
They SharePoint 2010 versions of each of these (which were included with Visual Studio 2012) are renamed to match the naming convention of the 2013 templates when you install the Office Developer Tools. I’m not sure if they are modified in any other way, though.
When you choose the any of the SharePoint 2013 Solutions you will be able to choose from a “sandboxed” or “farm” solution, except for “SharePoint 2013 – Import Reusable 2010 Workflow” which has the sandboxed option disabled and can only be deployed full trust as a farm solution.
App for SharePoint 2013
If you choose the App for SharePoint 2013, you are presented with three options for hosting your app: autohosted, provider-hosted, or SharePoint-hosted:
The provider-hosted option is probably the most interesting for SaaS and ISV companies because they will be able to leverage their existing infrastructure, including languages such as Java and PHP on Linux or any other systems.
If you choose “Autohosted” or “Provider-hosted” you will end up with a similar solution structure, the main difference is that the provider-hosted choice will present you with a secondary screen asking you to provide authentication options “use a client secret” or “use a certificate”:
Using OAuth and a client secret you will require the SharePoint farm connected to ACS (Windows Azure Access Control Service) as described here: http://msdn.microsoft.com/en-us/library/fp142382.aspx
For high-trust apps, you can choose to use a certificate as described in the following MSDN article: http://msdn.microsoft.com/library/fp179901(v=office.15).aspx
For both autohosted and provider-hosted, you will end up with a Visual Studio solution with two projects, a SharePoint app with an icon file and an AppManifest, and a Web project with a Default.aspx page, some jQuery files, a TokenHelper.cs or TokenHelper.vb file to assist with the OAuth, and a couple of config files (Web.config and packages.config):
The separation of two projects are required to separate the code that is deployed to SharePoint 2013 (the app) and the Web project which will be deployed to Azure or some other cloud hosted or on-premise hosted environment outside of SharePoint. The Web app will therefore not impact the SharePoint resources when accessing a database or other external system. It will need to call back into SharePoint using a REST or web service call and the client object model.
For SharePoint-hosted apps you will only get one Visual Studio project in the solution which includes a Default.aspx, jQuery files, CSS, app icon file, app manifest, and your packages.config file:
So that’s it for now. I’ll post updates to this blog post on any changes to my environment or any new details. Plus I’ll update information when the Microsoft Office Developer Tools for Visual Studio 2012 have any future releases (after Preview 2). Please let me know what you think or ask me any questions in the comments section below. Happy SharePointing!