When I saw the Gu writing 3 posts in a row about new technologies/products (IIS 7.5 Express, SQL Server CE 4 and Razor view engine) I knew something big was about to come. And in fact yesterday he announced the WebMatrix, a new web development stack that combines the 3 products above plus a new super-easy to use web development IDE and a new syntax for developing quick websites, called ASP.NET Web Pages.

The WebMatrix

First let’s share the official announcement:

WebMatrix includes a complete Web development stack that integrates a Web server (IIS Developer Express), database (Microsoft SQL Server Compact 4.0), programming model (ASP.NET Web pages with Razor syntax), and a tool (WebMatrix Beta) into a seamless experience. You can use WebMatrix to streamline the way you create an ASP.NET Web site from templates, or by starting a new Web site by using the world’s most popular free and open source (ASP.NET or PHP) apps like DotNetNuke, Umbraco, WordPress, or Joomla!. With WebMatrix you can code your Web sites, customize them, optimize them for good search engine ranking, test them, and deploy them to an Internet hosting company, all through the tool.

Before moving on, one thing I want to make very clear to avoid confusion is that, while some parts of the WebMatrix stack are very interesting for professional developers (IIS Dev Express, Razor and SQL CE 4), all the rest (the IDE, ASP.NET WebPages) is targeted to hobbyists developers, that wants to quickly write their own website and that don’t need to build complex applications, or also people that want to make their own Subtext skin by modifying a default skin.

Now my thoughts on it

Whereas I’m pretty excited by Razor, I’ve to say that I’ve mixed feelings about the WebMatrix IDE and ASP.NET WebPages: they lower the bars for new developers that want to start building their personal web sites on the MS stack, but doing so they also promote “bad” programming practices. Probably people that want to build their quick site to publish all their runs don’t care about unit testing, SOC and so on, but still seeing a SQL statement in the the “view” feels bad. But again, I’m not the target of this platform.

What I think will be important is the migration story from this PHP-like way of developing apps to a more professional one if the developers decides he/she wants to go that route.

Comments on this entry:

I agree that seeing a SQL statement in the the “view” feels bad. But....

1. It is done in a way that promotes parametrization. While that doesn't have anything to do with code separation and architecture, SQL injection was IMO the most common problem in Classic ASP (VBScript) sites.

2. Introducing new developers via the barebone approach is much better than making them use Web Forms. Just have a look at the kind of problems ASP.NET newbies have (at forums.asp.net etc.). They constantly seem to stumble on things that really should not be issues at all, all due to the abstract model Web Forms provides (tries to). In the end, they become less productive and produce utter crap. I did too when I started to use Web Forms.

3. Migrating to better ways from this PHP way is much easier than from Web Forms.

I know, I'm sure letting newbies play directly with HTTP, HTML and procedural programming is the best way to make them learn web development, especially with all the helper methods that "helps" doing complex operations.But still, we have the risk that developer that start this way will never evolve to "real" developers later

Still unsure why someone using PHP would move to WebMatrix and even more unsure how MS will be able to position itself also as "cool" framework to start working with.

It's true that such developers may never evolve to "real" developers, but maybe that's OK? And I think that it's more likely that they will evolve from this kind of framework, since they will eventually stumble on the real issues, such as testability and maintainability, instead of the "making sense of it all" issues that Web Forms (and other over-abstracted frameworks) result in.

As to why someone using PHP would move to WebMatrix. Well, that's a good question. There will always be those who adopt the framework just because it's from Microsoft, jsu as there are those who will never adopt it, for the very same reason. C# is a superb language, and the DLR can host other languages in a way that is hard to match, so that may become something that *makes developers productive*. After all, that's what it's all about, and that's what has been lost lately.

Ultimately, Microsoft will have to push the boundaries quite a lot more if they want something to be "cool" again.

Well... I guess the "marketing" point is that MS wants newbies to start working on their technology from the beginning so that they could move to the real development on .NET, and so sell Visual Studio, WinServer licenses and so on. If there is no easy upgrade path, then it will be difficult to upgrade those hobbyist developers to real developers and so, less money will enter MS pockets.

But maybe it's still too early to give judgement: would be nice to read what the LAMP fan-boys say about this announcement.