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.

sharepoint2013

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).

RAM Requirements

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.

http://msdn.microsoft.com/en-us/library/ee554869.aspx

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

OS Requirements

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:

NoteNote

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.

http://msdn.microsoft.com/en-us/library/ee554869.aspx

My Configuration

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):

Host machine:

  • 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:

    Virtual Machine #1:

  • 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
  • vm1

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)
  • vm2

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.

SSD Optimization

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:

http://msdn.microsoft.com/en-us/library/ms345408.aspx

The log files are easy to move:

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:

http://msdn.microsoft.com/en-us/office/apps/fp123627

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.

Snapshots

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.

snapshot

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:

  • Apps
  • 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

SP2013_Apps_Highlight

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. 

SP2013_Solutions_Highlight

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.

sandbox_highlight

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:

SP2013_App_Template_Highlight

Autohosted Apps

Autohosted will allow the consumer of you app to host it in their own Azure account.  Provider-hosted will allow you the app creator to host the app yourself in your own cloud.  This can be Azure, Amazon Web Services (AWS), or literally any server or service that is accessible from the Internet and can speak HTTP and HTTPS.  Finally SharePoint-hosted is going to limit you to building your app in JavaScript which means that it will be deployed in SharePoint, but your code will execute in the app user’s browser.

If you need more resources than JavaScript running in the user’s browser, then autohosted will allow you to develop in C# or other Azure languages and leverage all of the Azure scalability including blob and table storage for NoSQL databases or SQL Azure for relational databases.

Provider-hosted Apps

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”:

provider_hosted

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):

autohosted

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.

SharePoint-hosted Apps

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:

sharepoint_hosted_solution_explorer 

Summary

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!

Advertisements

8 thoughts on “SharePoint 2013 Development Environment

  1. Talabot,

    I am currently buidling some thing similar using windows 8 Hyper-v once I figure out the wifi bridging that is ;-( … Out of interest why didn’t you use Windows 2012 Standard or Data Center as the platform for your main dev machine… Like you I am keeping my PDC as win2008R2.

    • I started with Windows Server 2012, but kept getting errors on install using VMware Workstation 7. The only version of VMware that supports it is VMware Workstation 9. The upgrade cost was $130, so I went with Windows Server 2008 R2 SP1 instead.

  2. Pingback: SharePoint 2013 Development Environment « Share your knowledge

  3. Holy wow ! What a great guide and resource. 2013 certainly offers some new complexities and issues to work with but I must say this helped me out a lot. Going to add your site to my list of sharepoint blogs. Thanks a million times over!

  4. Article describes some basic development needs for SharePoint developers. Like Ram requirement, OS requirement, hot machine, virtual machine, SSD optimization and many other thing very neatly in this post.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s