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.
The comments contain a great discussion about the ins and outs of developing on Sharepoint vs. configuring it. I can’t find anything I disagree with in this post, but you assume a lot about me, and I hope we are able to meet soon in the future.
I think sharepoint is a great application, and I only commented on its use as a development platform because I feel its been oversold as that. In fact, Tech Ed 2007’s Office track was almost all Sharepoint _development_.
Again, I don’t completely disregard Sharepoint. My only point was I don’t think it’s good for development. It’s great for intranets, customization, etc.
Regarding server products on workstations: Microsoft has mostly enabled server product developer editions for this very purpose: Commerce Server, SQL Server, IIS, Biztalk, have developer editions or are able to function on XP or Vista so that developers can write code against them in preparation for a deployment on a Windows Server.
I appreciated Andrew Connell’s comments as well because he was able to contribute a lot of information to the conversation.
I make every attempt to respond respectfully, so please take this comment as such.
I completely agree with you Eric. Just goes to show that not everyone knows what they are talking about with Sharepoint development. I wrote about it on my blog
Why cant we all just get along? Yall (yeah you southern folk heard right… this Jersey boy said Yall) yall should be more like Bob. Happy go lucky… quiet…. observant of others feelings…. let thing roll off your back…..
Yeah, that’s sounds just like the Bob I know… 😉
This post is very interesting. But I’m very confused about what “Application Platform” and “Development Platform” really means and what SharePoint actual is. For example I read in book from Mr. David Sterlin (Microsoft Office SharePoint 2007 – The Complete Reference – McGraw Hill Companies 2008) following statement. “Now with the release of Windows SharePoint Services Version 3, Microsoft has created a true application and development platform targeting the needs of business and the business of development.” But as you argue in this post, you think SharePoint isn’t a development platform.
It would be very helpful if someone can definitely say what Application and Development platform really is. I can’t find any helpful definition.
As I mention in the post, SharePoint is an Application Platform while .NET is the Development Platform. You write code in .NET to run inside of a SharePoint environment. I believe what David Sterlin means in the quote you provided is that you can develop custom applications for SharePoint – which is certainly true. But by technical definition it isn’t a development platform as it is built upon .NET technologies. It is an application platform in which .NET code is hosted (albeit code that uses the SharePoint API).
I hope that clears it up for you…
I think this is very good explanation. I also ask Mr. Sterling. This is what he wrote:
Application Platform – a software application or foundation that can be added to and built upon but the functionality is dictated by the core application itself. Siebel is a good example of this.
Development Platform – a collection of tools and sometimes applications that provides a development platform for building other applications. .NET is the classic example of this.
I worked in .net from 2003, and sharepoint for two years, in complex enterprise application, the productivity is better in sharepoint that asp.net, but the development requires deep knowledge of WSS/MOSS architecture and breaking old paradigms of the information systems.
It is certainly a very advanced development application platform.