There had been some chatter in the blogosphere about "How Sharepoint fares as a development platform". Some folks thought it was a bad development platform. Some folks thought it was a good development platform. I expressed my opinions as well.
For those of you who have been following my blog for a while, would probably categorize me in the hardcore developer realm, rather than an admin or (shudder!) an NTM (non-tech-manager). So, being a developer like many others, I can understand the "acceptance" curve a .NET developer goes through before internalizing the SharePoint love. It is a completely different mindset to say the least. See, in the hardcore development only world, you are used to some (if not all) of the below -
- Mature VS2005 tooling.
- I could write that myself "mentality".
- Huge codebase, and thus the need for techniques such as test driven development.
- Longer dev. cycles, and clients who are willing to pay the price for exactly what they want (i.e. I want a hand built ferrari and I am willing to pay for it too).
SharePoint lacks in some of the above, and builds upon some of the above. What it lacks in, it provides for in many other ways. So overall, the whole enchilada, tastes pretty darned good.
Now, let me get to the crux of this blogpost. Like I said, I am a hardcore .NET developer. I am going to chalk out a series of blogposts here, enlisting a vast number of topics that are parallel between the SharePoint world and the developer world. Yes, you heard that right. This will be the mother of all blog posts, that any .NET developer should read to feel at home with SharePoint.
Below is a list of topics that will be covered (and will turn into links as I or others in the community churn out content).
- A Single Developer's SharePoint 2007 Environment.
- Developing SharePoint - as a team.
- Adding code to your SharePoint site, the right way.
- Modifying existing code on your sharepoint installation.
- Source control for SharePoint projects.
- Single developer's environment
- Team's environment
- Backup, Restore and disaster recovery for SharePoint.
- SharePoint 2007 - just another ASP.NET application.
- Membership Providers in SharePoint 2007, custom authentication in SharePoint.
- Sitemap providers & Navigation in sharepoint.
- All about master pages in sharepoint.
- Custom ASP.NET webcontrols in sharepoint.
- Writing custom webparts for SharePoint 2007.
- Writing custom workflows for SharePoint 2007.
- SharePoint 2007 + Silverlight: Compelling UIs
- SharePoint 2007 and web services
- SharePoint 2007 and WCF
- Test driven development on SharePoint 2007 projects.
Is the above a comprehensive list? Heck No! And if you see something obvious missing, please leave those as comments.
Now, before you leave the first obvious comment, you might have noticed that LINQ is curiously missing. Hmm .. well .. yeah it is missing. Not only is it missing, but I am not going to include it. Why?
a) LINQ Applicability: LINQ applies the every collection-ish thing in .NET, and there are plenty of those in SharePoint. So the concepts applied to SharePoint, are not any different than the concepts applied to <insert-whatever-.net-stuff-here>.
b) Platform maturity: There is a LINQtoSharePoint project @ codeplex. But, this blogpost is not about trying to hit a moving target. It is about trying to present digested mature information. When LINQ is well accepted in the market, and when SharePoint internalizes it (i.e. MSFT officially leverages LINQ in SharePoint vNext (I am guessing)), I bet you will see LINQ added to the above list. Right now is a tad bit too soon, mm'kay!.