Working in a team of multiple SharePoint developers

Alex Angas
  • Working in a team of multiple SharePoint developers Alex Angas

    In a team of multiple developers, what is the best way to set up the development environment?

    Does everyone have their own complete install of SharePoint, or share content databases, or something else?

  • My take is that everyone should have their own copy of everything. Sharing databases, application pools, servers only makes you make more mistakes or have misunderstandings. Debugging is really awkward and unproductive using shared resources and think about database locks etc

    Once the developer(s) are ready the features are moved to a test/staging environment, which is shared. Developers can copy the test/stage env to their development env if necessary to get some real data.

  • Each developer needs to have their own virtual machine that nobody shares.

    This is for two purposes. First, you can work uninterrupted and non-disruptive to the rest of the team. You're not worrying about someone resetting the system or making it unavailable to you. Second, you can deploy what you want or need without affecting others. Maybe you prefer to use Firefox over IE (I do) and the tools it has. Go ahead and install them in your VM. Maybe you come across a web part you want to try out. Install it. Best thing is you can take your own personal snapshot before you install that web part and if things go south, just regress back to the previous version.

    Once you've done all your messing around and built your system then package it up as a feature and deploy it to a shared testing/staging environment before moving it onto production.

    The only requirement is that your developers have a connection from their VM to your source control system. This is so they can check code in/out and if you're using continuous integration then your build server can grab a copy of the code and update the build. If you work in isolation in your VM, look at something like a robocopy script or SyncToy or similar tool to sync up the contents of your VM to an outside drive that will push your code into the repository.

  • Great question! Surprised on how we all seem to agree so far. This is usally a subject that can divide people quite a lot :-)

    Each developer should have a virtual server instance (be it HyperV or VMWare, locally hosted or shared). Database could be shared, but each developer has his own database instance (using shared environments remotely using VPN is doable but often slows development process down quit alot, and hence should be avoided if possible).

    When involved in several projects, each project should have a dedicated set of virtual servers for each developer.

    I also like to have a local "POC site" that i can do with what i want. I use it for doing small tests and stuff i wouldnt do on my project development server. If it gets too messy, i can always reload a snapshot.

    To avoid "it worked on my box" issues, there should be guidelines on how to develop. Like having the least possible privileges on the box while developing, and especially having only visitor permissions when doing normal web part development or similar.

    Development servers should be created by same golden image and same (preferably scripted) zero point configuration as the dev test, integration test, pre prod and prod servers. This will minimize issues in dev test due to special configuration or software issues on the developers server. I even know of developer teams (eg Ben Robb) that delete all their virtual developer servers every week and roll out a snapshot (automated with powershell) of the server to keep development servers as close to dev test (and the other environments) as possible.

    Often overlooked is that especially for larger teams you need guidelines on how naming should be (eg. sub folders in root folder (12hive if you like) how to use namespaces etc), how to deploy (BIN + CAS or GAC, and when to use what), usage of common Utility like libraries. Not having cleared this up before startup will cause you grief along the road and increase the risk of having small islands of code that should/could have been reused across the team (or even across projecs if the libraries are good and generic enough).

Related questions and answers
  • , the engineering team needs to be able to see the Team View, which has all the submitted information plus fields they will fill in. I have these two views, and the single Customer view shows up by itself in the webpage because I turned off the toolbar that has view selection. But, that means that the engineering team can't see the Team View when they go to the form library. My idea is to have a "Submitted_flag" variable and set this to FALSE. Then when the form is submitted, it will turn to TRUE. I'll have a button to switch to the Team View appear if the "Submitted_flag" variable is TRUE

  • ) for testing. How can we have similar Setup in SharePoint 2010 Development. If there is a Team of SharePoint Developers, do they need to have SharePoint Server/Foundation installed on their individual... on installing SP2010 on Developer PC. I have yet to find an article which discuss the above scenario. After going through the Microsoft site articles, it looks like that SharePoint 2010 Developers...I have been a Developer during the Classic VB/ASP days. I remember that we used have Client Tools (Visual Studio, SQL Enterprise Manager) on Developers Desktop and there used to be seperate high-end

  • I’ve been trying to use ListData.svc to get a REST feed from a list (actually a pages library) using something like: http://SharePoint/_vti_bin/ListData.svc/Pages?$orderby=NewsArticleDate&$filter=(2010 eq year(NewsArticleDate)) and (06 eq month(NewsArticleDate)) and (ContentType eq 'News Article') It all works great and our front-end developers have been able to combine this feed with JQuery and put together a good looking display with asynchronous filtering to dynamically update the REST url and resend. Our problem comes when trying to use this with anonymous mode… By turning

  • Sorry if I'm getting the terminology wrong, I'm very new to sharepoint. Basically, a site I'm working on uses sharepoint for some versioning stuff in the background. I would like to be able to take the "schema" from production and have developers able to use it locally for their own development and testing. I don't need all the files contained within. I'm just looking for a way to easily copy the site structure and document library structure to another machine. Is that possible/easily doable? Thanks in advance.

  • So, once you have your SharePoint site all planned out, what is the generally accepted or best way to start building out and configure multiple lists, document libraries and content types? Using... is the generally accepted way to start building out a site after you get a specification - assuming it is most likely a one-off design. Is there some kind of tool or process that allows developers or SharePoint admins to build out a large chunk of the basic structure of a SharePoint site more efficiently than the GUI?

  • I'm trying to understand the SharePoint hierarchy of objects and don't understand SPWebService . Here is what I have: SPFarm contains One or (usually) multiple WebApplications, each contains One or more SPSites which then contain one or more SPWebs I know that each SPWebApplication can have one or more SPContentDatabases and that SPSite is really a child of a Content Database which is really a child of SPWebApplication. It looks like the SPWebService sits between SPFarm and SPWebApplication, but I don't understand if there is always just one or if there can be multiple SPWebServices

  • The Team Site template provides a default Team Discussion link. The New Discussion screen has Subject and Body input fields by default. Using the Discussion Board Settings, I was able to create a new input list called "Category". While creating a new discussion entry, my screen shows: Subject - textbox Body - multiline text Category - list I want to arrange this screen/form to display Category list on top. The new screen should look like: Category - list Subject - textbox Body - multiline text How can I achieve this OOTB?

  • ID="0x0100B4366B5F6383463b8464DBD2EDD5E097" Name="Withdrawal" Description="Record of a team withdrawal" Hidden="False"> <FieldRefs> <FieldRef ID... xmlns:ows="Microsoft SharePoint" Title="Withdrawals" FolderCreation="FALSE" Direction="LTR" Url="Lists/Withdrawals" EnableContentTypes="TRUE" BaseType="0"> <MetaData> <ContentTypes>...="{CE8F7528-E643-4473-94E0-BAA57BD2F6E6}" Name="TeamName" StaticName="TeamName" DisplayName="Team Name" Type="Text"> </Field> <Field ID="{E508D1FA-D3A5-4e91-828B-3BFB43D4F7C5}" Name

  • I currently have a normal SharePoint list with about 15 columns or so. I need one of the columns to have a list of links. I know SharePoint lets you have 1 link and it also lets you have multiple lines of text... So I thought it would be there as an option, but no such luck. Anyone knows a solution for this? I wasn't able to find any info online, which doesn't happen often. I guess I wasn't looking for the right keywords? If anyone can point me into the right direction, it would be great! Thanks -V p.s. I'm reposting this question in this site due to a suggestion from someone