SharePoint is a great platform. You get a zillion things done for you with a few lines of code and some XML. But all those feature come with a price tag. Developing in SharePoint sucks!!! Horrible debugging experience, insanely scarce documentation, weird coding syntax -e.g. loading the query then executing it, not to mention what to dispose and what not to dispose to name a few-, and a truck load of technologies you got to learn and use to make a descent application in SharePoint!
After my intense experience with SP few months ago, I came to realize a simple truth; For all of you web developers out there thinking we could kiss ASP .NET development good bye and migrate everything to SP and save a lot of effort; this is not going to happen and this is not what SP is all about… I agree that SP is becoming more of a development platform giving you the ability to develop a web application entirely inside of it, but the question is why? SP is not meant for every solution. Developing simple web applications with SP could turn out like driving your own bus!
My biggest problem in SP what what’s engraved inside every developer; automation. I went through hell to automate deployment of every aspect of my application to make it as a package that will be deployed by itself and… Well; you can do that, but in the process you’ll lose a piece of yourself. The other day I was envied by a fellow developer in a forum that I started developing in SP 2010 not in 2007 or the dreaded 2003 earlier versions… -sigh!- I know SP has come a long way and they’ve add a ton of cool features in the latest version – seriously -, but developing an application in SP is like walking in a minefield. I got a lot of things done quickly and spent weeks in a trivial matter to get it solved using a spell from Harry Potter novels; only to my bitterness find that doing it this way would ruin my application -like I’ll explain later when I discuss deploying Infopath forms with code behind in a feature-.
So I decided to make a series of posts and called them SharePoint Shortcuts. Perhaps these shortcuts in the vast minefield of SP would save another poor developer from a bang or two. In the end you have to choose carefully why you’d go for SharePoint as an application platform -especially with ASP MVC now in the market for those who hate the guts of Web forms like me!-. I chose SP for my latest web application because I needed extensibility, and because I thought developing in SP would save me a great deal of time, but it turned out everything is relative. The time I saved in some complex things -like the interface design, auditing, security, etc…- was wasted burning my brain cells to understand why some simple things just won’t work in SP. SP does save a great deal of time and give you a huge boost in your project but only when you put it in the right perspective.
I strongly advice any web developer to learn about SP if you don’t already know and if you already have SP background from an earlier version you should upgrade your knowledge. SP has a great potential and I predict that MS is going to stuff every good new technology into future versions of it. Just don’t rush into choosing it until you study the odds well -of course licensing is a big issue here; as you know the free SP foundation doesn’t have all the killer features of SP server like the forms services for example-. Also you must understand that you may -well, to be honest, must- suffer a great deal of frustration if you are to develop a full blown web application in SP. Mine was an Electronic Medical Record system.
Just to emphasize; I’m not attacking SharePoint as a development platform, on the contrary I’m about to explain some of the tough tasks I faced so that others would save time using SharePoint for development. I’m not talking in this blog series about common ordinary tasks nor about SP features as those could be found in a lot of places over the internet. These articles I’m about to post are based on my personal experience and opinion. If you have any update / suggestion / comment your contribution is most welcomed.