Developing Web Content Management (WCM) solutions on the Microsoft Office SharePoint Server (MOSS) 2007 platform was really challenging. And I’m not talking here about taking care of delivering web standards compliant XHTML, implementing accessibility or making the website lightning fast. I’m talking about the development process itself: from creating the very first custom Site Column to deploying the Solution. There were several tools, none of which fully integrated with Visual Studio or provided a consistent approach. At the end of the day we – SharePoint 2007 developers, became wizards doing the magic of manual tips & tricks and combination of various tools every day just to get the job done. Just recently, when SharePoint 2010 shipped, Microsoft provided us with the new Visual Studio 2010 SharePoint Developer Tools. And although they are called tools, they are more than that. In fact Microsoft provided us with a framework for building developer tools. A new era has come.
SharePoint 2010 ships with the new Modal Dialog framework that allows you to display dialog windows in an unobtrusive and user friendly way. This is extremely important when creating user friendly solutions as it allows users to preserve their context while providing some additional information. While the new modal dialog framework is definitely a great idea, there is one thing missing in the implementation: support for communicating with custom application pages.
Mavention Activate Selected Features is a custom extension for the new Visual Studio 2010 SharePoint Developer Tools that allows you to select which Features should be activated when deploying the Solution in Visual Studio.
A while ago I wrote about a little tool I’ve made that help you discover the ID’s of all Site Definitions installed on the server. SharePoint requires you to provide unique ID’s for custom Site Definitions and using a tool is definitely easier than manually browsing through all the WebTemp files and noting which ID’s are already used. But who wants a tool if you can do the same with PowerShell?