First of all, CodeMash is a conference that I love. If you are not familiar with it, it’s one of the few conferences in the world where all technologies come together explicitly to share. The idea is that we are there to “Mash, not to bash”. I’m very proud of the fact that I was on the original board and was the emcee the first handful of years. In fact, it was at the first CodeMash that I originally shaved my head (well, technically Jennifer Marsman shaved my head… 🙂 ) But this “Mash, not to bash” concept make this the perfect place to launch WebMatrix but I’ll talk more about that in a bit.
Second, WebMatrix, Razor, ASP.NET MVC 3, all of the OSS contributions that Microsoft has been making and the whole keynote was a lot of very exciting news and technology that really remind me why I work at Microsoft!
Third, this is the first time ever that Microsoft has launched a product at a community event as well as the first time that a field Evangelist (me) delivered an launch event…
See the whole talk here:
The title of the talk is “It’s Your Web”. And this actually really well encapsulates the talk. During the course of the session, I’m really talking about how web development is evolving to work for you in the way that you want to work.
500 years ago, Leonardo da Vinci said “Simplicity is the ultimate sophistication”. This is a saying that really lands with me. If you’ve seen any of my talks over the past couple of years, you’ll notice that simplicity is a reoccurring theme whether I’m talking specifically about it as in my “Lost Art of Simplicity” keynote that I’ve done a number of places or talking about UX or any of the other topics that I’m very passionate about.
Everybody likes a different type of ice cream. Some people really like chocolate and nothing else will suffice. Other people like vanilla or strawberry. Personally I like Moose Tracks with the peanut cups and hunks of amazing fudge swirled into a creamy slice of goodness. but that may have to do with my obsession with Reece’s Peanut Butter Cups as the perfect candy.
As with ice cream, everybody has a different flavor of web development. With ASP.NET, we’ve got 3 specific flavors that we will talk about today.
ASP.NET Web Pages are simple, light and fast. These are new and we’ll talk about them quite a bit today.
ASP.NET Web Forms are familiar, reusable and productive. These have been around for 10+ years, there’s a very mature control vendor market and the original design principle was to create a very productive environment for those new to web development.
ASP.NET MVC Framework is a very powerful, extensible, robust and agile way to do development focusing on the architecture paradigm of Model View Controller.
There are also different flavors of developer tools. Specifically, we are going to focus on WebMatrix and Visual Studio today.
WebMatrix is new and we’ll be talking about it a lot today as well. It’s a very simple toolset that supports both ASP.NET and PHP.
Visual Studio, our flagship developer product, is a very powerful, flexible and integrated toolset allowing you to go from architecture through the development/test phase and on into QA in the same toolset really managing the entire life cycle of a project.
WebMatrix has been in beta for a little bit so you might have seen it. But in case you haven’t, WebMatrix, as stated before, is a simple tool that allows you to focus on the task at hand and solve problems. It’s designed to create, customize and publish web content very quickly and efficiently regardless of what type of web content that happens to be.
There are three major components with WebMatrix.
The first, and most visible is the Developer Tool. This is a stream lined IDE that supports both ASP.NET and PHP.
WebMatrix comes with a light weight, yet fully functional web server that doesn’t run as a service or require administrator rights to run. It may only be a 10mb download, but it’ll run ASP.NET as well as PHP, has full support for SSL, URL Rewriting and all the other IIS 7 modules whilst running on Windows XP and above.
WebMatrix also comes with a lightweight database that makes it quick to get started building websites. It’s file-based and only runs in-memory within your web application so when you shutdown your app, the database is automatically unloaded. Even better, with a download size of 2.5mb it installs with no configuration and works with existing data APIs and ORMs. When it comes to go to production you can use the database for lightweight scenarios or easily migrate to a SQL Server or SQL Azure with a simple change of the connection string. That said, you can, if you want to, use MySql or SQL Server with WebMatrix and it will work just fine.
WebMatrix is designed around three basic scenarios. Sometimes you need to create something from scratch to solve a problem that’s specific to you or your organization. Of course you can use WebMatrix to do that.
Sometimes you have existing content that you need to organize, customize and publish and of course you can use WebMatrix to do that.
The third option, which is becoming more and more popular of an option is to start with an existing OSS application such as one of the many blog engines, CMS systems, eCommerce solutions and the like that are out there that will get you 80% of the way to solving your business need. With WebMatrix, you can pull a project down directly down from the Microsoft Web Application Gallery from within the IDE, customize and publish very quickly and efficiently.
With the introduction of WebMatrix, however, is not just a tool.
When you build a website with WebMatrix and choose the ASP.NET route, you’ll be using a brand-new coding syntax called Razor. Razor has been designed by the team to be quicker and easier to write code. You’ll notice that it allows you to flow from HTML markup to code seamlessly without having to define where the code starts and where it stops. The Razor parser does the hard work for you, allowing you to do more with fewer keystrokes.
As well as being the default syntax in WebMatrix, Razor is also the new way to code ASP.NET MVC 3. This shared syntax has a number of benefits including sharing code, migrations (which we’ll cover off a little later) and also Helpers.
Let’s imagine that you want to sprinkle some social functionality into your website with Facebook or Twitter. It’s a common thing to do, so we wanted to make it as simple as possible for you. With Helpers it becomes a snap to do, with this code we render out a Facebook Like Button for a page.
Perhaps I want to add eCommerce payments to my website using PayPal. Well there’s a Helper for that too and we’ve taken care to make the API as simple as possible.
Now, I want you to notice that using a helper leverages the Razor syntax and looks exactly the same as accessing any of your own objects and methods.
But the helpers don’t just stop at social media or eCommerce.
In fact, there’s already a vibrant, open source community of helpers ready for developers to use. As well as social and payments with Facebook, PayPal and Twitter,
there’s helpers for forms, polls, Bit.ly as well as Razor templates that I can use in my websites.
What about if I want to get feedback for my website, or add documents from online libraries? There are helpers for that too.
If you want to add the latest Geolocation information or crowd sourced deals from Groupon, there’s Helpers to make that easier.
And if you can’t find exactly what you need, there are some great foundational helpers that will allow you to talk to any service that leverages OData or even store and consume data in the cloud with Windows Azure.
And this is the point at which James Senior (great name) did a demo using WebMatrix to create a web site mostly from scratch.
He started off with a new project created from a template showing off the cool and fairly complete templates that come with WebMatrix. Then he leveraged the database manager built into the IDE to manage and edit the database. Once the database was squared away, he finished out the site levering the Razor syntax, a template from TemplateMonster.com and a PayPal helper.
Lastly, he showed how to publish directly from WebMatrix to a host.
But creating a site from scratch is not the only way to create a web site with WebMatrix. You can start with any of the close to 40 applications that are in the Microsoft Web Application Gallery to create your project. To date there have been more than 2.5 million downloads from the Microsoft Web Application Gallery. Some of these applications are ASP.NET, such as DotNetNuke, Umbraco and BlogEngine.net. Others are PHP such as WordPress, Joomla!, Drupal, MODx and Gallery.
I like showing better than telling so to show how awesome this workflow can be with WebMatrix, Shawn Walker and Joe Brinkman from DotNetNuke came onstage to demonstrate building a DotNetNuke site with WebMatrix. It was a great demo that showed off some great new functionality. They have some awesome new Razor based templates, can leverage SQL Server Compact Edition and more.
But WebMatrix is not just for ASP.NET. It also supports PHP. Personally, I really like cross language tools like this. Microsoft’s investment in PHP over the past number of has been awesome and has made both PHP and MySql on Windows ready for prime time. IIS7, for example, has great support with FastCGI, WinCache, URL Rewrite and more.
At this point, I had the pleasure of bringing Ryan Ozimek on stage. Ryan is the president of Open Source Matters which is the non-profit organization that takes care of Joomla!. It’s amazing to me and it makes me very proud that Ryan was interested in getting up on stage during a Microsoft session and demo a Microsoft tool with Joomla!. It’s a testament to the investment we have make in PHP on the Windows stack, the PHP community and Joomla! in particular.
Ryan just slayed the demo too. It was awesome how easy it is to work with Joomla! with WebMatrix. He showed downloading, customizing and a ton more just like DotNetNuke. But another very useful thing is that he showed managing a MySql (which I know that I miss-pronounced on stage) with the WebMatrix database manager.
When I took back the stage, I got to say, which I thought was awesome, that WebMatrix is released and you can download it right now from microsoft.com/web.
There’s multiple reasons that’s exciting. First and foremost, WebMatrix speaks to new audiences and fills gaps with existing audiences in a great way.
Second, this is the first time in history that Microsoft has launched a product at a community run event. There have been launches as VSLive and a couple of other pro-events that Microsoft is heavily involved with. But CodeMash is definitely an independent conference and the fact that we launched a product there is really a testament to the conference.
Third, as far as I know, I’m the first person to launch a Microsoft product that was not a member of the Microsoft executive ranks (VP/President/CXO…).
WebMatrix is available right now from microsoft.com/web and you can try it out for yourself. I’m really looking forward to hearing some from you about what you think of it and how you’re using it.
It was funny to talk to my brother-in-law, Tomas, on the weekend after the show. He runs IT for a school district in Kansas. He had downloaded and tried WebMatrix. I asked him if it was everything that I had promised that it would be. He said “Absolutely, I’ve already deployed two sites with it!”. His co-worker asked him, “Does this mean that I don’t have to buy Visual Studio anymore” and Thomas answered him “They are for very different purposes. WebMatrix does the simple things that were really hard to do in Visual Studio”. I was so proud of him. He got it.
WebMatrix is but one of the flavors of Web development that we talked about at during this event.
The Web Platform and Tools team have also been working hard on enhancements to our existing web stack.
We’ve added powerful features to ASP.NET MVC 3 like the new Razor syntax, Dependency Injection, Unobtrusive Ajax and jQuery Validation support, Global Action Filters and more.
With Visual Studio 2010 Service Pack One, the same web server that WebMatrix takes advantage of, IIS Express and SQL Server CE, is now included as a core part of your development environment.
In the past two months, we’ve also been working with the Outercurve foundation on a new open source package management system called NuGet. This project makes it easy to find and use the many open source .NET libraries out there. We’ve seen a massive movement around the NuGet project and there have been over 300 open source packages contributed.
And of course, we continue to drive the ASP.NET MVC project which is itself open source and has a vibrant community around it.
This was definitely the longest and most involved demo during the session. James Senior came back out to show a lot of great new things in ASP.NET MVC framework. I’m not going to drain the demo but some highlights included leveraging Nuget from Powershell right from within Visual Studio to grab packages that James needed for the demo, leveraging the Razor view engine, the slight and unobtrusive jQuery validation and more.
At the end of this demo, I had the great privilege of announcing that all of the technologies that we talked about are available right now for download at microsoft.com/web. That includes ASP.NET MVC Framework 3, IIS Express, SQL Server Compact, NuGet and Orchard.
We didn’t talk much about Orchard but that project dropped a 1.0 release on the same day as the WebMatrix launch.
To recap, during the session you got to see a lot of different individual technologies in action but more importantly you saw how as a whole, from ASP.NET with ASP.NET web pages to ASP.NET MVC 3 to PHP, web development on the Microsoft Web Platform is evolving.
Go to microsoft.com/web to download your flavor of web development today.
You can watch it the presentation and all the demo online at http://channel9.msdn.com/Shows/Web+Camps+TV/CodeMash-2011-WebMatrix-Launch-Keynote.