I bought my Surface Pro 3 in April 2015 as my dedicated development computer for .NET and SharePoint development. The Surface Pro 3 has 8GB of RAM, 512GB of storage and i7 CPU. Compared to my previous desktop setup, I had 16GB of RAM, 2TB of HDD Storage, and AMD Quad Core CPU.
General Development
For general development there was plenty of storage space to install Microsoft Visual Studio 2013 and 2015 and other development tools.
If you’re a .NET or SharePoint Developer, ReSharper by Jetbrains is one of the best development tool that I never had to regret paying for. I would recommend to buy a personal licence if yo don’t already have one.
If you needed access to a database but you don’t want to install SQL server on your Surface Pro to save memory and storage space, I would suggest signing up for Windows Azure 30 days trail or if you are already an MSDN or Microsoft Partner Subscriber you should receive free credits to use each month to use the service.
For myself I had decided setup my development database in Windows Azure and load it with sample data from AdventureWork or I could create a new one for production. If you don’t want to move to cloud yet then the other alternative option is setting up a dedicated SQL Server on your home or office network and make it accessible externally.
You definitely need source control to backup and version your source code, I had made the mistake in the past and lost my source code or can’t remember what was my last changes were. So don’t make the same mistake as I did!
There are some free source control tools out there that you can use and the most common ones are GIT, Mercurial, SVN and TFS (Microsoft Team Service). And if you need somewhere to host you repository for free you can try one of these services GitHub, Bit Bucket and Visual Studio Online. I went with Visual Studio Online and it’s free for up to 5 developers.
If you still don’t want to make to move to the cloud, you can always setup a source control server on your home or office network. You can try out Microsoft’s Team Foundation Express Server which is free for up to 5 developers, it’s similar to Visual Studio Online.
SharePoint Development
There are two ways to develop for SharePoint, SharePoint App Model and Farm and Sandbox Solutions.
If you’re planning to develop using the SharePoint App Model and you have access to SharePoint Online. Then you don’t need to setup a virtual machine to host your SharePoint Server on your Surface Pro.
If you’re developing a farm or sandbox solution then you definitely need to setup a development virtual machine.
I am using VirtualBox to create my development virtual machine on my Surface Pro, using the following settings: 5141MB (5.1GB) of Ram, 250GB dynamic hdd space, 2 x processors, 128MB of Video Ram and Bridged Adapter for networking.
Just for your information I have a Domain Controller setup on my home network and I logon to my Surface Pro and Home PC with my domain user account. If you don’t have a domain controller it’s going to be a bit of a problem, but you can try to create another virtual machine to host your domain controller, then this is most likely going to chew up some resources from your Surface Pro.
On my virtual machine I have installed Windows Server 2008 R2 (you can install Windows 2012 R2 if you want) with SharePoint 2013, Visual Studio 2013, ReSharper (Yup I can’t live with out it), SharePoint Designer 2013, SharePoint Manager 2013 and I use Visual Studio Online for my source control.
This setup runs well for less than 8 hours of work, if you go over 8 hours you will begin to notice that SharePoint is slowing down or sometimes just doesn’t work anymore. When it comes to this try performing an iisreset from the command prompt or reboot the virtual machine.
So I hope this blog is going to help you decide if you want to use a Surface Pro 3 for general and or SharePoint development. When I wrote this blog Microsoft had just recently release the Surface Pro 4 with 16GB of RAM and Intel Skylake processor. I think the Surface Pro 4 would be the best choice for SharePoint development.