ASP.NET MVC3, WebMatrix, NuGet, IIS Express and Orchard released - The Microsoft January Web Release in Context
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
- Are you just getting started with MVC 3? Rick Anderson, Mike Pope and I have updated the beginner Movie App tutorials up on http://www.asp.net/mvc, and Jon Galloway has updated his Music Store to MVC 3 as well.
- 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
- If you don't already have Visual Studio 2010, one Web Platform link gets you Visual Web Developer Express, SQL Express, SQL Management Studio, and ASP.NET MVC 3 with Razor
- If you already have VS, you can get everything mentioned above as it's included with WebMatrix plus ASP.NET MVC 3 via the Web Platform Installer.
- Or get the stuff on your own:
- ASP.NET MVC 3
- NuGet (included in ASP.NET MVC 3)
- IIS 7.5 Express
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
- Scott Gu on VS 2010 SP1 (Beta) and IIS Express
- ScottGu on VS 2010 SP1 and SQL CE
- Integrating ASP.NET MVC 3 into existing upgraded ASP.NET 4 Web Forms applications
- Visual Studio Explosion! - VS2010 SP1 *BETA* Released and Context
- PDC10: Building a Blog with Microsoft "Unnamed Package of Web Love"
- Introducing NuGet Package Management for .NET - Another piece of the Web Stack
- Random Community Wallpapers because they are fun. Woot.
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.
About Newsletter
Paige - Rob and I moved it over from Rails.
Ken - GO GO GO GO GO!
While NuGet is bundled with ASP.NET MVC in today's release, you can use it for any .NET project type.*
* Except F# projects...
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!
2/ Are we allowed to put the demo's inside webmatrix on github?
That way the whole community could work on improving them.
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?
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!
But at the end, very good products....
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)
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.
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?
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!
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
ASP.NET MVC is more natural for web development, ASP.NET WebForms has a lot of drawbacks.
Comments are closed.