WebMatrix, currently in beta, is Microsoft’s newest initiative aimed at those of us who take no pleasure in using the overweight Visual Studio, but need to develop websites easily. For web-based applications such as blogs, forums, CMSs and wikis, WebMarix’s design seems ideal, though it is currently working only in parts. At the heart of WebMatrix is IIS Express, SQL Server Compact Edition and Razor: The good, the bad, and the ugly. Someone is using SQL Server Compact edition? It seems so.
If you don’t know about Microsoft SQL Server CE, this was originally designed for SmartPhones. It is a small footprint, client-only, edition of SQL Server. It resembles most closely SQL Server 2000, simply because it hasn’t had much love from Microsoft, or the developer community, since then. It isn’t ideal for .NET work as it is an unmanaged database with managed wrappers. You can’t develop on SQL Server 2005 or 2008 and transfer your work across, because the last ten years of development, VARCHAR(MAX), stored procedures, Views, CLR Procs, CLR Triggers, Full Text Search, BLOB data, and so on, aren’t there. SSMS for 2005 didn’t support SQL CE at all, though SSMS 2008 does to a limited extent. It isn’t that easy to synchronise databases with kosher SQL Server. Up to now, it hasn’t been easy to deploy. However, it has good support for LINQ. I can see it being handy as a ‘repository’ for Entity Framework, and there are some good reports from its use in this context.
Fortunately for WebMatrix, the Gallery of Applications, which provides a means of creating and deploying a wide range of well-known Web applications such as DotNetNuke, WordPress and Drupal, mostly use MySQL and PHP, though some work with SQL Server Express. It is a curious experience having a Microsoft application installing MySQL and PHP on my laptop. I can imagine that SQL CE is probably there to sooth the ‘suits’ in Microsoft who would otherwise frown at the idea.
All in all, WebMatrix seems to be one of Microsoft’s better attempts to escape its geeky development culture, based on Visual Studio, to provide a simple tool for setting up web applications, but it highlights Microsoft’s neglect of the low-end database. We have and enterprise-scale monster in SQL Server 2008, but there is nothing to rival SQLite or Firebird for the developer who wants a small, embedded, easily deployed, client-side database, let alone poor VistaBD for being all this and .NET-based, managed, and reasonably compatible with SQL Server. So, are we, realistically, stuck with having to use MySQL for those applications that come under the radar of SQL Server 2008 Express? What do you use when you need a small-footprint, easily-deployable database, and you’re fortunate enough to be able to choose?