Description
Chris Messina is trying to convince a client not to use .NET for a community site. He admits that he doesn't know a lot about .NET, or for that matter the other alternatives to .NET. But he is fairly versed in the hot new technologies, and compares/contrasts Ruby on Rails, Django, and PHP/WordPress MU.
I use WordPress for my personal blog, so I don't criticize people for using whichever technology they find most comfortable. But I wanted to provide some pointers to more information that people in Chris's situation can use to fill in the ".NET" side of the pros/cons checklist when working with clients.
It's important to note that the biggest community site on the planet, MySpace runs on .NET. In their session at MIX06 last year, the MySpace guys went into detail about the scalability/agility tradeoff (you can watch on-demand). Chris is correct that (almost) anything can scale given enough technical expertise. But the MySpace guys talk about how it was the productivity and agility of .NET that attracted them. They needed to be able to change/adapt features quickly in the early days, and appreciated the scalability later.
Chris points out that a startup looking to eventually flip to a bigger player will want to use a compatible technology. Obviously MySpace isn't hostile to .NET, and Google's social networking service Orkut was built on .NET as well. Yahoo! runs some services on .NET and Microsoft runs 100 million+ Spaces users on .NET.
But what about Facebook? Everyone knows that they're a big PHP shop. But check out this post from the developer at Slide. Slide has the #1 widget on Facebook's platform, with 8 million users in a month, and is big enough in their own right to acquire smaller startups. He talks about how he likes ASP.NET and shows how to integrate with Facebook using ASP.NET. He even does it using *all* open source, which should be near and dear to Chris's heart.
But let's assume that your client doesn't want to start from scratch like a MySpace, MSN Spaces, or Orkut did; but you still want the benefits of open source. Community Server is feature-rich, powerful, mature, and with a vibrant community. There are tons of templates which are as standards-friendly as any WordPress theme. And you can download the source code and party on it yourself. All of the biggest design agencies have people who are experts in Community Server, and they can turn around projects quickly. I use WordPress for myself, but for projects where I don't want to be tinkering a lot, I usually recommend Community Server.
Now, if your client is more "enterprise", you could end up being asked to work with SharePoint. Doing pure standards with SharePoint is not easy, but Cameron Moll has started to collect some good pointers. All I have to say about this is, if you are good at doing standards-based work in SharePoint, you'll never be hungry for work.
One company that does a good job of bridging web ethics and enterprise realities is Six Apart. They have an unimpeachable reputation as defenders of the web and standards, and they offer a wide range of community software that integrates will with .NET and SharePoint. Anil Dash discussed at MIX06, but you should check their website for more current info.
To conclude, I'm not trying to knock PHP -- .NET developers are pragmatic about the fact that real-world systems are often heterogeneous. .NET developers sometimes have to work with PHP on the backend, and we featured a couple of sessions on PHP at MIX07. But by the same token, non-.NET web designers and developers often have to work with clients existing standards and platforms. The .NET platform is designed with this coexistence philosophy in mind, so it's probably a lot easier than you think. Hopefully the list of resources above will get you started off on the right foot!