Development Platforms, again

time to read 2 min | 351 words

Jeffery Pallermo commented about the applicability of SharePoint as a development platform, the conversation in the comments is fantastic. Sahil Malik replied to that in a post that says that SharePoint is a terrific development platform.

I want to go through Sahil's points for a moment:

I haven't ever walked into a shop with a home grown ASP.NET app that was any easier to install than sharepoint is.

Here are the steps to install (on a bare bone server) my current project:

Prerequisites:

  1. IIS
  2. .Net 2.0 + 3.0
  3. SQL Server DB  

Steps:

  1. Open cmd.exe
  2. \\storage\tools\subversion\svn co svn://subversion/MyProject/trunk MyProject
  3. msbuild default.build /p:ConnectionString="database connection string" /p:RebuildDatabase=True

The whole thing takes about ten minutes, and that is from scratch. From a built environment, we can push an update by just executing the last command, and waiting for about 2 minutes. At last count I had four different environments that I had bumping around.

Then there is the great fallacy of configuration by the UI:

You can configure the entire thing through a browser based UI. What else do ya want?

Well, source control would be a nice thing to have, as well as a way to do search / replace on the configuration, as well as a way to quickly scan through everything that was done in the last three days and see what happened there.

One thing that I really don't agree with Jeffery is the XP/Vista limitations. I am running Win2003 on all my machines, from the production servers to the workstations to the laptop, and it has been more than pleasurable enough. There really isn't any difference as far as I care.

You might want to check my criteria for evaluating a development platform.

A lot of the people on Jeffery's comments thread repeated the ability to do anything in Share Point. The problem I have with that statement is the relative cost of doing it in and outside of the platform. And the platform fails as a development platform if it is significantly harder to do it under the platform than outside it.