Hey Michael,

You're preaching to the choir :)

Below are my personal thoughts, I'm not a member of the ASP.NET team as I'm now in the Developer & Platform Evangelism team, but I am pretty familiar with our PHP story, the history of Starter Kits, and the Facebook Developer Toolkit, so take my words "as-is" if you will.

For some context, back in 2004, when we were planning the release of Visual Studio 2005, one of the things the teams wanted to do was to build Starter Kits, pre-built sample applications for common Windows and Web tasks. In the previous years, some folks had build a set of Starter Kits, the iBuySpy kits, including the Community, eCommerce Starter Kit and the Portal Starter Kit for basic Web site functionality - http://www.ibuyspy.com/downloads/archived/starter-kits/porta.... The Portal starter kit ended up evolving into the DotNetNuke Starter Kit and was/is considered a big success. Other kits, like the eCommerce and Community kits basically died, while other projects became their own businesses like telligent's Community Server which includes forums, blogs, etc.

For the 2005 release, we launched the Personal site, Time Tracker, Classifieds, Small Business, and Club Site starter kits. Some of these kits were more successful than others, but when we built them, they were designed to work standalone, so in terms of architecture there is duplication and each site's features are implemented differently. Some of these kits had community members independently run with them too, namely the Club Starter Kit which is now published as a separate Codeplex project.

While we did publish the kits, the amount of feature support we put into them varied widely. Within one kit you would find some features that were really polished while other features weren't fully implemented. In comparing them to WordPress, there really is no comparison as WordPress has years of new features/functionality built into it.

Going forward, to encourage apps being built using ASP.NET, the team built the Web Application Gallery as an open source repository for apps - http://www.microsoft.com/web/gallery/default.aspx. I personally haven't used Umbraco, but there could be one of these applications that stand out and we're certainly encouraging community participation here.

Outside starter kits, the ASP.NET team has been shipping reusable page parts as ASP.NET or AJAX controls instead of full-blown apps that you customize. The controls are atomic and can be easily reused across a site, so rather than building a rich-text forum editor, a password strength control, pie/bar charts, or a slideshow, you can use pre-built controls http://ajaxcontroltoolkit.codeplex.com/. It's a different approach than what PHP does, but in terms of customer adoption and feature completeness, I would consider these successful too.

In terms of competing against PHP, there are a number of areas I think we need to improve

- Awareness: Like the first comment here suggests, people aren't even aware that Microsoft has a Web tools offering
- Motivation: What can we do to entice developers to build on our platform? A good example of this is the BizSpark program which provides free Microsoft software and a sponsor to help Microsoft startups succeed, but there's a lot more we can do here,
- Access: How do we make ASP.NET the easiest platform to get up and running on. A good example of this is the Web Platform Installer which makes it dirt simple to install the tools, database, and the app and get it up and running on your PC.
- Technology: One thing that I think PHP does have on ASP.NET is simplicity. For new developers, object oriented programming can be very confusing, compared to PHP's procedural style. Further, reuse in PHP is as easy (or ugly) as copy/pasting functions into your file, while with .NET, you have different libraries who themselves may be built with different dependencies which complicates reuse. I know the teams are aware that our Web stack could be simpler and it's something they're looking to address in the future.
- Learning: This is another area where we need to improve, but going to http://msdn.com as a new Web developer can be pretty intimidating. The majority of content is written assuming you're already a .NET developer. This is one thing Jacqueline Russell on my old team had tried to improve when she launched http://msdn.com/beginner so that we could have a site dedicated to new Web developers covering everything from the absolute basics to building your first Web site. I still feel there's a lot we can do to improve how we build documentation and tutorials.

There's a lot more here that I won't delve into, but your point still stands, we should build (or sponsor open source developers) to build a better, open source content management system that can easily be reused. We could also do better about identifying what the scenarios our customers want us to build. One thing to keep in mind is that we do have lots of established places to give feedback on our tools and platform, namely http://connect.microsoft.com where other developers can comment and "vote-up" suggestions like yours. I personally haven't seen any customer request that Microsoft build a content management system or a forum tool in there, but if you did suggest it and discuss what key features it should have, I think there would be a groundswell of developer support voting up your idea, which in turn helps drive where the teams put their resources.

Just my .02,
-Dan