Introducing WebMatrix

Last week I published several blog posts that covered some new web development technologies we are releasing:

  • IIS Developer Express: A lightweight web-server that is simple to setup, free, works with all versions of Windows, and is compatible with the full IIS 7.5.

  • SQL Server Compact Edition: A lightweight file-based database that is simple to setup, free, can be embedded within your ASP.NET applications, supports low-cost hosting environments, and enables databases to be optionally migrated to SQL Server.

  • ASP.NET “Razor”: A new view-engine option for ASP.NET that enables a code-focused templating syntax optimized around HTML generation.  You can use “Razor” to easily embed VB or C# within HTML.  It’s syntax is easy to write, simple to learn, and works with any text editor.

My posts last week covered how you’ll be able to take maximum advantage of these technologies using professional web development tools like Visual Studio 2010 and Visual Web Developer 2010 Express, and how these technologies will make your existing ASP.NET Web Forms and ASP.NET MVC development workflows even better.

Today we are also announcing a new lightweight web development tool that also integrates the above technologies, and makes it even easier for people to get started with web development using ASP.NET.  This tool is free, provides core coding and database support, integrates with an open source web application gallery, and includes support to easily publish/deploy sites and applications to web hosting providers.

We are calling this new tool WebMatrix, and the first preview beta of it is now available for download.

What is in WebMatrix?

WebMatrix is a 15MB download (50MB if you don’t have .NET 4 installed) and is quick to install.

The 15MB download includes a lightweight development tool, IIS Express, SQL Compact Edition, and a set of ASP.NET extensions that enable you to build standalone ASP.NET Pages using the new Razor syntax, as well as a set of easy to use database and HTML helpers for performing common web-tasks.  WebMatrix can be installed side-by-side with Visual Studio 2010 and Visual Web Developer 2010 Express.

Note: Razor support within ASP.NET MVC applications is not included in this first beta of WebMatrix – it will instead show up later this month in a separate ASP.NET MVC Preview - which will also include Visual Studio tooling support for it.

Getting Started with WebMatrix

WebMatrix is a task-focused tool that is designed to make it really easy to get started with web development.  It minimizes the number of concepts someone needs to learn in order to get simple things done, and includes and integrates all of the pieces necessary to quickly build Web sites.

When you run WebMatrix it starts by displaying a screen like below.  The three icons on the right-hand side provide the ability to create new Web sites – either using an existing open-source application from a web application gallery, from site templates that contain some default pages you can start from, or from an empty folder on disk:

image

Create a Web Site using an Existing Open Source Application in the Web Gallery

Let’s create a new Web site.  Instead of writing the site entirely ourselves, let’s use the Web Gallery and take advantage of the work others have done already.

We’ll begin by clicking the “Site from Web Gallery” link on the WebMatrix home-screen.  This will launch the below UI – which allows us to browse an online gallery of popular open-source applications that we can easily start from, tweak/customize, and then deploy using WebMatrix.  The applications within the gallery includes both ASP.NET and PHP applications:

image

We can filter by category (Blog, CMS, eCommerce, etc) or simply scroll through the entire list.  For this first site let’s create a blog. We’ll build it using the popular BlogEngine.NET open source project:

image

When we select BlogEngine.NET and click “Next”, WebMatrix will identify (and offer to download) the required components that need to be installed on my local development machine in order for BlogEngine.NET to run.

IIS Express is included with WebMatrix, so I already have a web-server (and don’t need to-do anything in order to configure it).  SQL Compact Edition is also included with WebMatrix, so I also have a light-weight database (and don’t need to-do anything in order to configure it).  Because SQL Compact is brand new, most projects in the Web Gallery don’t support it yet.  We expect most projects in the Web Gallery will add it as an option though in the future.  If a project requires either SQL Express or MySQL as a database, and you don’t have them installed, they will show up in the dependencies list below, and WebMatrix will offer to automatically download, install, and configure them for you.

PHP applications in the web gallery (like WordPress, Drupal, Joomla and SugarCRM – all of which are there) will download and install both PHP and MySQL.

Because I already have SQL Express installed on my machine, the only thing in my download list is BlogEngine.NET itself:

image

When I click the “I Accept” button, WebMatrix will download everything we need and install it on our machine:

image

When we click the “OK” button, WebMatrix will open up our new BlogEngine.NET project and display a site overview page for us:

image

This view within WebMatrix provides an overview of the project, and some quick links to-do common things with it (we’ll look at these more in a bit).

To start – we’ll click the “Run” button in the Ribbon bar at the top.  Clicking the “Run” button will launch the site using the default browser you have configured on your system.  Alternatively, you can click to expand the list and pick which installed browser you want to run the site with.  Clicking the “Open in All Browsers” option will launch multiple browsers for you at once:

image

IIS Express is included as part of WebMatrix – and WebMatrix automatically configures IIS Express to run the project when it is opened within the tool (no extra steps or configuration required). 

Running BlogEngine.NET will launch a browser and bring up the default page for the application (see below).  BlogEngine.NET by default ships with a home page that includes instructions on how to customize the site:

image

If you read the text it describes how the default adminsitrator password is “admin”/”admin”, and how you can login and customize the look and feel and content of the site.  Let’s login, then use the online admin tool to customize some of the basic settings of the site (the name, about the author, etc) and post two quick blog posts to get the site started:

image

The beauty is that I didn’t have to write any code (nor see any code for that matter) and was able to get the basics of our site up and running in only a few minutes.  This experience is a pretty consistent with all of the other applications within the web gallery.  They are all designed such that you can quickly install them using WebMatrix, run them locally, and then use their built-in admin tools to tweak/customize their core content and structure.

Customizing the Code and Content Further

Now that we’ve configured the basics of our blogging site, let’s now look at how we can customize it even further. To-do that let’s go back to WebMatrix and click on the “Files” node within the left-hand navigation bar of the tool:

image

This will open a file-system explorer view on the left-hand side of the tool, and allow us to browse the site, and open/edit/add/delete its files. 

Most of the applications within the web gallery support a concept of “themes” and enable developers to tweak/customize the layout, styling and UI of the application.  Above I’ve drilled into BlogEngine.NET’s “themes” folder and opened the Site.Master file to customize the “standard” theme’s master layout.  We could tweak/customize it, hit save, and then run the site again to see our changes applied (note: pressing F12 is the keyboard short-cut to re-run the application). 

Deploying a Site to a Hoster

WebMatrix provides a lightweight, integrated work environment that allows us to run and tweak sites locally.  After we’ve finished customizing it, and have added some default content to the database, we’ll want to publish it to a hosting provider so that others can access our blog on the Internet. 

WebMatrix includes built-in publishing support that makes it easy to deploy Web sites and Web applications to remote hosters.  WebMatrix supports using both FTP and FTP/SSL as well as the Microsoft Web Deploy (aka MSDeploy) infrastructure to easily deploy sites to both low-cost shared hosting providers, as well as virtual dedicated/dedicated hosting providers.

To publish a site using WebMatrix, simply expand the “Publish” icon within the top-level ribbon UI:

image

When we select the “Configure” option it will bring up the following UI that allows us to configure where we want to deploy our site:

image

If you don’t already have a hosting provider, you can click the “find web hosting” link at the top of the publish dialog to bring up a list of available hosting providers to choose from:

image

Hosting providers are now offering Windows hosting plans that include ASP.NET + SQL Server for as cheap as $3.50/month (and these inexpensive offers include support for ASP.NET 4, ASP.NET MVC 2, Web Deploy, URL Rewrite and other features). 

The “find web hosting” link this week includes a bunch of hosting providers who are also offering special free accounts that you can use with WebMatrix – enabling you to try it out at no cost (they also have everything setup to work well on the server-side with WebMatrix and are testing their offers with the WebMatrix publishing tools).

Once you sign-up for a hosting provider, you can then choose from a variety of ways to publish your site to it:

image

FTP and FTP/SSL enable you to easily publish the local files of your site over to a remote server. 

The “Web Deploy” option supports publishing both your site files and the database content – and is the recommended deployment option if your hoster supports it.  When the “Web Deploy” option is selected, WebMatrix will list all of the local databases within your project and provide you with the option to specify the connection-string at the remote hosting provider where your database should be deployed for production:

image

Note: By default BlogEngine.NET uses XML files to store content and settings (and doesn’t require a database).  With the current BlogEngine.NET on the web gallery you can just enter

"Data Source=empty;database=empty;uid=empty;pwd=empty" as the remote database connection string in order to publish the site without needing to setup a database.

When you click “Publish”, WebMatrix will display a preview of the deployment changes:

image

Note: because BlogEngine.NET doesn’t need a database we’ll keep the database deployment checkbox unchecked.  If we did want to transfer a database we could select it in the publishing preview wizard and WebMatrix will automatically transfer both the site files and the database schema+data to the remote host, deploy the database to the hosting server, and then update your published web.config connection-string to point to the production location. 

Once we click “continue” WebMatrix will start the publishing process for our site, and after it completes our site will then be live on the Internet.  No extra steps are required.

Site Updates

In addition to initial deployments, WebMatrix also supports incremental file updates on subsequent publishes.  Make a change to a local file, click the Publish button again, and WebMatrix will calculate the differences between your local site and your published one and only transfer the files that have been modified (notice that the database by default will not be redeployed to avoid overwriting any data on the remote host):

image

Clicking the “continue” button above will only transfer the one modified file.  This makes updating even large sites easy and fast.

Create a Custom Web Site with Code

I’ve walked through how to create a new Web site using an open source application within the web gallery.  Let’s now look at how we can alternatively use WebMatrix to do some development of a custom site.

The two right-most icons on the WebMatrix home-screen provide an easy way to create a new site that is either based on a simple template of pages, or an empty site with no content:

image

Let’s click the “Site From Template” icon and create a new site based on a template.  We’ll select the “Empty Site” template and name the site we want to create with it “FirstSite”:

image

When we click the “ok” button WebMatrix will load a site for us, and display a site overview page that contains links to common tasks:

image

Let’s click either the “Files” icon in the left-hand navigation bar or the “Browse your Files” link in the middle overview-screen. Selecting either of these will show us the file explorer.  The “Empty Site” template actually does have one file in it by default – a file named Index.cshtml.  We can double-click it to open it within the WebMatrix text editor:

image

Files with a .cshtml or .vbhtml extension are ones that use the new “Razor” template syntax that I blogged about last week.  You can use Razor files either as the view files for an ASP.NET MVC based application, or alternatively you can also use them as standalone pages within an ASP.NET Web site.  We are referring to these pages as simply “ASP.NET Web Pages” – and you can add them to both new projects as well as optionally drop them into existing ASP.NET Web Forms and ASP.NET MVC based applications.

Why ASP.NET Web Pages?

ASP.NET Web Pages built using Razor provide a simple, low concept count, way to do web development.  Many people will likely argue that they are not as powerful, nor have as many features, as an ASP.NET Web Forms or ASP.NET MVC based application.  This is true - they don’t have as many features, nor do they expose as rich a programming model.

But they are conceptually very easy to understand, are lightweight to get started with, and for many audiences provide the easiest way to learn programming and begin to understand the basics of .NET development with VB or C#.  ASP.NET Web Pages are also convenient to use when all you need is some basic server scripting and data display/manipulation behavior, and you want to quickly put a site together.

Building our First Simple ASP.NET Web Page

Let’s build a simple page that lists out some content we are storing in a database. 

If you are a professional developer who has spent years with .NET you will likely look at the below steps and think – this scenario is so basic - you need to understand so much more than just this to build a “real” application. What about encapsulated business logic, data access layers, ORMs, etc?  Well, if you are building a critical business application that you want to be maintainable for years then you do need to understand and think about these scenarios.

Imagine, though, that you are trying to teach a friend or one of your children how to build their first simple application – and they are new to programming.  Variables, if-statements, loops, and plain old HTML are still concepts they are likely grappling with. Classes and objects are concepts they haven’t even heard of yet. Helping them get a scenario like below up and running quickly (without requiring them to master lots of new concepts and steps) will make it much more likely that they’ll be successful – and hopefully cause them to want to continue to learn more.

One of the things we are trying to-do with WebMatrix is reach an audience who might eventually be able to be advanced VS/.NET developers – but who find the first learning step today too daunting, and who struggle to get started. 

We’ll start by adding some HTML content to our page.  ASP.NET Web Pages typically start as just HTML files.  For this sample we’ll just add a static list to the page:

image

Just like with our previous scenario, IIS Express has been automatically configured to run the project we are editing – and we do not need to configure or setup anything for our web-server to run our site.

We can press “F12” or use the “Run” button in the Ribbon toolbar to launch it in the browser.  As you’d expect, this will bring up a simple static page of our movies:

image

Working with Data

Pretty basic so far.  Let’s now convert this page to use a database, and make the movie listing dynamic instead of having it just be a static list.

Create a Database

We’ll start by clicking the “Databases” tab within the left-hand navigation bar of WebMatrix.  This will bring up a simple database editor:

image

SQL Server Compact Edition ships with WebMatrix – and so is always available to use within projects.  Because it can be embedded within an application, it can also be easily copied and used in a remote hosting environment (no extra deployment or setup steps required – just publish up the database file with FTP or Web Deploy and you are good to go).

Note: In addition to supporting SQL CE, the WebMatrix database tools below also work against SQL Express, SQL Server, as well as with MySQL. 

We can create a new SQL CE database by clicking the “Add a Database to your site” link (either in the center of the screen or by using the “New Database” icon at the top in the ribbon).  This will add a “FirstSite.sdf” database file under an \App_Data directory within our application directory. 

image

We can then click the “New Table” icon within the Ribbon to create a new table to store our movie data.  We can use the “New Column” button in the Ribbon to add three columns to the table – Id, Name and Year.

Note: for the first beta you have to use the property grid editor at the bottom of the screen to configure the columns – a richer database editing experience will show up in the next beta. 

We’ll make Id the primary key by setting the “Is Primary Key” property to true:

image

We’ll then hit “save” and name the table “Movies”.  Once we do this it will show up under our Tables node on the left hand side. 

Let’s then click the “Data” icon on the ribbon to edit the data in the table we just created, and add a few rows of movie data to it:

image

And now we have a database, with a table, with some movie data we can use in it.

Using our Database within an ASP.NET Web Page

ASP.NET Web Pages can use any .NET API or VB/C# language feature.  This means you can use the full power of .NET within any Web site or application built with it.  WebMatrix also includes some additional .NET libraries and helpers that you can optionally take advantage of for common tasks.

One of these helpers is a simple database API that allows you to write SQL code against a database.  Let’s use it within our page to query our new Movies table and retrieve and display all of the movies within it.  To-do this we’ll go back to the Files tab in WebMatrix, and add the below code to our Index.cshtml file:

image

As you can see – the page is conceptually pretty simple (and doesn’t require understanding any deep object-oriented concepts).  We have two lines of code at the top of the file.

The first line of code opens the database.  Database.Open() first looks to see if there is a connection-string named “FirstSite” in a web.config file – and if so will connect and use that as the database (note: right now we do not have any web.config file at all).  Alternatively, it looks in the \App_Data folder for a SQL Express database file named “FirstSite.mdf” or a SQL Compact database file name “FirstSite.sdf”.  If it finds either it will open it.  The second line of code performs a query against the database and retrieves all of the Movies within it.  Database.Query() returns back an dynamic list – where each dynamic object in the list is shaped based on the SQL query performed.

We then have a foreach loop within our <ul> statement, which simply iterates over the movies collection, and outputs each name as a <li> element.  Because movies is a collection of dynamic objects, we can write @movies.Name instead of having to write movies[“Name”].

When we re-run the page (or just hit refresh on it in the browser) and do a “view source” on the HTML returned to the client, we’ll see the following:

image

The list of movies above is now coming out of our database and is dynamic.

Adding a Simple Filter Clause

One last step we can do to make our application a little more dynamic is to add simple support to filter the list of movies based on a querystring parameter that is passed in. 

We can do this by updating our Index.cshtml file to have a little extra code:

image 

Above we added a line of code to retrieve a “year” querystring parameter from the Request object.  We are taking advantage of a new “AsInt()” extension helper method that comes with WebMatrix.  This helper returns either the value as an integer, or if it is null returns zero.  We then modified our SELECT query to take a WHERE parameter as an argument.  The syntax we are using ensures that we cannot be hit with a SQL injection attack.

Lastly, we added an if statement inside our <h1> which will append a (post 1975) message to the <h1> if a year filter is specified.  And now when we run the page again we will see all movies by default:

image

And we can optionally pass a “year” querystring parameter to show only those movies after that date:

image

Other Useful Web Helpers

I used the Database helper library that ships with WebMatrix in my simple movie listing sample above. 

WebMatrix also ships with other useful web helpers that you can take advantage of.  We’ll support these helpers not just within ASP.NET Web Pages – but also within ASP.NET MVC and ASP.NET Web Forms applications.  For example, to embed a live twitter search panel within your application you can write code like below to search tweets:

image

This will then display a live twitter feed of tweets that mention “scottgu”:

image

Other useful built-in helpers include ones to integrate with Facebook and Google Analytics, Create and Integrate Captchas and Gravitars, perform server-side dynamic charts (using the new Chart capabilities built-into ASP.NET 4), and more.

All of these helpers will be available for use not only within ASP.NET Web Pages, but also in ASP.NET Web Forms and ASP.NET MVC applications.

Easy Deployment

Once we are done building our custom site, we can deploy it just like we did with BlogEngine.NET.  All we need to do is click the “Publish” button within WebMatrix, select a remote hosting provider, and our simple application will be live on the Internet.

image

Open in Visual Studio

Projects created with WebMatrix can also be opened within Visual Studio 2010 and Visual Web Developer 2010 Express (which is free).  These tools provide an even richer set of features for web development, and a work environment more focused on professional development.  WebMatrix projects can be opened within Visual Studio simply by clicking the “Visual Studio” icon on the top-right of Ribbon UI:

image

This will launch VS 2010 or Visual Web Developer 2010 Express, and open it to edit the current Web site that is open within WebMatrix.  We’ll be shipping an update to VS 2010/VWD 2010 in the future that adds editor and project-system support for IIS Express, SQL CE, and the new Razor syntax.

How to Learn More

Click here to learn more about WebMatrix.  An early beta of WebMatrix can now be downloaded here

You can read online tutorials and watch videos about WebMatrix by visiting the www.asp.net web-site.  Today’s beta is a first preview of a lot of this technology, and so the documentation and samples will continue to be refined in the weeks and months ahead.  We will also obviously be refining the feature-set based on your feedback and input.

Summary

IIS Express, SQL CE and the new ASP.NET “Razor” syntax bring with them a ton of improvements and capabilities for professional developers using Visual Studio, ASP.NET Web Forms and ASP.NET MVC.

We think WebMatrix will be able to take advantage of these technologies to facilitate a simplified web development workload that is useful beyond professional development scenarios – and which enables even more developers to be able to learn and take advantage of ASP.NET for a wider variety of scenarios on the web.

Hope this helps,

Scott

P.S. In addition to blogging, I am also now using Twitter for quick updates and to share links. Follow me at: twitter.com/scottgu

149 Comments

  • Hi,

    Loving all the hard working going into the product lines at the moment, awesome-sauce!

    Any tentative dates for a Razor-beta/ ctp release?

  • Excellent work! The slow reveal was worth it!

  • great news, scott - its a boon(esp the IIS express) for all those who are still 'stuck' with XP (for fore-seeable future,atleast)

  • Awesome, can't wait to see how Razor + WebMatrix makes Microsoft's platform for web development extremely simple and approachable for new developers who just want what they need to get stuff done. Kudos!

  • Looks great Scott!

    Another reason to get YetAnotherForum.NET v1.9.4 submitted for Web Platform -- so you guys have a ASP.NET forum install.

  • Wasn't Webmatrix created by Nikhil Kothari, a few years ago? Thanks for all the free stuff.

  • I love it! Razor's a real go forward and Webmatrix has a clean IDE. I'm sure a lot of people want to check it out just like I did.

    Grz, Kris.

  • Great write up Scott! Looking forward to seeing all of the web goodness that comes out of this.

  • Great tool Scott! This is really going to help web developers deploy applications quickly and easily! Love the web deploy integration! Jess

  • Wasn't the first IDE for ASP.NET called Web Matrix? All looks great.

  • As I see, Microsoft wants to create some rivals for php
    Impressed!

  • Seems like kind of a Microsoft Web PI tool :/ idk if I like that to much... but looks more intresting, might give it a wirl:)

  • It's really cool! Want to use Razor and WebMatrix in practice! Thanks for this!

  • I don't see why everybody is so happy about this. It seems like MS is targeting beginner PHP devs. Instead of getting better free tools (let me remind you that Eclipse and NetBeans are free) we get... something (I even don't know how to describe it). I don't see why it will be good even for beginners. Why would they want to learn how to build websites in a way that no one else does (i.e. with data access and service layers, etc.)

  • I think some years back there was something called Web Matrix... I would love to play around with the tool.

    But now what will happen to the Web Platform Installer?

    Good Work Scott..

  • Glad to see this information. Thank you. And, I wish there was an option to collapse all images on this blog post, because it is almost 30 pages in my browser.

  • Hi Scott,

    I was wondering if you clarify where the static "Database" (and the "AsInt" extension method) come from?

    Thanks!
    Ed C.

  • What is the license rules for the SQL Server Compact Edition? The price for using an SQL server edtion on websites is ENORMOUS - what rules (license) goes for the Compact Edition?

  • What about simple or full intellisense support?

  • I'm having flashbacks to 2002 and .NET 1.0 for some reason, wasn't this a project from back then?

  • Hi Scott,
    The download link does not work for me. Not sure whether i am the only one experiencing this.

  • Scott,

    Is a standalone download of IIS Express available? Surely it's bundled with WebMatrix, but I don't want to install the whole stack just to play with IIS Express.

  • So now that this is out in the wild, I'm assuming the individual components will be made available for use to use as well (Razor, IIS Express and SQL Server CE) Or can we just grab Web Matrix and utilize the binaries from that for now?

    Hopefully we can get less abstract info on how to implementing each of them in practice. For example, you mentioned "You’ll be able to configure VS 2010 to use it [IIS Express] instead of the ASP.NET Web Server as the default web-server on ASP.NET Projects." in your post covering IIS Express a week ago. Can you be more specific?

  • I'm just ... surprised.

    We get 3 teases of some really cool stuff (SQL SE, IIS, Express, and Razor) and then this?

    Can't we just get the technology? Does it really need to be wrapped in an Office-like shell like we're 15 year olds?

    Wow. This is really a step backward. Will Microsoft EVER understand that software development just isn't something that everyone can (or should) do? The essence of this is that now real devs will be spending even more time rewriting websites.

    And yes, this is a lot like FrontPage and in many respects, Access, in the sense that it deludes people into believing that just because you can do something small in a short amount of time, that just about anyone can substitute for someone with real expertise.

    How many times does this lesson have to be taught, Microsoft?

  • WebMatrix seems nice, however I am confused as to what message Microsoft is sending.

    Are you saying that Visual Studio is not good enough, or easy enough to use for ASP.NET web development? Or, are you targeting a different demographic other than your Visual Studio audience?

  • gazelem67 - None of that stuff is "wrapped" in WebMatrix. If you want to use all that cool stuff (as well as WebDeploy) then you're totally going to be able to use each one of those, on your own, however you like, in whatever tool you want.

  • nice, I'll ask my 15 y/o bro to give it a try.

    It really looks fun, the UI is very simple.
    This is the basic of the basic of programming.

  • In addition to my early comment, I would say that this seems the perfect tool for IronRuby.

  • What I like about this is it's easy for kids to get the hang of it. I konw many of the youth i've worked with look at Visual Studio and get totally bug eyed. This is quite something, and easy.

  • Wish I could try out WebMatrix but I can not install it because I can not install 'Microsoft SQL Server 2008 R2 Management Objects' (I get some cryptic 0x???? error message). This is not the first time that I've been frustrated by installation of SQL server related products

  • @Kieron,

    >>>>>>>> Any tentative dates for a Razor-beta/ ctp release?

    Razor support is built-into today's beta of WebMatrix - so you can start using it in the context of ASP.NET Web Pages today.

    Later this month we'll release the first preview of Razor support within ASP.NET MVC (which will not require WebMatrix and instead have VS 2010 integration). You'll then be able to also use Razor to build ASP.NET MVC Views. I'll blog more details once this preview is released later this month.

    Hope this helps,

    Scott

  • @Rams,

    >>>>>>>> Wasn't Webmatrix created by Nikhil Kothari, a few years ago?

    Yes - we had a Web Matrix project several years ago. It was also a lightweight tool focused on making it easy to learn and get started with web development. We liked the name and so decided to re-use it for this (since it has the same purpose as back then).

    Hope this helps,

    Scott

  • @Richard,

    >>>>>>>> Wasn't the first IDE for ASP.NET called Web Matrix? All looks great.

    Yes - we had a tool several years ago that had the same name. It was aimed at the same audience and scenarios (make it easy to get started with web development) which is why we decided to re-use the name. Think of this as webmatrix reloaded ;-)

    Hope this helps,

    Scott

  • @rposbo

    >>>>>>>>> Who is this aimed at? I like the idea (maybe a lightweight dev env for my netbook which struggles with VS2010), but a little worried that SQL CE is MS Access in disguise and WebMatrix is likewise FrontPage in a new toupee.

    If you are a professional developer who uses VS today then WebMatrix is not really aimed at you - at least not for your "day job". You might find WebMatrix useful for quickly putting a blog on the web or doing lightweight scripting on the side. But it isn't intended or focused on hard-core professional or enterprise development. It is instead aimed more for people looking to learn how to program and/or who want to get a site up and running on the web without having to write much code.

    >>>>>>>> Loving the ability to get to play with IIS Express, SQL CE, and Razor all in one lightweight package though. And loving that it supports other languages, not just .Net - excellent work, Team Gu.

    A lot of the value of WebMatrix is that it provides some nice integration and is task focused. All the pieces can also be used in our full professional stack (which makes them really powerful). What we are trying to-do with WebMatrix is have a nice integrated story for the 80% of common web-site tasks which tend to be very task focused - and increasingly are centered around tweaking apps as opposed to writing them from scratch.

    Hope this helps,

    Scott

  • @Stilgar,

    >>>>>>>> I don't see why everybody is so happy about this. It seems like MS is targeting beginner PHP devs. Instead of getting better free tools (let me remind you that Eclipse and NetBeans are free) we get... something (I even don't know how to describe it). I don't see why it will be good even for beginners. Why would they want to learn how to build websites in a way that no one else does (i.e. with data access and service layers, etc.)

    This particular tool is targeting more for beginners and people looking to tweak applications as opposed to doing hardcore development. There is a big audience of people who fall into that category, and many want to eventually grow into doing more professional development - but are overwhelmed with starting with a full IDE to do so.

    Visual Web Developer 2010 Express is a full IDE that provides a lot more power and functionality for people looking to-do professional development. It is also free. We'll continue to add a ton of new capabilities to it as well. If someone already knows core programming skills and wants a richer programming environment that is free I'd recommend they use VWD. WebMatrix on the other hand is aimed at people who aren't ready or interested in this.

    Hope this helps,

    Scott

  • @Earlnet,

    >>>>>>> But now what will happen to the Web Platform Installer?

    WebMatrix uses the Web Platform Installer for downloading and installing all of the applications and components in the web gallery, and the Web Platform Installer will still definitely be available as a separate installer for configuring boxes.

    Hope this helps,

    Scott

  • @eddie cianci

    >>>>>>>> I was wondering if you clarify where the static "Database" (and the "AsInt" extension method) come from?

    These helper libraries are included with the ASP.NET Pages install (as an assembly that by default WebMatrix references). They'll work with any ASP.NET application, though, and some of the HTML helpers (Twitter, Google, Facebook, etc) will also show up and be available within ASP.NET MVC and ASP.NET Web Forms as well.

    Hope this helps,

    Scott

  • @Mojo,

    >>>>>>>>>>> What is the license rules for the SQL Server Compact Edition? The price for using an SQL server edtion on websites is ENORMOUS - what rules (license) goes for the Compact Edition?

    SQL Compact Edition is free - and can be used for both production and development scenarios. There are no license restrictions.

    Hope this helps,

    Scott

  • @Jeje,

    >>>>>>>>> What about simple or full intellisense support?

    That is something we are considering for the future. Right now we only provide color highlighting within the editor.

    Hope this helps,

    Scott

  • @Nick,

    >>>>>>>> Is a standalone download of IIS Express available? Surely it's bundled with WebMatrix, but I don't want to install the whole stack just to play with IIS Express.

    With today's beta you need to install WebMatrix to get IIS Express. We are looking to enable a separate package installer in the future for it as well.

    Hope this helps,

    Scott

  • Nice to see some innovation in the .net space! I really like the new @ syntax.

  • Does WebMatrix have SqlServer CE 4 ? Can we have it as a separate download?
    Thank you,
    Andrei

  • I like the idea of IIS Developer Express.

  • Scott, While you have Express editions of your VS products, the VS products are FAR too expensive. I mean 22k for VS2010 Ultimate? How is a small dev shop that wants to take advantages of the features meant to fork out that sort of money for a few devs? It's unjustified. I've never understood why Microsoft doesn't just make 1 of their products completely free. Like make Windows free, and just make the Server edition a licensed product. Or make VS free, cos the production environment requires a server license, sql server, etc.

    Anyway this WebMatrix looks completely useless for me, and I can't see any "non hardcore" developers ever using it beyond giving it a whirl.

    So far:
    Razor - Awesome
    SQLCE - Awesome
    IIS Express - Great... but IIS really should be a separate install so we can put IIS7.5 on Windows Server 2008 (NON R2)
    WebMatrix - Useless

  • Looks great!

    This interface with intellisense and without the database stuff would be awesome.
    Dot net really needs a lightweight editor without the extra million features of VS.

    Maybe this will be it. Can you turn off features in webmatrix?

  • I was hoping for mvc3 news\beta, chuck me that Ruby book......

  • Webmatrix is exactly what was missing to make ASP.NET popular. Zero friction web development ala PHP. But, there still to many magical layers. I hope that Visual Studio will support PHP development at one point.

  • Wow, this is great. I loved the original Webmatrix and this one looks like it was built in the spirit of that one. Sometimes simple is best and it seems like WebMatrix is targeted along those lines. It also seems like something beginner web developers would be able to pick up easily. With the web page view it almost feels like I'm back in the year 2000 and classic ASP.

    I hope this isn't a message that VWD Express is going away though. The express versions that replaced the original Webmatrix is what really helped me keep working with asp.net. I don't know if Webmatrix would be able to fill that gap for developers. I hope Microsoft hasn't decided that they are giving too much away with the express versions and are introducing the new Webmatrix to eventually replace their free offerings.

  • Unbelieveable! I love this thing!

  • I appreciate the effort to try and get away from the complexity that can be overwhelming in .NET web dev.

    However, the section Working with Data is jarring, especially since it follows the section with the disclaimer that the tool is aimed at beginners - people grappling with concepts of variables and conditionals. It jumps into talking about tables, and columns and primary keys?? Look at what Rails does with ActiveRecord migrations - no DDL, no primary keys (that you have to specify). Look at some of the NOSQL alternatives for easily persisting/loading data.
    I would think that a Linq 2 SQL approach would be more appropriate, with some inferred schema generation like we do with NHibernate's BuildSchema().

  • re: 'frontpage in a toupee' I think that's called 'Expression Web' these days.

    Is there a separate download for SQL Server Compact Edition?

  • Looks promising - filling a market need. Bringing the power-user-but-not-professional-programmer into the ASP.net world. We'd been feeling left out for a while. (Yes, yes, I know about SharePoint.) It's hard to apologize for wanting approachable tools to get the job done. Can we get in over our heads - sometimes - but often that's hard to foresee. Think of all the great little projects that aren't getting done because of the learning curve. Likely, only one in a hundred will survive, evolve into great complexity, and/or experience great demand - worth hiring great programmers. (But that doesn't mean the other 99 were of no benefit.)

    1) Are there some guidelines for scale/type of projects that probably should never be started using this technology?
    2) Are there a set of recommended best practices to facilitate later transition to code behind, Web Forms, MVC, SQL Server, etc.?

  • This is great Scott.Now lot of good things are happening in the web platform.

  • There are few software features that I actually hate, but the damn ribbon is one of them. And now, for the first time, the hateful ribbon has made its way into a Microsoft development tool. All I can say is for God's sake please do not allow the ribbon into Visual Studio. There are few things that would drive me away from Microsoft development tools, but the damn ribbon might just do it. Thanks, Bosco

  • Sounds very usefull!
    Any plans to offer lessons/tutorials or something similar for schools and/or students?
    Would like to consider WebMatrix a next step for the ones that have been using SmallBasic and want to go further...

  • @Nick A,

    >>>>>>> So now that this is out in the wild, I'm assuming the individual components will be made available for use to use as well (Razor, IIS Express and SQL Server CE) Or can we just grab Web Matrix and utilize the binaries from that for now?

    Right now the WebMatrix setup is the only one available (and it chains everything). We are looking at making the individual components available as separate installs in the future.

    >>>>>>>>>>> Hopefully we can get less abstract info on how to implementing each of them in practice. For example, you mentioned "You’ll be able to configure VS 2010 to use it [IIS Express] instead of the ASP.NET Web Server as the default web-server on ASP.NET Projects." in your post covering IIS Express a week ago. Can you be more specific?

    We are still finalizing the exact UI within VS 2010 to enable this - but essentially you'll be able to configure a project to use the IIS Express server instead of the built-in ASP.NET Web Server. This will likely be configurable in a project property page.

    Hope this helps,

    Scott

  • @Edward,

    >>>>>>>> WebMatrix seems nice, however I am confused as to what message Microsoft is sending. Are you saying that Visual Studio is not good enough, or easy enough to use for ASP.NET web development? Or, are you targeting a different demographic other than your Visual Studio audience?

    Visual Studio provides a super rich web development environment that is focused on professional developers as an audience. If you are professional developer or someone who knows programming well, then VS is the tool for you.

    WebMatrix is focused more on people who are new to development, and want a more task-focused environment to-do common tasks (create a site from a template, tweak it, deploy it to a hosting provider, etc).

    Hope this helps,

    Scott

  • @Eduardo,

    >>>>>>>> But why it is not open source?

    The tool right now isn't open source - although several of the components in it are. It is a good suggestion that we'll think more about though.

    Hope this helps,

    Scott

  • @Dejan,

    >>>>>>>>> Wish I could try out WebMatrix but I can not install it because I can not install 'Microsoft SQL Server 2008 R2 Management Objects' (I get some cryptic 0x???? error message). This is not the first time that I've been frustrated by installation of SQL server related products

    Sorry you are running into an issue. Send me email (scottgu@microsoft.com) and we can help you out.

    Thanks,

    Scott

  • @Andrei,

    >>>>>>>>> Does WebMatrix have SqlServer CE 4 ? Can we have it as a separate download?

    WebMatrix installs SQL CE 4. It will also be available as a separate download in the future.

    Hope this helps,

    Scott

  • @NC,

    >>>>>>>>> Scott, While you have Express editions of your VS products, the VS products are FAR too expensive. I mean 22k for VS2010 Ultimate? How is a small dev shop that wants to take advantages of the features meant to fork out that sort of money for a few devs? It's unjustified. I've never understood why Microsoft doesn't just make 1 of their products completely free. Like make Windows free, and just make the Server edition a licensed product. Or make VS free, cos the production environment requires a server license, sql server, etc.

    VS Ultimate is not 22k. The list price is I believe 12k - although typically with licensing most companies pay far, far less. Ultimate is also the highest priced VS edition we have. VS Professional can be purchased new for ~$549.

  • @redsquare,

    >>>>>>>>> I was hoping for mvc3 news\beta

    You'll see the next preview of ASP.NET MVC (which includes Razor support) come out later this month. Lot of goodies coming with it - stay tuned.

    Scott

  • @dc,

    >>>>>>>>> I hope this isn't a message that VWD Express is going away though. The express versions that replaced the original Webmatrix is what really helped me keep working with asp.net. I don't know if Webmatrix would be able to fill that gap for developers. I hope Microsoft hasn't decided that they are giving too much away with the express versions and are introducing the new Webmatrix to eventually replace their free offerings.

    Visual Web Developer Express is definitely NOT going away. The express editions of VS have been huge hits and aren't going away. WebMatrix is going after an audience which is slightly different - people absolutely new to development, or who do not want to work in a pro IDE like coding environment. There are lots of different people out there in the world - there is definitely more than enough people for both :-)

    Hope this helps,

    Scott

  • @Joshua,

    >>>>>>>>> I would think that a Linq 2 SQL approach would be more appropriate, with some inferred schema generation like we do with NHibernate's BuildSchema().

    We've debated the role of ORMs for entry-level devs quite a bit (and have a dynamic ORM implemented - but which we didn't ship with today's preview). For someone who understand objects and classes they can be great. When we brought in web developers to use the product for a few days, though, one interesting data point that came up repeatedly was that about 80% of them had never even heard the term "ORM". We found it took awhile for them to conceptually grok it - whereas adhoc SQL came much easier to them. It is something we are going to continue to work on finding the right balance on.

    You will also seen some very interesting ORM updates (including inferred schema generation and smart conventions) coming out of the EF4 code-only work shortly. I'll be blogging about it shortly - it provides a really nice POCO solution that is also really productive and easy. It will also support SQL CE 4 and enable auto-database creation, which makes getting up and running quickly and doing quick spikes super productive. I'll share more details very shortly on this.

    Thanks,

    Scott

  • @Joseph Cooney,

    >>>>>>> Is there a separate download for SQL Server Compact Edition?

    The SQL CE 4 beta is currently only in the WebMatrix download. We are looking to make it a separate package you can install in the future.

    Hope this helps,

    Scott

  • @David,

    >>>>>>> 1) Are there some guidelines for scale/type of projects that probably should never be started using this technology?

    I don't think we have specific guidance out just yet. From an application performance perspective, it is the same ASP.NET and so performance is very good. The main thing around scale of projects will be around architecture and code organization. It is easier to get into trouble in a world without clean separation of concerns (which both MVC and WebForms can help with). That isn't to say you can't build good very, very large applications with a single-file approach, nor that you can't build bad apps with a framework that pushes a more separated architecture.

    >>>>>>>>>> 2) Are there a set of recommended best practices to facilitate later transition to code behind, Web Forms, MVC, SQL Server, etc.?

    We'll try and provide more guidance in the future on this. In general one of the things we are trying to enable is for people to learn the core skills of .NET (language, page templating syntax, web basics, data access, etc) which in turn will enable them to more easily move between different .NET frameworks and applications. We will also enable code migration as well - and will provide more guidance on how to-do that going forward.

    Hope this helps,

    Scott

  • @Per,

    >>>>>>>>> Any plans to offer lessons/tutorials or something similar for schools and/or students? Would like to consider WebMatrix a next step for the ones that have been using SmallBasic and want to go further...

    The academic market is definitely an area we are going after. We'll have lessons/tutorials for curriculum put together in the future for use in a introductory training way.

    Hope this helps,

    Scott

  • Hi Scott,

    This looks like an interesting move for DevDiv to make.
    I've collected a few pointed questions I heard during the day and if you've got time to answer them, I'd love to get your take.

    1. Why is the WebMatrix IDE not based on VS2010?
    I thought the UI is super modular and rewritten with MEFFed WPF? Doesn't VS2010 (through MEF+WPF) let Microsoft have the level of flexibility needed for that task? Or is it that Microsoft just doesn't actually think VS2010 is a good infrastructure for really good Microsoft IDEs?

    2. As WebMatrix is supposed to target "script" related programming endeavorers, why isn't IronRuby and IronPython supported in V1.0 rather than a custom build view engine that has 0% marketshare?
    It seems that once again, Microsoft is skipping over investing in existing assets in favour of brand new shining opportunities.

    3. Instead of building PHP support in some one-off 3rd party tool, wouldn't it make more sense to invest resources and improve Visual Studio's native PHP story? Maybe finally purchase PHlanger or innovate with some radical Dev11 PHP support? It seems reckless and a poor investment to spend resources where there are otherwise successful stories in place.

    4. What's the shelf-like on WebMatrix?
    Is it just one more microsoft one-off project that'll die off in a year or two once DevDiv is strapped for resources? This has all the signs of one of those. Realistically, Microsoft already has 2 other Web IDEs (Visual Studio and Expression Web) and some people don't see Microsoft maintaining three Web IDEs.

    5. While there's some benefit to be gained from WebMatrix for Microsoft, isn't it just cluttering up an already massively confused Web Strategy?
    4 ASP.Net Frameworks, Silverlight, XBAP, Expression Web and now WebMatrix?
    Doesn't Microsoft feel the frustration developers have when choosing a platform, frameworks and IDE from a terribly fragmented ecosystem?

    I rewrote this comment several times, but some of these are hard questions and many customers have been asking those today.

    Sincerely,
    -- Justin Angel

  • Razor implementation together with the SQL CE 4 database support seems super cool. Great work scott!!!

  • @Scott :
    Thank you for your answers!

  • Scott,

    You say WebMatrix is ‘for people looking to learn how to program’.

    In the screenshots above you’re doing database queries in the html file.

    You know a lot of people look to Microsoft for guidance on how to build applications, so why teach them to do things this way?

    Cheers,

    Jag

  • Did I just see database access code sitting next to HTML? :-O

    With reference to the database Helpers that you have used here - are they WebMatrix specific or would these helper also be a part of the standard MVC 2 application that uses the Razor view engine?

  • The most useful thing this tool has is a button to launch Visual Studio. I'd like to see the focus on making Visual Studio more reliable and really fast.

    Solutions that target maintainable code, not another develop really quickly throw away really quickly...

  • oh no, not another company/user asking me to create or fix his Razor pages. Another new technology to learn !

    We programmers need a break !

  • Some early feedback:
    1 - on XP it picks up only the "default" browser, not all the installed browsers
    2 - no Intellisense at all... I hope this is something that is going to be available in the next releases
    3 - How can I use IIS Dev from VS 2010?

    Simone

  • Wasn't Access, FrontPage and VBScript supposed to help beginners as well? Look where that's got us!

    I think it's great to give people a helping hand as long as it stays out of core production, it's fine to knock up one-off websites that will not go further than 50 users and the bedroom it was produced in, but when you have 15000 desktop users in your organisation with access to this 'free' and 'easy to use' tool that allows you to spin up nifty websites then one day someone's going to get lumbered with support and have to re-write them.

    I'm not sure this is worthy enough to be blogged on here, to be honest.

    K

  • I'd certainly vote for server Javascript as a great addition to Razor. And keen for ASP.NET MVC to have more flexible JSON support. The DataContractJsonSerializer doesn't easily produce the JSON-C compact notations that seem to be becoming popular eg. with Portable Contacts and Activity Streams specs.

    My other thought for ASP.NET is whether W3C Widgets specs could become the component type story for controls and widgets.

  • >Wasn't Access, FrontPage and VBScript supposed to help beginners as well? Look where that's got us!

    >I think it's great to give people a helping hand as long as it stays out of core production, it's fine to knock up one-off websites that will not go further than 50 users and the bedroom it was produced in, but when you have 15000 desktop users in your organisation with access to this 'free' and 'easy to use' tool that allows you to spin up nifty websites then one day someone's going to get lumbered with support and have to re-write them.

    >I'm not sure this is worthy enough to be blogged on here, to be honest.

    No, not worthy. SQL Compact 4 looks a bit interesting, I have to admit. For small devices. The rest of "da stuff"? No, this is the wrong place. If you know what Scott previously wrote about, interesting developer things - useful stuff. This looks like a propaganda site? Not the place and feed I updated continuously. Who is using Expression Design/Blend/... for that matter? Shiite things not worthy this originally feeds standards. Dropped from my Google Reader Feed after years. Sad.

  • Awesome stuff - thanks!

  • In the administration.config file, the sql provider has a few . in the name



    Thanks

  • Well i'm not a web developer of any kind, and i found out this tool great for someone like me that doesn't know basic of coding. so i guess you have been succesful

  • Are there any known issues regarding the web installer on Windows Home Server vail? It installs just fine, but the application galery tab never appears and the "sit from web gallery" window also stays empty. I disabled the firewall to test it.



  • Azure free hosting for this stack will be kill feature.

  • ScottGu wrote:
    > The SQL CE 4 beta is currently only in the WebMatrix download. We are looking to make it a separate package you can install in the future.

    If you load the Web PI, it gives you a link which you can copy and paste into a web browser to download the SQL CE 4 beta (including both the x86 and x64 installers).

  • I worked with the "original" Web Matrix (so I have been following this for a while and it was way more capable). The new features in Web PI beyond Web Matrix is cool, but wow this feels more like an advanced installer for beginners who are installing pre-packaged software (something that Web PI does already, just a bit more simplified.. I know this is a first beta but no design surface even.. Professionals who already work on the platform don't need this..

    I have to say that I am wondering who is going to use this? It's too simplistic for most web developers in terms of control panel functionality and it's useless to designers.. I'd rather see the web platform installer and webmatrix rolled into one product and called an "installer". But the idea that you can't lock down anything you do here with security in a good way inside the product, this is too simplistic and gives people the wrong idea of what they may have to do to have a real website there..

    To echo someone else's comments after working with this (the other features and betas in the new PI are great and WOW!) However this is another product without a market to me.. It can't be positioned well with other products (it clashes with Expression Web and Visual Web developer features of VS2010, these all should just be rolled into a VS2010 update)..

    Honestly, to echo another person who commented earlier..

    I'm am surprised..

    "We get 3 teases of some really cool stuff (SQL SE, IIS, Express, and Razor) and then this?

    Can't we just get the technology? Does it really need to be wrapped in an Office-like shell like we're 15 year olds?

    Wow. This is really a step backward. Will Microsoft EVER understand that software development just isn't something that everyone can (or should) do? The essence of this is that now real devs will be spending even more time rewriting websites.

    And yes, this is a lot like FrontPage and in many respects, Access, in the sense that it deludes people into believing that just because you can do something small in a short amount of time, that just about anyone can substitute for someone with real expertise.

    How many times does this lesson have to be taught, Microsoft? "

    What are you guys thinking? This is just another UI that confuses marketing and the path for new users.. WHAT ARE YOU GUYS THINKING??

    -Don Burnett



  • Not sure about this ... I remember the original Web Matrix which got killed off by the first "express" product. We already have the PI and Express products so I think this might be a product too many ... I can't see any place for it in our teams.

  • I liked it, has great perspective. I liked the syntax, very easy to understand.

  • Just a crazy WPF fan here. I'd like to ask, was this written entirely in WPF? This UI has killer looks. Will those be ported to later version of Visual Studio like VS2012 etc?

  • Oh, I'd like a Microsoft PHP IDE... :(
    ASP.NET is good for web as an airplane is good to moving in city...

    And others PHP IDE are just crap.

  • I love all this stuff.

  • Excellent. This is simply great. Having worked with .Net and using Express Editions for doing home development, I always had problems with IIS. Now, IIS supplied with WebMatrix gives web development opportunities for both Novice and expert developers to have a development environment that is easy to use and understand and more importantly get a grip with. Imagine, you can write html, basic codes and even more at home, bring the code over along with your css and push it to your final project. Job Done...!
    Thanks Scott for sharing this with the community.

  • Hi Scott,

    Thanks for wonderful article. It actually encouraged me to move to framework 4.0 from current 3.5.

    The lucid way of adding information from database on HTML page is very promising and I could imagine what probably I can do with all this.

    Just wondering, if it is possible to add dynamic server controls to the page and maintain their ViewState across Postbacks? Also, needless to mention that I will need to specify server control's properties as well which is actually coming from external source.

    Thanks.

  • .asp is back!

  • Scott,

    This looks great as a prototyping tool. If you are designing user-interface-first, then this lets you get right into the html quickly, but also incorporate live data from the start. I will probably explore it in that context.

    It would be cool if DB.Query() returned in IQueryable (maybe it does), and if it was possible to use a fluent iqueryable-ish API on that object.

  • I don't know about you, but most hosting providers don't want you adding any executables such as databases to their servers. And a flat file database is practically useless for any kind of real world web sites. Are there any tools for adding credit card processing or paypal processing, how about Google Adds etc.?

  • Shouldn't it be "RE-introducing" WebMatrix? There was an IDE called WebMatrix for .NET 1.1.

  • What's going on with Microsoft ??? How is the "Razor" a better/quick method of teaching someone ASP.NET? Isn't this the way we used to code in ASP and Old JSP pages? Wasn't ASP.Net introduced to "eliminate" those code-spaghettis and to provide "less complex" way of coding for "normal programmers"?
    To me this is even "stripped" down version of once promoted ASP.Net WebMatrix For ASP.Net 1.1[Any one remember??]

    I hope MS will stop these "too" many tools approach. You already have provided "more than decent" Express versions of your tool and if this tool is to "attract" developers from PHP background then man tell me what will they learn if they have to code the same way?


    One note: Microsoft's .Net success way b/c of too much java frameworks that were all thrown to developers from all around the java community. .Net eliminated that with single and simplest framework to "concentrate" upon. It looks like MS itself is not happy with the success of .Net that's why we .net developers are being welcomed with too much every day. Why?

  • One more thing I want to add!

    Please please please, concentrate more on how seamlessly Silverlight can be integrated in ASP.Net applications. That'll definitely be something worth to work on and throw at developers[Who will welcome it I bet!]. Stop thinking of silverlight as Flash replacement. It's more than a flash. Dont ruin it!

  • Admittedly, I'm simply annoyed.
    Software development shouldn't be simple?
    only for gurus?
    for simple people?
    for childrens?
    for do programming Is necesary be master mechanical enginner for drive an enjoy a car?

  • It brings me great pleasure to know that "the tool" has evolved into the full blown community oriented environment I championed. I remember vividly sitting with you, Susan Warren, Plip and Dan Whalin in chat rooms a decade ago discussing ways to shakeup the toolset. I remember vividly how most people in the community thought it a little daft to strongly integrate community into a tool. It is beyond awesome to see "Project Saturn" aka "The Tool" aka "Web Matrix" evolve the way it has. Thank you sincerely Scott for being a beacon of light inside of Microsoft driving the company away from a path that doesn't work into a path that will.

  • I think it's great what you have done being a absolute beginner not so who never went to school for this stuff I've learned everything from blogs books video and written tutorials you guys have put out excellent work Microsoft and crew I'm making a little money freelancing now this is a great tool to start with I'm using it to come up to speed with Razor I think I think Razor is exciting the thing I like about this tool is someone with little or no experience can get something up and running get in over their head and then I can open it with VS and bring it up to speed they get a chance to see if their idea is right for them and one point I'd like to make about php on the freelance web sites there are countless numbers of php web site that need fixing they should have just gone with ASP.NET in the first place. I think it's going to be a great little tool for beginners
    open source stuff is a beginners nightmare way to go team Microsoft

  • I think this fills the issue of what a recent blog post pointed out that the .net code and the MS stack seem difficult / expensive to get started in and doesn't fit the needs of start-up companies well, as it is typically geared to enterprises. This seems to fill the low end free cost requirement many start ups need, but provides a clean and easy way to extend painlessly into a full enterprise setup should your start-up take off. I also find this as a way for MS to capture a market filled with users who are lost on low cost options for the web. For example the various CMSes, or just to create a basic web 2.0 style webpage without having a degree in .Net and 10 years experience.

    I run a start-up web hosting / design company and this is a great tool. Yes I know all the full details and have full licenses of the whole MS stack, but at times all I want to do is spin up a web site with 5 pages, and a form to grab some user feedback. I time tested and even being completely new with this I built the site much faster with webmatrix then asp.net full force, mainly cause I didn't have as much deployment setup to be done. I think this is a great tool to provide to people as a way to get them started with the web programming, and if the want to start with MS stack well they get it all wrapped in a cute box with a pretty bow.

    Let the .net community expand the default templates and you can start to have whole websites that are built and setup with just a few clicks. It's almost like giving users a sandbox for lack of better term CMS, were all the heavy lifting is done for you, all you do is add your text.

    Also form the looks of it a dummy's guide to webmatrix is all you will need to become a pro at using the tool. Which is something MS really needs right now, a low end programming language option, that is built on the MS stack.

  • @Justin Angel,

    >>>>>>>> I've collected a few pointed questions I heard during the day and if you've got time to answer them, I'd love to get your take.

    >>>>>>>> 1. Why is the WebMatrix IDE not based on VS2010?

    WebMatrix uses several components from VS 2010. The Web Deployment infrastructure is the same as in VS 2010. The text editor is the same as used in Expression. The parsers are also the same as used by VS 2010.

    We aren't using DevEnv.exe because we wanted the download to be as small as possible. As VS continues to be refactored we'll look to move to use even more of it binaries in the future.

    >>>>>>>>>> I thought the UI is super modular and rewritten with MEFFed WPF? Doesn't VS2010 (through MEF+WPF) let Microsoft have the level of flexibility needed for that task? Or is it that Microsoft just doesn't actually think VS2010 is a good infrastructure for really good Microsoft IDEs?

    Both VS 2010 and WebMatrix are written in WPF. VS 2010 is a super modular and flexible architecture. Not sure if you are trying to just flame bait here. We used several components of VS within WebMatrix - but ultimately WebMatirx is going after a different audience than VS and so many components are not applicable.

    >>>>>>>>>>>> 2. As WebMatrix is supposed to target "script" related programming endeavorers, why isn't IronRuby and IronPython supported in V1.0 rather than a custom build view engine that has 0% marketshare?

    C# and VB both have much higher marketshare than IronRuby or IronPython. We are not inventing a new language.

    >>>>>>>>>>>> It seems that once again, Microsoft is skipping over investing in existing assets in favour of brand new shining opportunities.

    No - not true at all. This is all built on .NET, WPF and our existing SQL, C#, VB and IIS assets. We also use VS and Expression assets.

    >>>>>>>>>>>>> 3. Instead of building PHP support in some one-off 3rd party tool, wouldn't it make more sense to invest resources and improve Visual Studio's native PHP story? Maybe finally purchase PHlanger or innovate with some radical Dev11 PHP support? It seems reckless and a poor investment to spend resources where there are otherwise successful stories in place.

    WebMatrix is not a one-off tool. Not sure why you think that.

    >>>>>>>>>>>> 4. What's the shelf-like on WebMatrix? Is it just one more microsoft one-off project that'll die off in a year or two once DevDiv is strapped for resources? This has all the signs of one of those. Realistically, Microsoft already has 2 other Web IDEs (Visual Studio and Expression Web) and some people don't see Microsoft maintaining three Web IDEs.

    WebMatrix addresses a market that our existing professional tools do not go after. It is a very large market - approximately 1M servers on the Internet are used primarily for the first scenarios I outlined above (downloading, tweaking, and then deploying a blog/CMS with only some code customization).

    >>>>>>>>>>> 5. While there's some benefit to be gained from WebMatrix for Microsoft, isn't it just cluttering up an already massively confused Web Strategy? Doesn't Microsoft feel the frustration developers have when choosing a platform, frameworks and IDE from a terribly fragmented ecosystem?

    WebMatrix goes after a market we don't have many tools and frameworks for today. As I mentioned above it is a big market in terms of number of developers and numbers of servers. Professional developers should use VS - that is our professional developer tool and always will be.

    Scott

  • Scott, this is a great blog with wonderful products. I was wondering if we can deploy these to our Azure cloud a/c just as easily as you have demonstrated Web deploy?

    ~Amit

  • @JagReehal,

    >>>>>>>>> You say WebMatrix is ‘for people looking to learn how to program’. In the screenshots above you’re doing database queries in the html file. You know a lot of people look to Microsoft for guidance on how to build applications, so why teach them to do things this way?

    One of the scenarios for WebMatrix is for people who are looking to learn how to program, or who are looking to easily script sites.

    One of the things that can be very daunting for people in this category is the "concept count" presented to them when they get started. If you list all of the things that people need to understand in order to build professional grade applications it can be extremely daunting and overwealming.

    One of the goals with WebMatrix is to provide a tool which is fast, easy, and doesn't overwhelm. The concept count to get something done is low, and you can learn as you go as opposed to having to master a ton of things up front. The skills you learn (language skills, html skills, data skills, SEO skills, etc) are useful both in the context of WebMatrix - as well as help you move up to Visual Studio in the future if you want to.

    Hope this helps,

    Scott
    The scenarios we expect people

  • @Preets,

    >>>>>>>>> With reference to the database Helpers that you have used here - are they WebMatrix specific or would these helper also be a part of the standard MVC 2 application that uses the Razor view engine?

    You will be able to use most of the helpers within MVC 2 applications as well. Note that MVC applications are guided towards clearer separation of concerns between your Controller and View layer - so while you could do data access in a view, with an MVC application you are strongly discouraged not to. Instead you want to perform data access within your Controller and then pass the appropriate data to the View to render.

    Hope this helps,

    Scott

  • @Simone,

    >>>>>>> 1 - on XP it picks up only the "default" browser, not all the installed browsers

    Can you send me email with more details on this? We can then have someone help investigate.

    >>>>>>>> 2 - no Intellisense at all... I hope this is something that is going to be available in the next releases

    Intellisense is something we are considering for the future.

    >>>>>>>> 3 - How can I use IIS Dev from VS 2010?

    We'll be releasing an update to VS 2010 that makes this easy. Right now you'd have to manually set it up (launch the web-server, and then attach). In a future VS 2010 update we'll enable you to configure this at the project level to happen automatically.

    Hope this helps,

    Scott

  • @mantorok,

    >>>>>>>> I think it's great to give people a helping hand as long as it stays out of core production, it's fine to knock up one-off websites that will not go further than 50 users and the bedroom it was produced in, but when you have 15000 desktop users in your organisation with access to this 'free' and 'easy to use' tool that allows you to spin up nifty websites then one day someone's going to get lumbered with support and have to re-write them.

    The unfortunate reality is that you can take any technology (whether it is this, ASP.NET MVC, ASP.NET Web Forms, Java, PHP, Ruby, Python) and create bad apps with it. You can also build great apps with any of them. The technology isn't the thing that guarantees success of failure - it is the person using it who does.

    Hope this helps,

    Scott

  • @Wim,

    >>>>>>>> Are there any known issues regarding the web installer on Windows Home Server vail? It installs just fine, but the application galery tab never appears and the "sit from web gallery" window also stays empty. I disabled the firewall to test it.

    Can you send me email (scottgu@microsoft.com) about this? I can then connect you with someone to investigate what is going wrong.

    Thanks,

    Scott

  • @Abdulsattar

    >>>>>>>>> Just a crazy WPF fan here. I'd like to ask, was this written entirely in WPF? This UI has killer looks. Will those be ported to later version of Visual Studio like VS2012 etc?

    Yes - the UI is written all in WPF. :-)

    Hope this helps,

    Scott

  • @Mel,

    >>>>>>>>> I don't know about you, but most hosting providers don't want you adding any executables such as databases to their servers. And a flat file database is practically useless for any kind of real world web sites.

    SQL CE is designed so that you can just FTP it up to your \bin directory of your app and it works. The hoster doesn't need to-do anything to enable it. We've also hardened it to work well in server stress scenarios. You wouldn't want to run a top 2000 site on it - but for 99% of sites it provides enough performance and reliability to use.

    >>>>>>>>>> Are there any tools for adding credit card processing or paypal processing, how about Google Adds etc.?

    Yes - we'll have more helpers and libraries coming out in the future to help with this.

    Thanks,

    Scott

  • @SharpDesigner,

    >>>>>>>>> What's going on with Microsoft ??? How is the "Razor" a better/quick method of teaching someone ASP.NET? Isn't this the way we used to code in ASP and Old JSP pages? Wasn't ASP.Net introduced to "eliminate" those code-spaghettis and to provide "less complex" way of coding for "normal programmers"?

    Some people like a controls model with code-behind for code/content separation, and others like a MVC model where there is separation between the controller and view. In an MVC model your application/business logic is contained within the controller and model layers - and does not live in your view. Your view file instead just focuses on generating HTML rendering.

    Both WebForms and MVC are fine models, and we want to make sure we have great support in ASP.NET for both. You don't need to use MVC unless you want to. WebForms continues to get better and better with ASP.NET 4.

    Hope this helps,

    Scott

  • @Dmitri,

    >>>>>>>>> WebMatrix used to be a name of a community project for free/open-source .NET ASP (1.0) development environment. That project, about 5 years ago, was "acquired" by Microsoft and almost immediately cancelled (within months, I guess) - replaced with a newly created community version of Visual Studio.

    No - that is not correct. Web Matrix was a project we development internally years ago. Its UI was very similar to Visual Studio, and ultimately the express editions of VS came out and we felt served the same purpose.

    This new WebMatrix is aimed at a slightly different audience and uses a different workload. It doesn't replace the express editions of VS - more it is aimed at a different audience.

    Scott

  • @keeperofstars,

    >>>>>>> I run a start-up web hosting / design company and this is a great tool. Yes I know all the full details and have full licenses of the whole MS stack, but at times all I want to do is spin up a web site with 5 pages, and a form to grab some user feedback. I time tested and even being completely new with this I built the site much faster with webmatrix then asp.net full force, mainly cause I didn't have as much deployment setup to be done. I think this is a great tool to provide to people as a way to get them started with the web programming, and if the want to start with MS stack well they get it all wrapped in a cute box with a pretty bow.

    Cool - glad you like it! :-)

    Thanks,

    Scott

  • @Amit,

    >>>>>>> Scott, this is a great blog with wonderful products. I was wondering if we can deploy these to our Azure cloud a/c just as easily as you have demonstrated Web deploy?

    We don't support Azure based deployment with it today - but that is something we are looking at for the future.

    Hope this helps,

    Scott

  • Hmmm are you going backwards with our technology concepts? A lot of the Razor coding examples remind me if coding classic asp style.

  • Will it be able to target .Net 3/3.5 frameworks in later releases? My site is 3.5, the hosting does not support 4.0 yet, and the 'target framework' drop down in WebMatrix only has 2.0 and 4.0 currently. On a initial glance though, it looks like a very handy product to have sitting next to Vs2010!

  • Hi Scott

    Thanks for the great work. Just wondering if you have any idea about this. Will this work with websites hosted by Microsoft on Officelive, or do the standard restrictions at the MS end apply?

    Kind regards

  • Just played with it yesterday night and although it might not be using Best Practices it sure uses Easy Practices a that's worth a lot. It felt very nice, fast, welcome and it was a joy to go over a template project.

  • Scott,

    I'd like to give you and the team at Microsoft a thumbs up for creating this tool. I have not yet tried the package out yet, however I plan to do so in my free time. I'm particularly interested in the blog templates as I have not yet done any blogging sites.

    I do remember the original WebMatrix development tool from about five years ago or so. I used it at my last position as an IT manager when I have very limited understanding of OOP and web development. My experience with that simple development package was very positive. I was able to build some simple sites that I used internally to manage my department, which in turn gave me the confidence to graduate to VS2003. I can understand that some seasoned developers, especially those from a computer science background, may be considering all the technical limitations of this tool, and they have valid points. However, I can guarantee that releasing tools like this will make professional developers out of those who don't yet have the fundamentals of web programming and the development community will eventually benefit from that.

    Keep on doing the voodoo that you do so well.
    Ryan A.

  • @Scott,

    >> The technology isn't the thing that guarantees success of failure - it is the person using it who does.

    People yes, but surely technology plays some part! WebMatrix is a great idea but I would like to see a product that is simple to use and yet promotes the “right way”. For example, one might not understand the concept of separation of concerns, or how to achieve it, but the automated tools in WebMatrix could help him produce such code (easier said than done).

    My concern is, when a developer graduates from WebMatrix to ASP.NET WebForms, do you believe we have set him off on the right foot? Would he not be tempted to continue similar styles of coding?

    Those who have moved from ASP to ASP.NET to probably ASP.NET MVC have learnt the hard way. Why put everyone through the same pain? Shouldn't the experience come to some use?

    As I said, great idea, but please incorporate tools that would allow even new and inexperienced developers to write good code.

    On a side note, I wonder what the MS Sales Team would think of your statement :)

  • I cannot get Web Matrix to Install AAAH!

    Here are my steps:

    1. I downloaded and installed Platform Installer 3.
    2. I click on the big gray Install-Web-Matrix-Buton and I get the following (translated) error message:
    Error adding or removing product 'Microsoft WebMatrix Beta'.
    Details: Value cannot be null.
    Parameter name: installer.

    Note: I did not check the additional check boxes for Web Developer Express and SQL Server Express 2008.

    I am testing this stuff on a developer machine with VS 2008 and SQL Server 2005 Express already installed.
    I also have the latest Windows Updates.
    OS is Windows Vista

    On another note:
    I like the name Web Matrix but the name was poorly chosen, because the web is
    filled with stories about the previous Web Matrix and most stories are about the
    death of Web Matrix, so doing a search on Web Matrix will confuse the hell out of starters that want to get resources on Web Matrix.

    Wishful thinking:
    I would have been great if Web Matrix was a Silver Light app, that could be run out of browser :D

  • Web Matrix has already been used for a similar project years ago

  • Classic ASP is back! After 10 years of fighting the spaghetti coding, MS is promoting it again!

    Scott, why didn't you create an IDE for classic ASP developers instead? Do you know there are still more .asp pages on the WWW compared to .aspx pages?

    Classic ASP is still heavily used out there. Are you aware of that?

  • Creating site becomes easy day by day. Web Matrix is one step ahead.
    Need for hiring a developer will decrease!!!

  • WebMatrix was stop updated for a long time. It not is updated to .net 4.0 is very suprise for me.

  • Hey Scott,

    Good news for XP developers - at least we can get away from local IIS 5.1. Some considerations:

    - I'm getting the opposite from Simone: WebMatrix only picks up Firefox and Chrome, no IE shown;

    - Some basic extras in web.config (jsonSerialization/scriptResourceHandler/...) force me either to remove them from the config file or to run the app under framework 2.0 settings. On the other hand, web.config issues appear under Managed Default Pages as soon as I choose the framework version, which is really helpful;

    - There are a few issues while using System.Web.HttpContext (i.e., can't get the current user information);

    - Interface: Save / Save All buttons could be more visible (maybe placed together with the toolbars);

    - IIS Express SysTray app could have some more options for each site (advanced configuration options would be great);

    - IIS Express with FPSE could be a nice plus (thinking on integration with other web development platforms than VS).

    Rgs

  • Creating site becomes extremely easy day by day. This tools is fantastic. Congratulations.

  • Well compiled tutorial... and nice dev. environment too...

  • Wow, this is the most disappointing thing from the Microsoft development division I've seen in a while. So many steps forward (MVC, VS 2010, etc.), and now this.

    Congrats on releasing FrontPage 2010. Now we'll have to deal with all these so-called "developers" that think they know how to program just because they've used WebMatrix.

  • Hi nice post just like to ask something I have Visual Studio 2010 Beta installed but it's not working after I installed this web matrix whenever I open it the error appears "Unknown Error"

  • Looks like you folks spent quite a lot of work into that tool. It actually looks nice to me. But did you hit the mission goals???

    - We have to Visual Studio for professional developers
    - We have to Visual Web Developer Express for hobbyst developers
    - We now have WebMatrix for people like my girlfried oder grandfather

    So far so good - I am fine with that. BUT: Do you really think you'll get eg. my girlfried to type HTML/Razor/... even without intellisense? NO WAY! She will never type any kind of HTML/Sourcecode ever! The tool looks far too complex as noobs like your targeted audience will ever get used to it. I would need a designer with drag'n'drop, clikc-clack, etc. to handle this kind auf audience.

    For all the more advanced audience you already have flavors of Visual Studio where they can type sourcecode and/or use the visual designer etc.

    Sorry but to me it looks like this was/is a waste of time you better could spend improve VS (eg. make a better font-rendering to the its text-editor so get smooth font's back or build a usable online help system (the one from VS2010 is not usable at all because of missing keyboard support etc.).

    Cheers, Marc

  • Looks cool n easy to develop websites.

  • WebMatrix RE:Visited

  • Love all the silly comments by the desperate anti-MS crowd.

    Shame that I can't use this though; I'll have to roll out my own project by the time this is out.

  • Thanks! This is really useful.

  • Hi Scott,

    It is really a nice post. Thanks. But could you please give me some example where I have prefer web matrix over traditional asp.net or MVC.

  • Scott, I own my own dedicated server, what does it take to support Web Deploy on it? I would really love to test this on my own hosting.

  • "An Internet Connection is required", "You must have administrator privileges on your computer to run the Web Platform Installer."

    So you want me to access the net using an account with administrator privileges? Great security guys! I'd prefer it if you could provide an offline-installer so I can install this without compromising the security of my PC.

  • I've tried downloading with IE, FF, and Chrome, and the resulting file will not run.

  • Scott,

    Webmatrix is truly a great thing both as a concept and the way of implementation. (I've seen it prior as Falcon and when the beta came out I was amazed on the speed you converted that alfa into this. I haven't thoroughly tested but seemed stable during my eval of running our ECMS product within it)

    As I was playing with the Webmatrix project templates I came across the Link Directory example, more specifically the Default.aspx page. There I found this

    var category = db.QuerySingle("SELECT c.Id, c.Title, c.Description, (CASE WHEN c.ParentId IS NULL THEN 0 ELSE c.ParentId END) "
    + "as ParentId, (CASE WHEN pc.Title IS NULL THEN 'Top Level' ELSE pc.Title END) as ParentTitle "
    + "FROM SiteCategory c LEFT OUTER JOIN SiteCategory pc ON pc.Id = c.ParentId WHERE c.ID = @0", categoryId);


    The way I experience, Webmatrix is about to reach for broader audiences - to those people the VS2008 / SQL2008 / IIS Server combo couldn't completely satisfy. To my imagination an Ideal Webmatrix User is a highly trained portal builder with both design and some developer skills, who builds sites alone or in a small team - but that really does not matter. To my experience the raw sql with outer joins are not in the toolset of those guys, and are not very willing to learn it. More likely will they want to use some Jquery like helpers.

    Will you plan to provide some sort of abstraction over the otherwise perfectly chosen SDF/sql light storage?

    regards
    Peter Zentai
    CTO, Sense/Net

  • Amazing, these thing make web developement easy ..

  • Webmatrix probably fills a gap between having to install the web platform applications on an IIS server to running those locally and being able to learn from them. I would like to know how does this tool work with VS 2010? There are hints in your posts and some comments above that talk about component integration like IIS Developer Express, but still it seems to be unclear as how this is poisitioned.

  • Thanks a lot, great work. I'm hobbyist 70 years old.
    Just wondering if you have a full batch download, I don´t like launcher.

  • Can we use this webserver to debug .NET 1.1 version ASP.NET projects?

  • I cannot download it, even if I try the direct download of WebMatrix_x86.msi, from the link that appears on the web platform installer... :-(((( Am I the only one to experience this???
    Thanks
    Andrea

  • I was looking for a simple and efficient way to teach my kid programming. Now I have it. :-)

  • When creating a template is there a way to change site name? for example when i create a wordpress site the site name is called WordPress and if I create another one it will be call WordPress1 and so forth.

    Anyone know?


    Thanks

  • Hi, I want to you can add format function in matrix. Because webmatrix is just for beginner, and if you add this function, it can let beginner have more time to focus on what code should to do but not how to format code.

Comments have been disabled for this content.