Andrew Connell [MVP MOSS]
1351 Posts |  39 Articles |  3385 Comments
.NET  |  MCMS  |  SharePoint  |  Office System
PDCBling
SharePoint Quick Links
Article Categories
Archives
Post Categories

View Andrew Connell's profile on LinkedIn

Add to Technorati Favorites

Before I get flamed here like I did on another recent crappy post I commented on numerous times, I am not saying all your apps should be built on SharePoint... not in any shape or form.

The comments of that post, while they have some merit, most of them consist of rants and flames by the ill-informed or .NET naysayers. Many complained that you can't do source control or any real SDL in your SharePoint environment. That couldn't be any further from the truth. Sure, most people see the only way to create a list, site column or content type is through the browser... others think the only way to create master pages, page layouts or customize pages is with SharePoint Designer. Did you know you could do all of this with files based on the file system? If it is on the file system, then it integrates nicely with any SCM... even non-TFS solutions. All of my SharePoint development work lives in SubVersion... and yes, if you're wondering, it's all configured with automated testing thanks to MbUnit. This is all possible... and it isn't hard. See this post to see a brief discussion on how to do this. Better yet, how do you think Microsoft built SharePoint? I don't know of another product or framework, including ASP.NET, where you have been given so many code samples on a default install! Just take a look in the SharePoint "12" system folder... there are a ~ton~ of samples that have helped me infinitely over the last two years!

What most people fail to realize is that SharePoint development *IS* ASP.NET development at the core. Everything you do in ASP.NET sites can be done in SharePoint. I can hear the .NET naysayers already. Let's take two common things I frequently hear:

  • You can't do code-behind files in SharePoint. Yes you most certainly can... How do you do it in an ASP.NET application? You right-click the designer and say "View Code". But what is really going on here? Visual Studio is creating the code behind file, creating a class within it that inherits from System.Web.UI.Page and adds an Inherits attribute to the Page directive in the page. Guess what? You can do the exact same thing in SharePoint... you just have to do it manually. Yes, that sucks, but that's the development experience... not the platform.
  • You can't debug code in SharePoint. Why... because I can't hit F5 in Vista? Again, what does F5 do for you in Visual Studio on an ASP.NET application? It builds the project, fires the process off and attaches the debugger. You can do that too! Select Debug -> Attach To Process in Visual Studio and select the process (w3wp.exe) hosting the application pool that runs your SharePoint site hosting the code you want to debug. Then you're ready go to... easy-peasy. 

Joel Oleson's recent post tackles it from a different perspective. I like that he takes the approach on leveraging existing functionality that is provided (*and supported by MSFT... which can't be discounted) OOTB in SharePoint. I fully agree. When I see a custom app, I say "hey, need search? I have it OOTB in SharePoint. Need a security model? Same thing... OOTB in SharePoint. Plugin model? Ah, Features! Workflow & Web Parts? Nice... all the plumbing is provided by SharePoint." I see tons of things every application needs that SharePoint provides OOTB. There will always be those developers who want to build everything from scratch... and I used to be one of those. But seriously... who cares? Your client / manager sure as heck doesn't. They want to see you deliver... plain and simple.

So where does does this whole "good dev platform" fall down? IMHO it is the development EXPERIENCE, not the PLATFORM. Why isn't there true integration with Visual Studio 2005 like there is with SharePoint Designer? There should be. Why can't we get a "Pro" version we can install on Windows XP Pro / Vista? Right now, it is all about resources that MSFT allocates to the task.

Let me be very clear... I'm not saying SharePoint should be considered for every single application. But to simply say it is generally a bad platform shows how little you know about the product or that you haven't done your research to make wildly incorrect statements like SharePoint doesn't work with source control. Just because you haven't figured it out doesn't mean you CAN'T do it.

I know this is going to rub some people the wrong way. My point here isn't to generate a battle or slam anyone in particular (ok, maybe a slight to a certain blogger ;)). My point is to help you open your eyes a bit more than they are with the product. I hope this helps a bit with that.

So why do I call Palermo's post "crappy?" Because it is an incredibly irresponsible statement with absolutely no follow through. If I didn't know better, I'd say it was an attention getter (is it? looks like a duck, smells like a duck...). There was more participation in the comments by certain individuals than there was by the post's author. He simply tosses SharePoint out as a good dev platform because he can't install it on Vista. That's like me saying "Vista sucks because I can't install the software to customize my universal remote". Please... how about taking a few more minutes to not only evaluate the product, but if you don't understand something, feel free to ask! There are plenty of forums, both as web forums and newsgroups... all free solutions! Don't make some profound statement for something you don't understand. That post was nothing more than dropping a stink bomb in an elevator at the 23rd floor and getting out while it was on it's way down.

posted on Monday, September 24, 2007 10:01 PM

Feedback

# re: SharePoint is a good development platform for applications* 9/24/2007 10:57 PM Sezai Komur
Gravatar
Well said, and that needed to be said.

People tend to focus on the negative aspects, everyone loves to whinge and whine.

There IS a steep learning curve, and the development EXPERIENCE takes getting used to, but any .NET developer can skill up and over time be very productive and happy working with SharePoint.

There is so much useful infrastructure to use in SharePoint that it SAVES development time in the long run, and the result is more functional web apps that can do a lot more.

I haven't always had this opinion, initially I wasn't happy working with SharePoint, because of the extra knowledge and learning (TIME) required up-front to understand the concepts and learn how to develop in SharePoint properly.

One problem is over-zealous project managers / business decision makers who do not appreciate the time involved for developers to skill-up and learn how to develop in SharePoint properly. I have seen managers fooled by the OOTB syndrome, and not give their developers enough time to learn how to develop with SharePoint properly, which seriously impact project schedules and delivery.


# re: SharePoint is a good development platform for applications* 9/25/2007 12:35 AM Kanwal
Gravatar I definitely agree with you Andrew. Jeffrey and the like just need to realize that SharePoint development is not as easy as learning on another platform. It takes time and effort. The added features that SharePoint bring far out weigh any possible negatives.

Long live SharePoint!

 re: SharePoint is a good development platform for applications* 9/25/2007 7:10 AM Tariq
Gravatar Hey AC,

Does your mbunit script compile your features etc to a wsp.
If so would love to know you do that.

-Tariq

 re: SharePoint is a good development platform for applications* 9/25/2007 8:24 AM Aapo Laakkonen
Gravatar In many ways SharePoint could be "ok" development platform, but in many ways it isn't. Right now I'm rebuilding SharePoint's content deployment feature as the out of the box feature doesn't work reliable if it even wants to work in any way. It's really hard to find more buggy software than SharePoint. It's not that I cannot code or don't know SharePoint. These SharePoint bugs are all over the codebase. Hopefully service pack will release some of the pain. SharePoint is also too often on your way and that's why it's not all that great development platform (you have to learn SharePoint way to do things, and those ways are usually not very well thought out). There are some great features in SharePoint that ease your work, but general feeling about it as a development platform is rather mixed. Quality wise, I won't give SharePoint high marks. It has potential, but it fails to deliver. At least for now.

That doesn't mean that SharePoint is totally shitty platform either. Yes, you can deliver with SharePoint, but you should really know it's limitations, bugs and "features", or you are most probably going to hit your head on the wall. Well, at least I have.

General feeling about MOSS community is that almost everyone is still learning the basics. At least if you read blog writings. There are blog writings about what a single SharePoint API method or ONET.xml tag does. Why's that? If you look MOSS API docs, you'll find out that almost all of them are kinda placeholders. People have to do their own time consuming testing. Best documentation tool for SharePoint APIs right now is Reflector. That single thing is enough to conclude that SharePoint is not that great development platform.

 re: SharePoint is a good development platform for applications* 9/25/2007 8:25 AM Matt Taylor
Gravatar I have the utmost respect for your comments Andrew however I find myself disagreeing slightly on the overall reason for the perceptions of whether SP is a good dev platform or not.

Having read the meltdown from the "crappy" post I don't want to appear to be over simplifying the matter but I do think it all boils down to understanding SP from both the business AND development perspectives. You and others touched on it several times but for me it is the absolute core of the issue and furthermore it is what made me take the career decision to move away from WinForms and into SP.

Case in point: a solution I am currently delivering to a client handles creating, updating, searching and reporting on sensitive employee data in a 100% secure and configurable solution. It uses a SQL 2005 database, AD permissions, bespoke ASPX pages, InfoPath forms, WF, the BDC and custom web parts but the best bit about it? It has surpassed client expectations, is fully integrated into their intranet and yes, it is FULLY deployable from source control. I would place a conservative estimate that it has taken less than 50 man days from conception to delivery and I 100% believe that could not have been delivered to the same level of client satisfaction by any other platform.

Finally, a personal thank you to yourself and the many other individuals out there pioneering and sharing for no personal gain and who I think can all take part of the credit for bringing SP to where it is today and where it is going in the future. Thanks.

# re: SharePoint is a good development platform for applications* 9/25/2007 8:32 AM AC [MVP MOSS]
Gravatar Tariq-
No... MbUnit is for unit testing. I use MSBuild to do the automated WSP creation: http://www.andrewconnell.com/blog/articles/UsingVisualStudioAndMsBuildToCreateWssSolutions.aspx

Aapo-
Are there bugs? You bet... tons like you imply? No... many have been fixed with security rollups and hotfixes. I'd expect a lot of things to get ironed out by SP1. Yes, content deployment has a bad name in the product, but the MAJORITY of the times where people have been frustrated with it is because they were not using it the way it was designed. Case in point, you never make edits to the destination server... only the soure server in a deployment job. We'll simply disagree on if SharePoint fails to deliver. After working with the current version for 2 years now, I can easily say it delivers with a resounding success. Just as you say, everyone should be aware of what a product can and can't do in order to evaluate it. That's part of the point I made in my post... don't simply say something isn't possible without trying to do it first or asking questions. Yes, the documentation is lacking, but it is better than it was when the product went RTM. They are aware of it and they are actively working on it... this just takes time.

Matt-
Thanks for sharing the case study... these help quite a bit in proving the platform is something you can build upon! You are spot on... it boils down to understanding the BIZ and DEV side of the product.

 re: SharePoint is a good development platform for applications* 9/25/2007 9:00 AM Aapo Laakkonen
Gravatar "if you complain, it usually is that you are to blame, not the product".

Well I don't agree with that. If you look the demos in 12-folder, you can easily find that even MS doesn't know how to use SharePoint, at least not in any consistent way.

# re: SharePoint is a good development platform for applications* 9/25/2007 9:04 AM AC [MVP MOSS]
Gravatar Aapo-
Um... where did I say that? What I said is that before saying you can't do something, make sure that is the case either by trying or searching out how to do it or asking for help. I'd love to see an example where you say MSFT doesn't know how to use SharePoint... please point one out. There are usually more than one way to do something in SharePoint... I see that as flexibility and not a negative.

# re: SharePoint is a good development platform for applications* 9/25/2007 9:22 AM Rodney Langley
Gravatar Excellent post, Andrew. I agree completely. I think SharePoint is a WONDERFUL development platform. Know why? Probably because I'm not a true, hard-core "coder" like most of you guys out there. 75% of all of my development work has been through SharePoint, and I have yet to find anything I couldn't do with it. (Not saying I won't, just haven't yet) Granted, I run into issues when developing in Visual Studio, but it's more than likely due to my overall lack of development experience. The OOTB functionality, and code snippets avaialble all over allow folks to roll out fully functional, easily customizable web apps a lot quicker than in the traditional sense. Kudos to you for saying what needed to be said and down with the nay-sayers! :)

# re: SharePoint is a good development platform for applications* 9/25/2007 9:54 AM M. Hassan Raza
Gravatar I think you are right, though i do agree with the fact that MSFT should be providing more support tools for SharePoint development. But what we have right now is good as well like VSeWSS and SPD is all good as well.

I truely believe SharePoint is both a Platform and a Solution, and its pluggable architecture is really nice and you can do a lot more than what you can do in a custom developed solution.

 re: SharePoint is a good development platform for applications* 9/25/2007 10:25 AM Aapo Laakkonen
Gravatar I would love to comment more thoroughly, but right now I do not have time. Thanks for your responses Andrew, I might come back tomorrow.

"you can't do something, make sure that is the case either by trying or searching out how to do it or asking for help"

Maybe this points out our different view in sharepoint as a development platform (yes, you can do anything with SharePoint, but not without clumsy hack-like coding => not a great development platform). While I appreciate many of sharepoint features, it doesn't necessarily mean that it's a good development platform. For some cases it definitely is (usually simple ootb (intranet) cases without too much customizations). But for some others it's not. That's not to say that I could do the same more easily with other platform. This is just a simple criticism that in my eyes, SharePoint is not great development platform. There isn't currently that much competition with SharePoint, that I could compare it to something. I just feel that SharePoint could and should be a lot better product and a hell lot better product if you consider the price tag.

I know you want some examples. I have those, but I'm not gonna describe them in a blog comment. You just have to trust me, trust Andrew or draw your own conclusions, I don't care.

Andrew, our problems with content deployment are not because of basic things like modifications on destination server. We have hit many problems in ootb content deployment: DST problems, page layout problems, masterpage problems, scandinavian character problems, wrong destination site template after initial deployment, etc. Somehow ootb content deployment seems to broke things here and there (SPImport and SPExport works better when you are in command).

 re: SharePoint is a good development platform for applications* 9/25/2007 11:17 AM Michael Cox
Gravatar Good thread... It took me a while to "get there" but I believe that while it's not for every application, SP is a fantastic dev. platform for a large subset of apps that fit the classic intranet/extranet profile.

Many times in my career I have been asked to build an app that basically puts database data on a web page in one form or another. I would spend time on the design, etc. but a lot of the effort was coding the UI. Then last year we were asked to rebuild a portal/extranet application. We "took the plunge" and did it using only SP as the UI. The result? We basically rebuilt the entire site in 2 weeks by using SP web part based pages instead of writing pages with custom ASP.NET for the entire UI.

(Slight caveat and commercial alert) We used our own (NSE) database centric web parts to access corporate data because we needed more functionality than the BDC parts could give us and we did write a custom link to Commerce Server but other than that it was all handled by SP.

The best part is the client can maintain the whole thing by themselves. When they want a new page, they create it in SP and "drop" their data on it. Users love SP because they can build their own apps without "us" (read developers). To me, any platform that puts that kind of power in the hands of business analysts (not just coders) has a future.

Mike

# re: SharePoint is a good development platform for applications* 9/25/2007 11:58 AM AC [MVP MOSS]
Gravatar Aapo-
I just don't agree that coding in SharePoint is "hacky" at all. There is a lot of XML (CAML) that is use to specify instructions for things SharePoint should do (like in Features) or to describe site elements. Generally speaking you do a lot of "small" development and integreate all these components together.

I understand your point about not having time to have this discussion. It isn't that I don't trust you... it is just hard to debate points without specific examples.

 re: SharePoint is a good development platform for applications* 9/26/2007 2:46 AM Tariq
Thanks AC - that had been a bother for me for sometime.

# re: SharePoint is a good development platform for applications* 9/26/2007 8:46 AM shane perran
Gravatar Good post and I would definitely agree that it's the "experience" that is at times questionable more so than the platform as you pointed out, at the core sits ASP.NET.

I get a lot of flack from folks in the internet facing web space as well and the same applies there. The development experience certainly needs work but when you get right down to it anything you can do in a regular website, you can do in a SharePoint 2007 WCM site.

The good news is Microsoft is aware of this, not only aware but acknowledging it.

They are listening to folks, setting up mass-groups of focus-group style feedback channels and then sifting through the mass of data looking for ways to implement/change things for O14 and beyond.

 re: SharePoint is a good development platform for applications* 9/26/2007 11:58 AM Craig
Gravatar AC -
We're in the process of building our corporate intranet in MOSS enterprise edition. The problem we're having (and obviously many people are) is, when does an application suit SharePoint and when does it not?

You've certainly laid the path that SharePoint is a great application development platform, but in your experiences, where have you found that SharePoint falls short in its ability to be an application platform?

Maybe a good topic for another blog post. =)

# re: SharePoint is a good development platform for applications* 9/26/2007 1:38 PM AC [MVP MOSS]
Gravatar Craig-
Yes, a great idea for a post! I'll put it in my queue :) Too much to write in a comment. Stay tuned!

# re: SharePoint is a good development platform for applications* 9/28/2007 10:13 PM Rachit
Gravatar Andrew,
I betcha if MS provides support (being able to install SharePoint Templates and what not) to develop SharePoint on XP/Vista, most of the comments (negative about SharePoint) would go away. I've tried to develop with VM and it's not that bad but I can see what it would be pain.
May be in (near) future, MS would give what the most developers want...

# re: SharePoint is a good development platform for applications* 9/29/2007 12:24 AM AC [MVP MOSS]
Gravatar Rachit-
I agree... while it isn't a pain for those of us who have done it and are used to it, convincing someone who is not used to working within VM for most if not all of their dev is a challenge. To your point about having a "Pro" version of SharePoint... all I can say is that customers drive demand. If customers provide enough feedback in this sense, I'm sure the demand will drive the supply. Economics 101 :)

# re: SharePoint is a good development platform for applications* 9/29/2007 6:36 PM stefan demetz
Gravatar Andrew,

My company has a Sharepoint practice with 10 dedicated people and I always see newbies needing a few project to "swear" at it before becoming confortable.
Sharepoint is not a plain (mainstream) language like c#, but a server product with a huge API, so - without perfect tools - newbies need to climb the learning curve and learn the "Sharepoint way"
Realistically, Sharepoint has a few pain points in dev and deployment, but MS will sort them out ....

Anyway MOSS rocks !!


 re: SharePoint is a good development platform for applications* 10/30/2007 3:33 AM chris
Gravatar AC-
Nice post! Currently we are in the process of deploying our intranet site to MOSS. This decision took a while longer for the management to decide, but the one factor that made them go with MOSS is the amount of customization you can do and the degree to which it integrates with other LOB prodcuts.
We can write a ton about the features that Sharepoint provides, but to take the fight up, we need good training and proper product documentation (am not talking about the samples included in the SDK). This will, i guess, help people really know the product from their perspective. You just can't create a world class product, and do nothing to promote it to the larger class.
Even when i started using Sharepoint, this was the first impression i got, that it lacks documentation on its best features, and that is kind of sad.
To understand the beauty of a product, you have to dive deep, and sometimes you need help, otherwise it dosen't take a minute to shun it.

Regards
-chris

 re: SharePoint is a good development platform for applications* 12/29/2007 9:15 PM Rachael
Gravatar Interesting discussion - I came from a .NET custom dev background, and personally I think SP is a great app development platform. I do feel there is more 'manual' tasks involved when trying to sync up work in a team environment. For example, we have a developer working on a masterpage for our site collection. Along with the masterpage, he builds a feature to deploy the masterpage into the site's master page gallery. When another developer wants to have the latest masterpage, he would take this feature from TFS, install/activate it on his own dev machine, and then 'manually' assign the masterpage to sites through Site Settings->Look and Feel->Master Page. To eliminate the manual assigning of masterpages to sites, he is going to write a FeatureReceiver. So, syncing is possible :), but does require more work. Was wondering if anyone else has come across a similar situation and how they have resolved it.



 re: SharePoint is a good development platform for applications* 4/10/2008 3:21 AM Mal
Gravatar Thank God for Andrew Connell. Don't get me wrong, I'm new to MOSS and I'm yet to be convinced that the maturity of the tooling (in particular as it relates to deployment) is at level where I'm confident in handing it off to one of my teams but I'm certainly starting to come around.

A quick question though - if it's this simple to (essentially) dump the artifcats of a vanilla ASP.Net development in to Sharepoint and have it work, why do we see all these articles proposing smart parts, applicaiton pages and god know what else just in order to provide some custom funcitonality?

Thanks Again,

mal

# re: SharePoint is a good development platform for applications* 4/10/2008 10:12 AM AC [MVP MOSS]
Gravatar Mal-
The reason you see all these different approaches is because there are always multiple ways to do the same thing in SharePoint. Personally I don't like using ASCX files hosted in Web Parts because there are too many pieces floating around, but that is not to say it is a bad idea. It is just my preference. IOW, there is nothing wrong with SmartPart.

 re: SharePoint is a good development platform for applications* 4/29/2008 8:37 AM TJ
Gravatar AC, just digging up a past post.

"You've certainly laid the path that SharePoint is a great application development platform, but in your experiences, where have you found that SharePoint falls short in its ability to be an application platform?"

Maybe a good post?

You mentioned stay tuned, can you point me in the direction of material which can help in such decisions? Similar when should one use lists or sql? Some guidelines from MS on application development on SP would be great.

 re: SharePoint is a good development platform for applications* 7/21/2008 7:45 PM Shawn
Gravatar I note that you start off by stating that sp should not be used to build all apps. What I have been looking for is some information/guidance about when to use or not use sp.

Do you have any information on this or links???

Post Feedback

Title:
Name:
Email:
(email will not be displayed)
Url:
Comments: 
Please add 5 and 8 and type the answer here:    
All Comments Are Filtered & Moderated
Unfortunately comment spammers are just too effecient and are constantly dirtying up blogs with irrelivant and unwanted comments trying to improve their standing on search engines. All comments on this blog are moderated. I do not censor comments, but I don't approve comments with vulger language or those soliciting products. Most of the time comments are approved within a few hours of being submitted with the only exception when I'm traveling.

Why are you asking for my email address?
The only reason I'm asking for your email address, which isn't required to submit a comment, is to provide a gravatar if you've created an account for yourself and associated your email address with a small image. If you have a gravatar created for the email address you submit, it will appear next to your comment. Otherwise nothing will appear.

What is a gravatar?
A gravatar is a "globally recognized avatar." You can get more information about gravatars, as well as create your own for free, at www.gravatar.com. You can also view my gravatar here.


Copyright © 2003 - 2008 Andrew Connell
Creative Commons License 
This work is licensed under a Creative Commons License
Site design by Heather Solomon.

 
 
MOSS WCM Training
Looking for MOSS 2007 WCM developer training? Look no further! I teach my 4-day hands-on and 5-day online WCM classes for developers I offer through the Ted Pattison Group.

Get more information on the WCM courses!


Upcoming Classes
 Hands-on WCM:
 » Atlanta, GA
   Sept 22-25, 2008
 Online WCM:
 » July 21-25, 2008
 » December 8-12, 2008


» Register today!

JAX Office Geeks
Jacksonville Office Geeks (JOG)
JOG is a special interest group in Jacksonville, FL dedicated to bringing the local SharePoint commnity together to share tips, tricks, ideas and best practices for developing solutions on the SharePoint platform.

Next meeting details...
When:
Thur. Sept 18th, 2008
  6-8p EDT
Topic:
Enterprise Content Management - Document Retention

Speaker:
John Holliday, MVP MOSS

RSVP Today!


» Subscribe to the JOG newsletter