SharePoint is a *terrific* development platform.

Posted on 9/13/2007 @ 10:52 PM in #SharePoint by | Feedback | 9727 views

Man, I just had to respond to this. Jeffrey Palermo thinks that SharePoint isn't a good development platform.

See, Jeffrey is a fantastic developer. I am probably not so fantastic, but still I'd say I'm one of the better developers out there. While I completely understand where he is coming from, I have to say, it is nothing but teething pains and lack of sufficient experience with SharePoint that he is experiencing. Thats all.

Let me dissect his points one by one -

1. Easy to install: SharePoint is very easy to install. Now, is it as easy to install as your run of the mill ASP.NET app? NO - in fact it is EASIER!. I haven't ever walked into a shop with a home grown ASP.NET app that was any easier to install than sharepoint is. In fact, given that sharepoint can support so many paradigms, and can scale from zero to infinity, I'd say given what it does, it is ludicrously easy to install. Do you have to learn how to install and configure it? Yeah sure! But after you have configured and installed sharepoint properly, even thinking of comparing it with a OOTB ASP.NET app is frankly insane.

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

3. Doesn't require perpetual network connectivity: Actually, SharePoint doesn't. SharePoint and network connectivity have nothing to do with each other. How the heck do you think I develop in an airplane? You think George W Bush laid out a special internet connection for me in an airplane? Unfortunately, Jeffrey doesn't explain this well enough, but from what I have seen SharePoint used as a website - sure needs a network connection like any other website does. But can it support a thick client model? Absolutely!

4. Integrates well with simple tools: Well what tools? NANT? MSBuild? NDepend? Visual Studio? Notepad? It integrates well with EACH ONE of these. So again, I don't see what he is talking about here.

5. Easily extended to make simple tools: That is the whole point of sharepoint. When building a 80 floor skyscraper, you start at the 60th floor, because the first 59 are literaly OOTB. Now sure you have to put in the effort to learn the platform well enough, but really didn't you have to put in the effort to learn <insert whatever here>.

6. Must run on Vista/XP, not server OS: Oh man! Why!?? Even when I developed plain .NET apps, I never ran on Vista/XP. Are you kidding me? VS2005 barely works on Vista. XP - sure - if you're creating Winforms apps. Even then, why not just have a full fledged IIS, not an excuse for IIS? Oh and here's a shocker, I use VMware + Vista Ultimate, and life couldn't be any better.

So really, I don't see Jeffrey's point. I find myself a boatload more productive in SharePoint than plain vanilla .NET. Seriously man, what are you smoking? You gotta share some of that white stuff!

Sound off but keep it civil:

Older comments..

On 9/19/2007 6:37:37 AM Bill Carson said ..
LOL... you're da man !!

On 9/20/2007 9:02:56 PM Harry said ..

I think your points are weak. The only thing related to SharePoint being a 'development platform' is number 5.

And a lot of people including myself just don't think point 5 is a true statement. SharePoint is a extensible tool/product.

In a sense, Office is a development platform, but nobody says it should be used for all problem as Microsoft wants people to think.

On 9/21/2007 12:30:37 AM Sahil Malik said ..
Harry - those aren't my points, I am simply describing what Jeffrey said.

On 10/3/2007 9:44:03 AM Brian H. Madsen said ..
Hey Sahil,

Eventhough i frequent your blog on nearly a daily basis (yet you need to blog more mate!!!) i have to give you points for the dissection here!

I love Sharepoint and truely wish more people would adopt it as a "platform" saying that, i mean a basis for a very extensive web application.

I've been working with Sharepoint for a little while, but have been out of the picture on and off and with MOSS 2007 i think i can finally say i'm "almost" content. Only wish i have is that it would implement document management a lot better.

For some obscure reason, i've found it hard to dig up some solid webavailable content on development with Sharepoint..

Lastly, big kudos for the Sharepoint series you did over at DNR TV!!!

On 10/3/2007 12:27:54 PM Sahil Malik said ..
Yo Brian -

Yes, there is little dev specific sharepoint content. So thanks for giving me an idea re: blogpostings. Stay tuned pal. I'm getting lasik done tommorow, will churn out a shitload of content right after my eyes are working again.

On 10/5/2007 9:27:32 AM Brian H. Madsen said ..
Hey Sahil!

good - i'll be waiting then!

On 10/30/2007 4:00:07 AM chris said ..

i read jeff's article and also AC's article. Now, am here reading your article. I must say that people have different perspectives, and they tend to look at products from their own perspective. when i started working with sharepoint, i took me time to understand its architecture coz we all know that it is huge. but once i got accustomed, it was just merry go round kind of situation. so to make the general public aware of the product, we need to write more stuff on that and also on the common road blocks that they face.

Just shunning a product based on some inappropiate reason just dosent makes sense.

To know more about a product, just go inside it and take out what you can, that's when you will know the beauty of it, same goes for sharepoint.

For me, sharepoint is a great product from MS and it shows.


On 12/25/2007 6:09:41 AM PANKAJ LAHOTI said ..

I m new to MOSS.Presently got Project on it, have many basic doubts.How to get clarify and can contact online...

On 4/1/2008 5:40:43 PM Tim said ..

Perhaps I'm spoiled from using Ruby on Rails and Grails, but it seems like I have to put a lot more effort into doing something in SharePoint than I do with these other systems.

Some things I look for in a development technology (that I'm not finding in SharePoint):

1) good documentation - searching for a blog article is not a substitute for documentation.

2) fast edit/run cycles - there are times when SharePoint can exhibit fast edit/run cycles but there are times when you have to reset IIS or run a bunch of STSADM commands (including execadmsvcjobs).

3) sensible configuration files - all I have to say here is schema.xml. 'Nuff said.

4) community support - In most environments I've worked, I'm the 20th guy to have any given problem and there are already a number of documented solutions. In SharePoint, I routinely am the first guy whose every documented a particular problem. Using Microsoft's SharePoint forum has been a big disappointment. Usually, I find the answers to my problem before someone else gives me some advice.

5) Well-designed object model - SharePoint's object model is not terrible but they could have done a lot better at naming objects (e.g. SPSite and SPWeb). I'd love to hear someone give a logical reason for why they were named that way.

6) Easy to get started quickly - Installing SharePoint is not easy. Once you run the setup, then you have to go to the Central Administration area and follow a bunch of steps that the install probably could have automated.

7) Tool Support - STSDEV is a glimmer of hope on the SharePoint development landscape. Other than that tool, I haven't seen a whole lot that really helps me get my job done.

8) Simple things are simple to do - SharePoint does so poorly here, it's sad. You want to add a link somewhere? Create a feature folder with some XML configuration files and then install and activate the feature. Not intuitive at all! Maybe SharePoint Designer makes it simpler (I hope).

9) Environmental Transparency - Have you seen the SharePoint databases? Have you ever fixed a problem by modifying their database? I wanted to but ended up having to blow away a number of SharePoint sites that were not working any more (couldn't copy files from one library to another because they were "locked").

10) Support for Unit Testing - most of the code I write is glue code that must operate in the SharePoint environment. Either I make a mock library of SharePoint or I am stuck not being able to unit test my work.

11) Ease of use - "In SharePoint, you're always 10 clicks away from where you want to be." That's a bit of an exageration, but that's the way it seems.

I'm glad that you really enjoy SharePoint. I'm having a hard time imagining that I ever will.


P.S. Regarding the usability of your comment form, after typing in the captcha text, if you press enter, the Refresh button is pressed and the form is not submitted. Not very easy or user-friendly. But if you love SharePoint I can see how you'd like the current behavior.

On 4/2/2008 2:49:37 PM Joseph Baggett said ..
Mind creating a survey to ask the developer community if they think SharePoint is a good development platform? If you were to ask majority of developers to develop an application and have full extensibility over the application, SharePoint would definitely fail. I'm not going to go into a full list, but just even starting on the masterpage itself and lacking the ability to control every part of the page is grounds for proof it is not a good development platform. I really do feel for the SharePoint MVP's b/c they praise something that so many other developers see the flaws in, but they continue to try to justify how "good" something is when it is not just b/c that is what they specialize in and it hurts to have someone else point out the flaws. The real developer community can't be tricked. Maybe in a future version Sahil...

Game change that! :P

On 4/2/2008 3:27:13 PM Sahil Malik said ..

I'll reply to you first.

#1 - Good docs. Well, it might be a fair comparison to compare SharePoint docs with other similar product docs. Have you seen docs for other such portal/non-portal platforms? Which ones did you compare with?

#2 - I don't see why command line execution is contrarian to fast/run/edit cycles. In fact, I see that as being complementary.

#3 - Schema.xml is not a configuration file. Web.Config is. And it follows all the recommendations from ASP.NET 2.0.

#4 - SP does have very good community support. You yourself said that you run into blogs with plenty of answers :-)

#5 - Well designed OM. It's well enough, though I think you are taking a very parochial view (more on this later).

#6 - Easy to get started quickly .. well .. okay yes there is a learning curve. Heck it is a server based product. Again, for a fair comparison, what are you comparing SP with? Is it easy to install documentum/filenet?

#7 - stsdev/wspbuilder/vsewss. I think the story will get better here going forward.

#8 - It's much simpler to create a link than the process you mentioned.

#9 - See, you said docs are not good enough, yet the docs tell you multiple times not to read the DBs directly - but yet you did. Maybe you just haven't taken the time to read the docs. Yes there is a learning curve, but sitting at 100 feet bitching on the side isn't going to scale the mountain.

#10 - Again .. a very parochial view.

#11 - It's quite easy to me. I don't expect the end user to be me however, but that is where appropriate UI trimming comes into play.

About the usability of my form .. I am aware of that as a problem. The thing is, you have only so many cycles in a day to do billable work, reply to comments such as yours, publish new blog posts, and have a life at the same time. Given the long/short priority list .. this has fallen into the not so important category. Plus it serves as a filter to not allow system.notsosmartmonkey to leave comments. Clearly you were smart to figure it out .. keep trying, you'll figure out SharePoint too :-)

Finally, I must talk about the parochial view.

You must consider that SP is targeted towards solutions - it offers things that the .NET dev with his fancy tools can never NEVER deliver. Integration with office, infopath, excel services are things .. you *cannot* write. Doc libs is what is difficult to write. Well .. impossible is just extremely difficult. When considering what is a good platform or not .. you have to consider the business side as well. For the overall picture, is it a good dev. platform? Certainly is! Too bad you disagree, but that means more $ for me.


On 4/2/2008 3:32:27 PM Sahil Malik said ..

Read the parochial view comments above.

Don't forget, I was a C# MVP for 4 years before I switched into SP. Having written 3 books, and tones of articles, and having blogged about LINQ/DLINQ/WPF/WF when these technologies were not even CTPs .. I consider myself just as much of a developer as you.

Now, is SP as simple as ASP.NET? Certainly not.

Is the developer's experience as smooth as ASP.NET? Certainly not.

But let me take it one step further. Is writing a master page easier, or tougher than writing just plain HTML? I can assure you, there are people out there who will insist that writing plain HTML is much easier than dealing with all that aspx goo.

Are they wrong? Absolutely.

Just as you are wrong about SP ... in measuring SP in only one dimension - your development experience when writing custom code. Instead consider a few other things

- Speed of prototyping

- Desired functionality OOTB

- Overall cost (assuming dev skills are in place)

- Integration with office

- Infopath

- Excel services

- user profiles

- etc.


On 4/3/2008 2:23:01 PM Joseph Baggett said ..
"You must consider that SP is targeted towards solutions - it offers things that the .NET dev with his fancy tools can never NEVER deliver. "

- Can you elaborate on what can not be done in .Net? Other than going into specific features that are built int SharePoint? I hate to say it, but SharePoint is the "platform" that gets mistakenly criticized for being called a portal solution b/c of its' limitations.

"Integration with office, infopath, excel services are things .. you *cannot* write. Doc libs is what is difficult to write. Well .. impossible is just extremely difficult. When considering what is a good platform or not .. you have to consider the business side as well."

- Sounds like you contradicted yourself.

" Too bad you disagree, but that means more $ for me. "

- Congrats to you.

"Speed of prototyping"

- at the cost of maintainability / lack of complete control?

"Overall cost (assuming dev skills are in place) "

- Can you explain this one to me? To get good development skilled people in SharePoint(which seem to be few at the moment), wouldn't companies have to pay more $$$ to get quality SharePoint developers?

"Integration with office"

- Can't be done in .Net? What happens when I have a company that is not using Microsoft Office? Would you suggest SharePoint or does that kill SharePoint in many areas unless they invest in it?