New Survey Results to see how others work! @jthake created a survey that captured information on how others work with SharePoint in their environments. The results of which can be seen at SharePoint Implementation Survey.
A SharePoint development environment is not unlike any other development environment. It will vary between developers but has a standard set of base items.
Development Team
By development team, this article will concern itself with the application developers' role in a SharePoint Project. Each organization will have its own standards for application development. If standard application development requires a production server, QA server, and Integration Server, then the same should be setup for the SharePoint develompent environment. Each developer should have a stand-alone instance of the development platform of choice (WSS or SharePoint). Because the development life cycle will involve migrating the solution between servers, it is important to develop the solution as a SharePoint Solution (WSP).
Developer Machine
The recommended practice for a developer's machine is to have WSS or SharePoint installed. The developer will not have to concern him/herself with interrupting the development of another developer if each one works on an isolated machine. This machine may be a physical machine or a virtual machine. Microsoft Virtual PC, VMWare Workstation, and VirtualBox both offer solutions for machine virtualization. If you want to do 64 bit development and don't want to run a server OS on your PC, VirtualBox is your only option.
Mistake - Installing SharePoint on a developer workstation It is nice to have all the tools you need installed on your workstation / laptop. This is a wrong approach for SharePoint projects. SharePoint is a very complex software product and it will probably mess-up something else on your computer. So you will end up reinstalling it, every few months. SharePoint also requires a Windows server to run, which you can install on workstation, but you will not be able to run some client applications (e.g. Adobe Creative Suite).
The best practice for setting up development environment is to use a virtual machine. VMs are easy to manage and host operating system is completely isolated. You can tear apart VM, but host machine will not be affected. The benefit: You can have a different machine for each client/project you are working on.
Source : Team-Based Development in Microsoft Office SharePoint Server 2007
Products and Development Tools needed
The minimum set of development tools that will be required in a development environment are as follows:
SharePoint or WSS
Visual Studio 2008
SharePoint Designer
Microsoft Office 2007
Additional tools are used by developer preference. These tools help the developer in producing solutions more efficiently, more consistently, or of higher quality
Tips to get extra performance out of your Development VM
Using a separate physical disk for your VM Image
Best thing to do is run the Virtual Machine on a physical disk separated from your operating system (note that running it on D: drive if it is a partition of the same physical disk is not the same. I run mine on a external Western Digital USB drive no problems and seem to get some extra performance.
Go to 64bit for 3Gb RAM
The other thing is to move to 64bit host machine and ensure you've got 4Gb RAM and assign 2GB to the VM Image.
Go SSD
So SSD's are not cheap, but the performance gains on disk I/O are unbelievable!
Boot-VHD
A very common setup is to the new Boot-VHD functionality in Windows 7/Windows Server 2008 R2 that allows you to boot a VHD straight off bare metal with only disk virtualisation (approx 5% degrade in perf compared to true base OS). This allows you to dual boot into various VHDs which is extremely powerful!
Environment Lock down There has been some debate on the OzMoss List Serve here in Australia regarding the inability to develop with SharePoint on an XP/Vista machine properly.
The reason for this requirement by so many people is because of the controls put in place by organisation dictating that Developers HAVE to use an SOE workstation and typically these are locked down to XP/Vista and only have 2Gb RAM.
Common Steps in the Process
Admin Rights
The first battle for developers within these organisations is trying to get local admin rights granted to install the extra applications required...this is an uphill battle from the start!
RAM
Getting extra RAM to handle having SQL Server and Visual Studio running to build Web Applications in IIS in isolation is probably the second thing these developers go through!
Windows Server 2003/8 -> Virtual Machine
To run SharePoint and all the trimmings you need Windows Server 2003/8 (there is a workaround - but it's a workaround for a reason). So if you are stuck with a SOE XP/Vista machine you can run a client Virtual Machine (VM) inside this host. For this, you're going to need to give the client VM at least 1.5Gb RAM and leave a minimum of a 1Gb RAM for your host.
Network access for source control
Once you have a VM running, you'll find it'll need access to the network to get to the source control server. This can also be an issue depending on whether your source control needs to be on the domain or not etc. You may also want to be able to access the Internet from within your VM as well.
Licensing Implications
All of this does imply license consideration, for example to get MSDN Subscriptions so that Developers can run Windows Server 2003/8, SQL 2005/8, MOSS 200 and VS2008 within their own environment. With most vendor platforms there are certain developer tools you need. I've always been fortunate enough to have access to these things, but it's definitely worth bearing in mind those who don't! I can understand why EndUserSharePoint.com is doing so well...because there are so many customisation shops out there that don't touch VS2008!
Available VMs
There is a pre-configured virtual pc file that is downloadable from Microsoft to allow developers to create a sandbox for development. It is not recommended that this be incorporated as an organizations development environment but it can provide a base to replicate at your workplace.
Microsoft's preconfigured VMs
The VM is set to expire after a few months, and sometimes it is very hard (in some cases impossible) to prolong that
If two or more people are using this machine on the same network this will cause you a lot of problems. Renaming a server with SharePoint and Domain Controller installed is a nightmare, and you cannot have two machines with the same name on your network.
So, sooner or later you will abandon this approach.
Please note: If you only need to do a simple pilot, or a demo you should stick to this VM. It is great and rapid tool for simple scenarios.
Source : Team-Based Development in Microsoft Office SharePoint Server 2007
I tried clonning a standalone moss that is not connected to an Active Directory ...
I tried clonning a standalone moss that is not connected to an Active Directory virtual machine using this method and it didn't work. when running the psconfig command I got error regarding identity mappings:
An exception of type System.Security.Principal.IdentityNotMappedException was thrown. Additional exception information: Some or all identity references could not be translated. System.Security.Principal.IdentityNotMappedException: Some or all identity references could not be translated. at System.Security.Principal.NTAccount.Translate(IdentityReferenceCollection sourceAccounts, Type targetType, Boolean forceSuccess) at System.Security.Principal.NTAccount.Translate(Type targetType) at Microsoft.SharePoint.Administration.SPFarm.CurrentUserIsAdministrator() at Microsoft.SharePoint.Administration.SPPersistedObject.Update() at Microsoft.SharePoint.Administration.SPWebApplication.Update() at Microsoft.SharePoint.Administration.SPWebApplication.UpdateAuthenticationSettings(SPUrlZone zone, SPIisSettings newSettings, Boolean createJob) at Microsoft.SharePoint.PostSetupConfiguration.CentralAdministrationSiteTask.ProvisionAdminVs() at Microsoft.SharePoint.PostSetupConfiguration.CentralAdministrationSiteTask.Run() at Microsoft.SharePoint.PostSetupConfiguration.TaskThread.ExecuteTask()
After checking the database logins I found that the users, local users since there is no domain, were still in the form "<old server name>\username", and renaming was impossible. any ideias?
Having this said I assume the method provided only works with moss instalations that are connected to a domain, do make a note on it in the page.
I just signed up for a corp-1 (now called wss-pro) hosting plan with fpweb.net a...
I just signed up for a corp-1 (now called wss-pro) hosting plan with fpweb.net and was hoping to develop a wss application. Is there a way to turn this into a How to play craps online games development environment? What needs to be installed? Is there a better way to get a hosted dev env with fpweb.net? If I want to use this plan for a production extranet, do I need a separate dev env? I want to do everything hosted. Thanks for your help!
I am curious on how others are setting up multiple sites on one sharepoint box f...
I am curious on how others are setting up multiple sites on one sharepoint box for development? What their solution to get from development to QA to production? I'm also curious how they get around having different ports for sites, if you use Host Headers or do you have different web applications for each site.
Just curious since that is something i've run up against recently.
Good article. There is a new tool called Mossquito. It simplifies the developmen...
Good article. There is a new tool called Mossquito. It simplifies the development process, no need for creating WSP (SP solutions) anymore. Just create your site structure using visual editors (no manual XML coding) and deploy to as many environments as required.
Comments (5)
Jan 02, 2009
Anonymous says:
Good Article! The second link in the external references seems to point to ...Good Article!
The second link in the external references seems to point to the same page as the first. The correct link is given below.
http://www.hanselman.com/blog/VMPerformanceChecklistBeforeYouComplainThatYourVirtualMachineIsSlow.aspx
- Prabin.
Apr 29, 2009
Anonymous says:
I tried clonning a standalone moss that is not connected to an Active Directory ...I tried clonning a standalone moss that is not connected to an Active Directory virtual machine using this method and it didn't work. when running the psconfig command I got error regarding identity mappings:
An exception of type System.Security.Principal.IdentityNotMappedException was thrown. Additional exception information: Some or all identity references could not be translated.
System.Security.Principal.IdentityNotMappedException: Some or all identity references could not be translated.
at System.Security.Principal.NTAccount.Translate(IdentityReferenceCollection sourceAccounts, Type targetType, Boolean forceSuccess)
at System.Security.Principal.NTAccount.Translate(Type targetType)
at Microsoft.SharePoint.Administration.SPFarm.CurrentUserIsAdministrator()
at Microsoft.SharePoint.Administration.SPPersistedObject.Update()
at Microsoft.SharePoint.Administration.SPWebApplication.Update()
at Microsoft.SharePoint.Administration.SPWebApplication.UpdateAuthenticationSettings(SPUrlZone zone, SPIisSettings newSettings, Boolean createJob)
at Microsoft.SharePoint.PostSetupConfiguration.CentralAdministrationSiteTask.ProvisionAdminVs()
at Microsoft.SharePoint.PostSetupConfiguration.CentralAdministrationSiteTask.Run()
at Microsoft.SharePoint.PostSetupConfiguration.TaskThread.ExecuteTask()
After checking the database logins I found that the users, local users since there is no domain, were still in the form "<old server name>\username", and renaming was impossible. any ideias?
Having this said I assume the method provided only works with moss instalations that are connected to a domain, do make a note on it in the page.
Jun 29, 2009
Anonymous says:
I just signed up for a corp-1 (now called wss-pro) hosting plan with fpweb.net a...I just signed up for a corp-1 (now called wss-pro) hosting plan with fpweb.net and was hoping to develop a wss application. Is there a way to turn this into a How to play craps online games
development environment? What needs to be installed? Is there a better way to get a hosted dev env with fpweb.net? If I want to use this plan for a production extranet, do I need a separate dev env? I want to do everything hosted. Thanks for your help!
Jul 20, 2009
David Mowry says:
I am curious on how others are setting up multiple sites on one sharepoint box f...I am curious on how others are setting up multiple sites on one sharepoint box for development? What their solution to get from development to QA to production? I'm also curious how they get around having different ports for sites, if you use Host Headers or do you have different web applications for each site.
Just curious since that is something i've run up against recently.
Jan 07, 2010
Anonymous says:
Good article. There is a new tool called Mossquito. It simplifies the developmen...Good article. There is a new tool called Mossquito. It simplifies the development process, no need for creating WSP (SP solutions) anymore. Just create your site structure using visual editors (no manual XML coding) and deploy to as many environments as required.