What are your best practices / recommendations for Development in an SP environment?
If you have a team of 3 to four developers how many environments should you have to work in?
- Local?
- Dev?
- Test?
- Prod?
In your Ideal situation, what is the best and most effective way of doing things? If you have any articles pointing to best practices regarding this aspect, please let me know.
The general pattern for development for us at Blackcreek is to have a separate SharePoint server for each developer.
Having said this, that is a bit of a hold over from Sharepoint 2010 days. Today, most code can be done without having direct access to the SharePoint server. The client side APIs are much stronger in SharePoint 2013. Depending on your preference, you could do most of your work from a client perspective rather than having each dev machine being a Sharepoint server.
For most projects that we have done, all our code to setup the site is done in Feature Receivers and as such are developed on the SharePoint Server. We use a Visual Studio (2013) project to deliver site columns, content types, lists and libraries and lookup columns. Also, some code is usually added to the mix to create security groups and setup views. Site Columns, content types etc are usually created using CAML.
In another project, we usually have any required event receivers for lists or libraries or whatever. And then, any workflow projects or web parts.
The majority of these projects are developed on a SharePoint Server for each developer.
With SharePoint 2013, all of this can be done without access to the farm, so you don’t need a server for each developer…. This can really simplify things, but I prefer having developers setup their own SharePoint servers to get them used to it.
For overall patterns and approaches, that is a very big question. To get rolling, I would recommend the book Professional SharePoint 2013 Development and Professional SharePoint 2013 Administration. Both are very good books.