What makes a good general-purpose development platform?
- Easy to install
- Easy to configure
- Integrates well with simple tools
- Easily extended to make simple tools
- Easy to debug
- Easy to create test automation
- All configuration stores easily in source control
- Others I’m forgetting
I’ve heard many times that Sharepoint can be used as a development platform. Technically, that statement is correct, but there is so much friction involved with it, many get frustrated in the process. Consider the dependencies:
- Must run on a server OS, Not XP/Vista, Full Stop
After that one, I don’t see a need to go on. In a team environment, every developer needs to have a dedicated development environment. What does that mean? Everything necessary to build and run the system fits on the developer workstation. Why not run a server OS on the developer workstation? Perhaps. I’ve done it before, but there is other friction associated with that. Why not use a server OS VM to run Sharepoint on the box? Perhaps, but again, more friction.
A development environment should be a pleasure to work with, and that require minimizing friction. The harder it is to make a batch file that completely builds, tests, and deploys the system, the harder it is to develop for that platform.
My purpose for this post isn’t to say that “Sharepoint sucks”, notice the worst I say is that it’s not a good development platform. For content-management and list-based stores, it’s great, but as a development platform, there is plenty to be desired.
In the comments below, astute reader clarify that Sharepoint excels as a content management system but not as a general development platform. I would yield that point. In fact it makes more sense to me for Microsoft to market the product for that niche and have users singing its praises than for Microsoft to present it as a higher level ASP.Net platform and have users (see comments below) lamenting the pain involved.