I’m sure as a developer by now you have heard that Microsoft released a new free web development product called Web Matrix (asp.net/webmartix). Web Matrix is aimed at junior developers who most likely are using scripting technologies like PHP. You can edit PHP with intellisense in WebMatrix, and you can through a web interface setup common open source applications on your computer for development and later deployment very quickly (things like WordPress, Drupal, SiteFinity, etc…). Web Matrix also introduces a new language syntax called “Razor” which is aimed at rapid site development with a low learning curve. Web Matrix also comes with many Razor helpers that allow inexperienced developers (or experienced ones that just want to get something done quickly) to add social networking integration (Facebook, Twitter) and simple dynamic data tasks to Razor web sites they are building in Web Matrix. More helpers will be developed as this product matures, so there will be many common web development tasks that can be done quickly with Web Matrix. Lastly, Web Matrix offers one click deployment to a selected number of site hosting companies (all of which have free Beta offerings right now). With all this Web Matrix offers a one stop shop for light web development projects.
Over all I’m pretty excited about Web Matrix. I can see a lot of people who aren’t yet cool enough to own a Mac (sarcasm…though Mac’s are cool, just expensive) who could use Web Matrix effectively to hack out web sites based on PHP open source web projects very quickly. I’m really excited about the new Razor syntax, which will become the new default syntax for Microsoft’s next MVC (Model View Controller) web development path, as well as a stand alone syntax that powers the new .vbhtml and .cshtml web pages. I like Razor for the same reason many people liked the current MVC syntax, it gets a developer closer to the HTML/Javascript code and makes development a lot easier then dealing with abstracted Web Form .aspx pages.
Web Matrix also gives you a two other nice tools besides the Web Matrix editor. One is IIS Express, which is near full featured version of Microsoft’s IIS Web Server. IIS Express supports routing with little configuration even if you are running IIS Express without administrative rights. The other goodie is SQL Compact Version 4 Beta, which gives you a good chunk of SQL Server Database functionality without having to run either a SQL Server service or full blown SQL Server version. This makes Web Matrix sites very easy to deploy to most hosting companies.
One thing to note about Web Matrix is that most of the “professional” Microsoft Web Developer bloggers hate Web Matrix. There are two main critiques, and one fear that seems to be trending in their opinions of Web Matrix. The first critique is that the Web Matrix/Razor scripting model takes a huge step backwards in regards to professional development (OOP, abstraction, seperation of concerns, test driven development, etc…). They worry that developers learning how to develop web applictions with Web Matrix will shy away from best practices that the industry has fought so hard to instill in new developers. They argue it is better to learn how to do things “right” from day one rather then start off with “sloppy” practices and change them later. My response to this would be that many of these developers came up through the ranks with tools that would be considered “sloppy” today (mainly because the level of professional tooling that pro developers are advocating didn’t exists say ten years ago as it does today), and some how these developers learned to overcome their initial habits. I would also say that many web developers are still being productive using “sloppy” habits. Most of the web sites we go to every day were initially just hacked together to get the concept up and running, and then professionals came in and cleaned up the code later. Why keep everyone who isn’t a professional developer from being creative and getting something out there that could become the next Facebook?
The second critique I’m seeing from the pro-bloggosphere concering Web Matrix is it’s data model (Web.Data). There main critique is that it causes mixing of inline SQL with HTML in Razor syntax, which theoretically makes the application harder to maintain. Also using Web.Data is a little, if a Razor web site isn’t crafted with a little bit of care, leaves the Razor site open to a common web data attack known as SQL Injection. This is easy enough to code for in Web Matrix, but it is a more deliberate act by the developer of the application, were some of the newer Microsoft data models like the Entity Framework or Linq to SQL by their very architecture renders SQL Injection attacks virtually a non-threat. I’d say the Pro develops have a point, but then again, many sites that are used every day manage to avoid SQL injection attacks without the abstraction levels that the newer data access models provide. For most applications I think Web.Data will be fine, and I like how quickly I can get data access up and going using Web.Data and Razor.
The last problem the Pro-bloggosphere has with the Web Matrix is a little harder to discern but if you read through enough of their posts you will see it. It is fear. If web development becomes too easy, what happens to their pay checks? They go down. I think their fears are ungrounded, as their are many situations where the demand for professional developers will only grow not shrink.
So is Web Matrix ready for prime time? Well, kinda. If you are an open source web developer using common Drupal, WordPress, SiteFinity, etc… I think even in Beta you can get a tremendous amount of value out of using Web Matrix to create and edit your sites right now. If you are an entry level web developer trying to learn C# at this point in time I think you are better off with Visual Studio Express. The Razor syntax, though cool, isn’t fully documented yet (though close), and there is no intellisense with Razor in this Beta release which makes developing Razor sites a little more challenging then Razor cshtml/vbhtml web pages are meant to be. I would definately check out the next release though.
So to recap, Web Matrix provides-
* A free editor that supports PHP, C#, and the new Razor Syntax from Microsoft
* A new web server to develop with (IIS Express)
* A new file system database format based on SQL Server (SQL Compact Edition 4 Beta)
* Easy creation of many open source based web sites (Drupal, WordPress, DotNetNuke)
* One click deployment to select servers (both full updates and incremental updates)
Common Critiques from Professional Microsoft Developers about Web Matrix Are-
* Junior developers who learn how to build sites with Web Matrix will develop bad habits
* Web Matrix’s data access (Web.Data) is a step backward
* Web Matrix will make it too easy to build web applications and professionals feel threatened 🙂
Recommendation
If you are a PHP developer developing open source based web sites on Windows, Web Matrix is for you If you are hoping to learn how to develop web applications using Microsoft technologies, Web Matrix is still in beta and you are better off waiting for the official release which will have more features, better documentation, and intellisense. If you like productivity, rapid application development, and you really don’t mind programming languages like Classic ASP or PHP, Web Matrix and the new Razor syntax is worth checking out now. Many people are recommending to full stack lowcode application for the websites. The changes in the technology will be the latest with proper safety for the working of the enterprises.