This week I am teaching my 'Building Solutions for SharePoint' 5-day workshop again. Three persons who subscribed to the new Microsoft course 'Customizing Microsoft Office SharePoint Portal Server 2003' (MS2014) also join today and tomorrow for the Web part modules and the modules on working with the object model.

When talking about Web part development, you have two ways of developing SharePoint Web parts:

  1. Following the official Microsoft documents
  2. Going for the undocumented way via the technique of the ASP.NET user controls as the starting point for the Web parts.

My local MSDN article introducing that technique written in August 2003 (still with the beta version and a long time ago), has sparked a lot of initiatives in the SharePoint community the last year. I have been promoting it on every SharePoint-related presentation I have done. Working with ASP.NET user controls is good because the productivity you get when following this approach is much better than writing all of your GUI code within the CreateChildControls() of your Web part. Jan's efforts (together with Fons and now also Maxim and probably some others I forget) in making the technique more generic has resulted in the SmartPart v.1.0 and they have provided the community with an excellent alternative if you are looking to create SharePoint Web parts. Maxim has even a SmartPart Developer Kit available for download and has a great posting on CAS and the SmartPart. I am aware of numerous projects in which ASP.NET user controls are the driving force behind the Web parts.

So what is Microsoft saying about this technique? Nothing!
Despite the wide adoption of the 'alternative' technique, I don't see any material appearing from the Microsoft side that even points developers to the possibility of doing it this way. I once heard Mike FitzMaurice mention the technique on one slide during his presentation but he dismissed it saying the deployment was too hard (heuh?). The MOC I have to teach today is also not mentioning how you can be more productive with ASP.NET user controls. I find this a shame and it is good that these guys drop by in my workshop since now they will see both ways and can make the decision themselves - I have a pretty good idea which one they will prefer :-). Power to the SmartPart!