Scott Hanselman

ASP.NET MVC3, WebMatrix, NuGet, IIS Express and Orchard released - The Microsoft January Web Release in Context

January 13, 2011 Comment on this post [35] Posted in ASP.NET | ASP.NET MVC | IIS | Microsoft | NuGet | Open Source | VS2010 | WebMatrix
Sponsored By

image At PDC10 last November I did a talk on the "Unnamed Package of Web Love", showing ASP.NET MVC3 and Razor Syntax, the NuGet Package Manager, as well as SQL Compact Edition and a little "Entity Framework Magic Unicorn." I make up my own names when I don't like what Microsoft names things, as you may notice.

Today Microsoft announced the (actual, final, honest) releases of:

  • ASP.NET MVC3 with Razor
    • Lots of new features, the new Razor syntax, more extensibility hooks, new JavaScript features, better validation, easier caching, better dynamic support, and lots more.
    • This includes the NuGet package manager and the NuGet gallery is also in early beta at http://nuget.org for folks who want to create and publish their own packages)
    • MVCScaffolding
      • Remember all that fun we had with the scaffolding experiment at PDC? Well, my teammate Steve Sanderson has taken the prototype up to version 0.8, and it's pretty fabulous. Go read his blog post, then enjoy "Install-Package MvcScaffolding." You can scaffold views, controllers, repositories, database contexts or even make your own custom scaffolder. Look for more built on scaffolding from Steve and I in the coming months.
    • Updated Beginner Tutorials for ASP.NET MVC 3 in both C# and in VB
  • NuGet
    • NuGet is a package manager for .NET. It ships with ASP.NET MVC, but you can go get it separately if you like. Installing open source libraries is as simple as "install-package elmah" - it's great fun.
  • WebMatrix (also with Razor)
    • WebMatrix is a small development environment that uses the simple Razor syntax to create websites really quickly. You can start from a gallery of existing open source applications or start from scratch. For example, Rob Conery and I wrote the little podcast site and feed for http://thisdeveloperslife.com in a day with WebMatrix.
    • NuGet package management is built into WebMatrix, too! Make a new site, run it, and hit /_admin. Dance.
  • IIS 7.5 Express
    • Yes, you can install it on its own. It's IIS, except it runs as a user process rather than a service. Cassini (Visual Developer Web Server) is dead! It's "just in time" IIS. There when you need it, and not running when it's not used.
    • This is the web server that Web Matrix uses today, but it'll be enabled in Visual Studio 2010 when SP1 comes out.
  • SQL Compact Edition 4
    • SQL Compact Edition is sweet because is a tiny in-process (no services, don't need to be admin) database that's great for small sites that aren't ready for SQL Server proper. It's xcopy-deployable and runs nicely on hosted sites. It's the default database for WebMatrix and I'm using it in Visual Studio for sites where my database isn't big enough to justify a SQL license.
    • You can use SQL Compact today in Visual Studio at runtime, much like I did in my PDC talk, but you won't be able to design and open your database in VS until SP1. (You can use this Non-MS CodePlex project temporarily, but I didn't tell you.)
  • Web Farm Framework 2.0 and Web Deploy
    • Makes setting up multiple servers way easier. Treat and manage groups of servers, use ARR for load-balancing (or use 3rd party balancers), and upgrade, switch, and add servers with PowerShell. Mmm....PowerShell.
  • Orchard 1.0
    • This free, open-source content management system is ready to go. The release is published on the Orchard CodePlex website and Microsoft Web Application Gallery. You can use Orchard all up, or you can take it apart and just use pieces. Mix and match as you like.

It's the January Web Release, say I, and the easiest way to get it is with Web Platform Installer 3.0, which also went live today. Using direct links to products within the Web Platform installer will automatically add any dependencies you might need.

Now what? I'm freaking out!

Folks sometimes say "slow down, you're freaking me out, this is too much new stuff. What about my current stuff?" Here's a few statements from me personally on today's releases.

  • Just because ASP.NET MVC 3 came out today, doesn't mean WebForms doesn't have some cool features coming. Remember that "ASP.NET > ASP.NET MVC". You'll see features and improvements from both technologies move between MVC and WebForms.
  • IIS Express will integrate with VS2010 in SP1 and work with both WebForms and MVC.
  • You can mix Razor Views and Web Forms Views within MVC. The creation/existence of Razor doesn't obviate your existing work.
  • SQL Compact works great with WebForms as well as ASP.NET MVC, not to mention any .NET project. Ever want a tiny database for a command-line app and didn't want the headache? Bam.
  • SQL Compact database can be upgraded into full SQL Server databases when/if you outgrow SQL Compact.
  • While NuGet is bundled with ASP.NET MVC in today's release, you can use it for any .NET project type. Most NuGet libraries are not specific to ASP.NET MVC.

As I've said before, Microsoft is creating new LEGO pieces for software development to round our existing collection of bricks out. Be exited about these bricks, but remember they augment the existing ones, not replace them.

What now?

I'd recommend you go get MVC3 and WebMatrix, preferably at the same time via one of these Web Platform links. That should get you all these other nice things chained in. In the spring when VS2010 SP1 comes out, the tooling and management bits for SQL Compact and IIS Express will be enabled.

Stuff to Get

ReSharper Updated

One other note, the folks at JetBrains were ready for this and spun a new build of ReSharper, so ReSharper 5.1.2 doesn’t interfere with Visual Studio IntelliSense in ASP.NET MVC 3 Razor syntax. Earlier ReSharper 5.x builds had certain issues with Razor IntelliSense that are addressed in 5.1.2. Specifically, ReSharper 5.1.2 doesn’t prevent Visual Studio from automatically providing its own IntelliSense in .cshtml and .vbhtml web pages anymore: both code completion and Parameter Info work as expected. Other than that, ReSharper 5.x doesn’t provide any additional support for Razor: only ReSharper 6 will bring full support for this view engine. Pre-release ReSharper 6 builds are currently available via Early Access Program, so if you're a ReSharper user, be aware!

Enjoy.

Related Links

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Hosting By
Hosted in an Azure App Service
January 13, 2011 22:28
where art thou Magic Unicorn?
January 13, 2011 22:38
So was the This Developer's Life site originally written with WebMatrix, or did you all rewrite/port it from another technology? Just curious what you transitioned from if it was not started with WebMatrix. B/c you all did a great job with the site.
January 13, 2011 22:39
slow down, you're freaking me out, this is too much new stuff
January 13, 2011 22:41
Guy Harwood - EF Magic Unicorn CTP5 is in NuGet as "EFCodeFirst" and we're getting go-live license. I'm working on getting a release data for you, but that's a different group.

Paige - Rob and I moved it over from Rails.

Ken - GO GO GO GO GO!
January 13, 2011 22:57
Any idea when Web Farm Framework or where to get it? Neither the platform installer or the link you provided sports the final 2.0 version. Other than that these releases are AAAAAWWWEEEEESOOOOMEEEE!!! Going to be a busy weekend.
January 13, 2011 23:03
Curious to know when MVC3 will be avaliable on Windows Azure/Azure SDK (yes, I know that it works now, but isn't integrated).
January 13, 2011 23:11
I'm 2^5 today and this is probably the best birthday gift for me this year :)
January 13, 2011 23:39
While NuGet is bundled with ASP.NET MVC in today's release, you can use it for any .NET project type.*


* Except F# projects...
January 14, 2011 0:00
@Joel Mueller I'm working on that. I have it working in F# just isn't in main yet :)
January 14, 2011 0:18
@David Fowler - Awesome!
January 14, 2011 0:30
Scott,

I think Orchard is much bigger than "a content management system", it looks like Wordpress (sort of) but it's actually an application framework. I think it could be huge, but I have hardly seen you or Scott Guthrie blog about it. Would you consider doing a podcast on it, maybe with Bertrand Le Roy?

Thanks!
January 14, 2011 1:19
Each time I try to install Orchard from Web PI, it crashes. I've gotten mvc 3 and IIS Express installed though.
January 14, 2011 1:52
Is NerdDinner Tutorial getting an update for MVC3 (with say using Razor)?
KK
January 14, 2011 2:57
When are we (network/IT/systems people) getting a package manager for PowerShell? Windows Server is almost grown up, just needs the little details filled in.
Ty
January 14, 2011 3:54
Orchard was crashing for me as well when I tried to install via Web PI 3. I eventually just downloaded it manually and had a play around with it. At the moment it feels half baked.. Would love to see more coverage of it by the more prominent MS guys.


January 14, 2011 4:10
Good news in lots of ways. Now to update my RESTful tutorial based on ASP.Net MVC
January 14, 2011 12:31
Thanks, now you should write more about EF CF, mvc, and other.. We are waiting for it!
January 14, 2011 14:27
1/ Just wondering what is new in webmatrix 1.0 and the latest beta 3. I cannot find anywhere what has changed, wich bugs have been fixed, etc...

2/ Are we allowed to put the demo's inside webmatrix on github?
That way the whole community could work on improving them.
January 14, 2011 14:32
Thanks alot!

I asked a question in previous post and I didn't give any answer. So I ask it again, please help me.

Question:
I think the ASP.NET MVC is not component oriented as much as ASP.NET WebForms. So I want to know, could MVC be a replacement for WebForms compeletly? (I mean MVC kills the WebForms. Is it possible?)
I know WebForms are old but what will be its replacement? MVC or another technology?
January 14, 2011 16:54
Scott, please help me to understand how to read source code of "Orchard 1.0".
I was download SC, then open it in VS2010 & I see many projects in solution explorer. What is the right way (step by step) to discover this source code. From what file (ore project to start & what to finish?)

Is a good idea to understand SC in debugger? How to know where check first breakpoint (in ASP.NET MVC)?

If you answer to my question you are very help me!
January 14, 2011 20:53
What's freaking me out is that I'm running out of betas! (I'm a beta guy) You guys took all my fun launching all this the same day!!!
But at the end, very good products....
January 14, 2011 21:00
WebPI crashed when I tried to install Orchard. I ran the debugger and it said I need System.Web.Deployment 8.0.0.0. I'm installing Web Deploy 2.0 to see if that fixes the problem.
January 14, 2011 21:08
Ok, so I installed Web Deploy 2.0 and now I get a different error:


Error: {"Value cannot be null.\r\nParameter name: type"}

Stack: at System.Windows.Forms.Control.MarshaledInvoke(Control caller, Delegate method, Object[] args, Boolean synchronous)
at System.Windows.Forms.Control.Invoke(Delegate method, Object[] args)
at System.Windows.Forms.WindowsFormsSynchronizationContext.Send(SendOrPostCallback d, Object state)
at Microsoft.Web.PlatformInstaller.InstallManager.SendProductInstallChainCompleted()
at Microsoft.Web.PlatformInstaller.InstallManager.StartInstalling()
at Microsoft.Web.PlatformInstaller.InstallManager.StartDownloadAndInstall(Object unused)
at System.Threading._ThreadPoolWaitCallback.WaitCallback_Context(Object state)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading._ThreadPoolWaitCallback.PerformWaitCallbackInternal(_ThreadPoolWaitCallback tpWaitCallBack)
at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback(Object state)
January 14, 2011 23:54
Why ASP.NET MVC 3 is not compatible with Visual Studio Async CTP? Or when they will be compatible?
January 15, 2011 5:15
Scott, CAn you point out where the SQL CE 4 Books Online is? I clicked on the link included in the readme file, but it doesn't seem to be there in Microsoft Downloads.
January 15, 2011 10:24
Michiel - Good idea. I'll talk to Bertrand.

Orchard folks - We've figured out the problem and are fixing it. Give it a day.

Pavlik - Good idea...I'll look at writing a post on that.

Amir - They'll fix the Async CTP...probably spring?

Marauders - Should be up in a day or so.
January 15, 2011 10:31
Amir - WebForms is NOT being killed by MVC. They are two different things and they can exist together. WebForms will have some cool updates coming this year. Don't worry.
January 15, 2011 11:35
@Scott Hanselman - Thanks scott.
January 15, 2011 14:23
@Amir
In OO world, every class with a good design is a component. so what's your point when you are telling it's not component oriented?! did you see html helpers, Html.RenderAction, Html.RenderPartial and other cool features of ASP.NET MVC?
January 15, 2011 19:39
@Anon
Yeah of course! I see them. Do you see some components for MVC such as Telerik MVC Components? Are they a blackbox such as a WebForms component?
I think components are not just classes. Also MVC is OO! I never said that is not!? But in compare with WebForms, I think WebForms is more component based than MVC. Although MVC seems more extensible than old WebForms. As Scott said (which I agree with him) MVC and WebForms are two different things.
I just asked that question to find out the MS guys politics about these technologies.

In another word MVC is very good thing but it's not WebForms, so it will not be the replacement for WebForms. That's all!
January 19, 2011 13:31
Great stuff.

I have a query about WPI though. It is a convenient way of getting all the bits. However, I have a bunch of developers and a bunch of servers. I could really use some mechanism for defining a central cache instead of burning my bandwidth repeatedly downloading all the bits.
An obvious solution is an http proxy at the boarder. But is there any plan for WPI (and NuGet) to support caching (other than per machine)?

Cheers
January 24, 2011 15:14
Andy - I've been putting pressure on them for this. I TOTALLY agree. I'll go talk to them again.
February 03, 2011 15:42
Don't mix WebForms and MVC ...please. ASP.NET MVC is doing great as i can see. I love the new things Microsoft has done in version 3.
ASP.NET MVC is more natural for web development, ASP.NET WebForms has a lot of drawbacks.
Bob
February 25, 2011 15:36
I love webmatrix and IIS Express.
Excellent! Thank you!
July 10, 2011 12:06
This is really more effective for life span take on the concept. I never thought of it that way. I came across this site recently which I think will be of great use http://www.technosofts.in/ Have a look!

Comments are closed.

Disclaimer: The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.