Good, Better, and Best – SharePoint 2010 Team-based Development Environments

SharePoint 2010 Development Basics

  • Minimum Hardware Requirements for the SharePoint 2010 development is 64-bit OS, 8 GB RAM, 60-80 GB hard disk space for local development.
  • Local SharePoint 2010 installation is required to develop against Server Side Object Model and debugging support. SharePoint 2010 can be installed as farm as long as SharePoint 2010 is installed on only 1 server in the farm. SQL Server can be installed on same machine or another machine. Visual Studio must be installed on the same machine as SharePoint.
  • For remote SharePoint 2010 development, you must use the SharePoint 2010 SOAP or REST Web Services Interface or Client Object Model. Please note that you can’t attach the SharePoint 2010 IIS worker processes to debug in remote deployment.
  • Preferred Microsoft Desktop or Laptop x64 Operating System is Windows 7 and Server x64 Operating System is Windows 2008 and Windows 2008 R2. Microsoft offers only x64 server virtualization technology in form of Hyper-V. Microsoft doesn’t offer x64 desktop virtualization technology as of writing. Both Virtual PC and Virtual Server is not supporting x64 guest OS.
  • This article assumes that developer desktop/laptop has Windows 7 x64 installed on the metal/physical hardware. If you have Windows Server 2008 installed on the developer host machine, you can use hyper-V as free software. Windows 2008 with Hyper-V may be a good choice for server or desktop virtualization but not recommended for laptops. Hyper-V was really never intended for use on laptops because of missing features like Sleep and Hibernation in Windows 2008. I have never liked this option for local development so, we will ignore this option.
  • Developer machines can be standardized in all three approaches. Since developers will be local admin on their individual environments, they can install additional software and configure their environment for specific needs.
  • This article assumes the individual SharePoint development environment. You can install Single Server SharePoint Farm on the fast, large machine and multiple developers can log in to the server to perform their development work. Having Shared SharePoint development environment can cause major contention of hardware resources during development having multiple Visual Studio processes running at the same time. Additionally, SharePoint solution deployment framework would bounce the IIS worker processes during local debugging and deployment process causing unpredictable issues.
  • Ability to share the network resources like AD, TFS, OCS/Lync, Exchange/Lotus Notes, or SQL Server are available in all three options as long as you are connected to the Network and able to access these software. Consultants or Third-party development environment may or may not connect to organization resources to get the common network resources like TFS or SQL Server because their domain can be different than client organization.

Good Approach – Develop directly on Local Developer Machine

  • Install Windows 7 x64, SharePoint 2010, Office 2010, Visual Studio 2010, and SQL Server on the developer machine’s physical hardware.  SQL Server 2010 and TFS 2010 can be configured as local or network shared resources.
  • Another option is booting up Hyper-V VHD on Windows 7 and install development software directly on VHD. Alternatively, If you are using Windows 7, you can also create a virtual hard drive (VHD) out of an existing Windows Server 2008 image on which SharePoint is installed in Windows Hyper-V, and then configure Windows 7 with BDCEdit.exe so that it boots directly to the operating system on the VHD. I would personally like this option for demos but it’s hard for daily development work.
  • Read Joel Oleson’s article for more options – The Great Virtualization Debate: What to do? SharePoint 2010 for Laptops – http://www.sharepointjoel.com/Lists/Posts/Post.aspx?ID=298
  • Pros
    • Offline Ability if all required software are installed on the Local Machine
    • Easy access to the environment. No need to boot up the local or network VM.
  • Cons
    • Must meet minimum hardware requirements for SharePoint 2010 development – 64bit windows OS (Windows 7, Windows 2008, Windows 2008 R2), 8 GB RAM, 50-70 GB Free Hard Disk Space, Faster SSD hard drive for better performance
    • Can’t be managed by central IT. User Responsible for their own backup. If developer machine is infected by virus or  crashes for some unknown reasons, developer environment can’t be recovered unless its backed up.
    • No ability to take the snapshot except inbuilt windows backup/restore.
    • Requires rebuilding the machine if major changes in the development environment in future. There may be situation if developer needs to work as CRM, BI or other role. In this situation, developer machine needs to be reimaged to avoid the dependency between different software and projects.
    • Overall cost may be cheap or higher depends on the hardware cost for each developer machine. Each developer machine requires minimum 8 GB RAM and 100 GB hard disk space.

Better Approach – Develop on Local VM – Desktop Virtualization on Windows 7 x64

  • Only VMware Workstation 7.0 and above supports this option for 64bit Windows 7, it’s paid software. Please note that VMware offers free product called VMware player. VMware Player is the stripped-down version of VMware Workstation and it enables you to quickly and easily create and run virtual machines. However, VMware Player lacks many powerful features, such as Teams, multiple Snapshots and Clones, or Virtual Rights Management features for end-point security found in VMware Workstation and VMware ACE. I would suggest to use VMware Workstation 7.0 and above for 64bit OS support. http://vmfaq.com/entry/5/
  • As a central IT in the organization, you can standardize the VM and distribute the VM whenever new consultant or employee joins the team. Team member would perform local development in his VM running on his machine locally and move the code to the integration environment before moving through the staging and production environment.
  • Pros
    • Offline Ability if all required software are installed on the Local VM
    • Ability to take the snapshot of VM and go back and forth in the Snapshot tree.
    • Ability to backup the VM on the External hard drive.
    • Ability to run the VM from the External hard drive, no need for enough hard disk space to run the VM
    • Developer can have multiple VMs for different projects and different software requirements. Easy to avoid the dependency by dedicated VMs for specific projects.
    • Easy to port modified VMs to another developer.
  • Cons
    • Must meet minimum RAM requirements for the SharePoint 2010 development on the developer machine – 8 GB, Faster SSD hard drive for better performance
    • VMware workstation is paid software. Overall cost may be cheaper or higher depends on the hardware cost for each developer machine. Each developer machine requires minimum 8 GB RAM.
    • Can’t be managed by central IT. User Responsible for their own backup. If developer machine is infected by virus or  crashes for some unknown reasons, developer environment can’t be recovered unless its backed up.
  • Recommendation
    • If offline development is major requirement, this approach provides best option as long as Shared network resources like TFS or SQL Server are duplicated to local VM and required sync to shared resources whenever developers able to connect to the network.

Best Approach – Develop on Network VM – Centralized Server Virtualization

  • Both VMware ESX and Windows 2008 Hyper-V supports this option
  • As a central IT in the organization, you will maintain the centralized virtual environment where you will spin off the VMs as needed on the server. You can standardize the VM and spin off the VM whenever new consultant or employee joins the team. This can be similar as provisioning new AD account.
  • Pros
    • Enterprise Level Development Environment.
    • Light developer machine hardware requirement – Developers machine doesn’t require minimum hardware requirements for the SharePoint 2010 development like 64-bit OS, 8 GB RAM, fast SSD hard-disk drive, or enough hard-disk space. They can even use Windows XP machine as long as they can access the network VM. They can even can access the network VMs from any machines. They are not dependent on their machines.
    • Improved IT Manageability – Centrally managed by IT. On-boarding and off-boarding is very easy and managed by IT. VMs can be snapshot every night and backed up as IT intellectual property.
    • Easy to provision/configure the development environment for large project teams. Additionally, Developer can have multiple VMs for different projects and different software requirements. Easy to avoid the dependency by dedicated VMs for specific projects.
    • Both Consultants and employees can work on similar environment including accessing network resources like AD, SQL Server, or TFS.
    • Efficient utilization of hardware resources based on project demand. Easy to scale up and scale-out. Easy to adjust RAM and Hard Drive resources assigned to each VM based on number of developers and project teams.
    • Developers can continuously use their current desktop or laptop for their daily activities like email, non-project tasks, and non-development tasks.
  • Cons
    • Requires additional dedicated resource/employee to manage the centralized virtualization environment.
    • Developers required to have connectivity to the network over LAN, VPN, or Remote gateway/terminal servers to access the Network VM
    • Overall cost may be cheaper or higher depends on the hardware cost for each Network VM. Each VM will require 8 GB RAM and 50-60 GB hard disk space on the centralized virtualization environment. Major advantage of this option is you can allocate hardware resources as needed on-demand compare to developer local VM. Additionally, developers can start and stop the Network VM on-demand saving network/server resources during ideal phase.
    • Heavy I/O utilization and SAN storage is key for performance degradation in the centralized  virtualization environment.
    • Possible single-point of failure. Requires in-depth disaster planning and high availability needs.
  • Recommendation
    • If you are serious about team based SharePoint development in your environment, centralized server virtualization is most cost effective, flexible,  and sophisticated team based development model as long as network connectivity/offline development wouldn’t be a big issue.

Online Resources

Hope it helps.

Advertisements
This entry was posted in SP2010 Architecture, SP2010 DEV General. Bookmark the permalink.