While working with the SharePoint Solution Generator (a utility which ships with Visual Studio 2005 extensions for Windows SharePoint Services 3.0) I have stumbled upon an interesting by-design feature which affects the way you develop Features - at least if you're using or planning to use the SharePoint Solution Generator (SPSolGen).
A SharePoint 2007 development can get quite complex depending on the business case and requirements of your customer. Last year I have worked on a few SharePoint 2007 solutions. During the development I have noticed that it is extremely helpful if you know how the customer's infrastructure will look like. It will help you even more if you will configure your development environment to resemble the customer's infrastructure as much as possible.
Recently while working on one of my projects I needed to use the WebClient in order to obtain a rendered version of a Publishing Page using a url. My environment consisted of an Publishing Site using Active Directory authentication and it's extend equivalent using Anonymous Access as well. My goal was to obtain the rendered page before it's published to be able to check the standards compliance of the rendered code.
How many times did you try to incorporate some extra rules or formatting into Page Layouts? Formatting a date is just one of the many examples solving which can cause you spent many hours trying to using the out-of-the-box available controls. The SharePoint:FieldValue is probably the most commonly used control, especially in Page Layouts where you don't want to use the Edit-in-place experience. Yet this control doesn't have any customization or formatting possibilities. That's why some time ago me and my colleagues at Imtech ICT Business Solutions have thought about creating our version of this control with some more formatting properties. As soon as we have created it, we have started benefiting from it: because we had the code of it, extending it with extra functionality is just a piece of cake. Anyway, let me introduce you the Imtech:PageProperty control.
I've just stumbled upon a little inconvenience within SharePoint object model. As I needed to programmatically add a new View to a list, I have used the StringToSPViewType method of SPViewCollection class to convert a string representation of the view type to its SPViewType equivalent. Unfortunately all what I've got was an Argument Exception: Value does not fall within the expected range. Using the Lutz Roeder's Reflector I've taken a look into the assembly and I've found the reason of this problem.