The SharePoint Application Platform Debate
Andrew Connell posted some thoughts regarding the use of SharePoint as an application platform in response to a post by Jeffrey Palermo (Full Disclosure – Headspring Systems, the firm Jeffrey works for, is one of our clients but I’ve never met nor spoken with him). Jeffrey seems to be arguing against SharePoint because it cannot be installed on a developer’s machine. His other prerequisites for a good developer platform are that it is easy to install, configure debug and test.
Jeffrey, I’ve got news for you – SharePoint is a ‘SERVER’ product. Just like MCMS, BizTalk, WebSphere, and a host of other applications from numerous vendors. You cannot, by definition, program a server product in a desktop environment. Consequently, as a platform, SharePoint is going to be more difficult to program against than a desktop platform. But let’s be clear – SharePoint is an APPLICATION platform not a development platform. The development platform is .NET (just as it is for all of Microsoft’s other server products). You can’t run Websphere on your desktop either – you have to code in Java and run the apps on the server.
Which leads me to point out that WebSphere, Plumtree, Oracle Portal, SAP, and a whole bunch of other application platforms don’t Jeffrey’s requirements either. Using those as a guideline, there is no server product that he considers ideal. I suppose in his world only IIS and Apache-based applications make truly good platforms.
At the root of it, Jeffrey’s argument is patently ridiculous. The advantages SharePoint offers as an application platform far outweigh the development challenges. Do you have to learn a new way of working? Yes, if you are an old-school ASP developer, you do. Same as you would if you move from VB to J2EE. But there are workarounds to almost every limitation in the SharePoint development world (and Andrew does a fine job of pointing out most of them in his post). In fact, we have found that, even with all the difficulties Jeffrey describes, the average .NET developer increases their productivity by 30% – 40% when moving from standalone .NET apps to SharePoint apps. Why? Because SharePoint gives you so many tools as an APPLICATION PLATFORM (security, load balancing, data storage, user interface, navigation, etc.) that you can stop writing all that stuff yourself and focus on delivering core features instead.
Does the SharePoint development experience need to be improved? Yes, it does. But that doesn’t invalidate the entire platform. SharePoint is a big product with big ambitions and together Microsoft and the developer community will solve whatever problems exist and move forward. Until then, exercise a bit of patience and, more importantly, before you spout off in an ill-informed rant, educate yourself on the subject at hand. I think you’ll find that the SharePoint community is a really big tent and we’ve got room for everyone who is genuinely interested – even the naysayers.
UPDATE: To his credit, Jeffrey Palermo has posted a response to this entry in the comments below. Although I still don’t think we’re talking the same language, you have to respect him for standing up to the heat.
I’ll chip in here on his main point then leave it to the comments (but let’s keep them respectable – the man is entitled to his perfectly valid opinion so let’s not get ugly). I don’t think SharePoint is sold hard enough as an application platform. In my opinion, this is the true value of SharePoint within the enterprise and it is often overlooked. So while folks like Jeffrey may never get the SharePoint vision, folks like me (and a large number of MVP’s, consultants, and other SharePointers) will go right on making a very nice living delivering what thousands of clients want – line of business applications built on top of the SharePoint platform faster, at less cost, and with less maintenance overhead than traditional .NET apps. ’nuff said.