Scott Hanselman

ScottGu MVC Presentation and ScottHa Screencast from ALT.NET Conference

October 9, '07 Comments [78] Posted in ASP.NET | ASP.NET MVC | Microsoft | Programming | Ruby | Screencasts | Silverlight | Speaking
Sponsored By
ScottHaOnDLRandMVCatALTNET

I attended the ALT.NET Conference last weekend in Austin, TX. I personally find the name "Alt" as in "Alternative" too polarizing and prefer terms like "Pragmatic.NET" or "Agile.NET." At the conference I suggested, partially in jest, that we call it "NIH.NET" as in "Not Invented Here.NET." ;)

Ultimately this is a group that believes in:

  • Continuous Learning
  • Being Open to Open Source Solutions
  • Challenging the Status Quo
  • Good Software Practices
  • DRY (Don't Repeat Yourself)
  • Common Sense when possible

I asked "Why is this alternative," and Martin Fowler echoed those sentiments. When I was at Corillian we were using NAnt, NUnit, Subversion, NCover, NDoc, NDepend, CruiseControl, Watir/Watin and Ruby and we practiced Scrum with an Agile Coach. Did that make us alternative or were we just getting the job done? We made practical and pragmatic decisions and it worked out OK.

Whether this is Alternative .NET or just Practical .NET, it's a conversation and that's a a good thing.

ScottGuOnMVCatALTNETScottGu gave an hour long presentation on the upcoming MVC Framework and I took some guerilla video. ScottGu's presentation is here in Silverlight and it's about 60 minutes long. Considering it's so long, the video squished nicely.

This was the first time the MVC Framework was shown publicly.  Note that this was a Prototype, not the Production code and both ScottGu and I make that point a number of times to drive home that it's early. Some of the code was written on a plane, just to give you an idea.

After The Gu did his piece on the MVC Framework, I showed some prototype hacking that I'd done over the previous few days along with some work Phil Haack did. My presentation is here as Silverlight and it's about 30 minutes long. I showed the Model View Controller with Controllers in IronPython and an IronPython view using a WebFormViewEngine. Then I talked about the possibilities of alternate ViewEngines and showed Phil Haack's prototype RubyViewEngine.

Both talks show lots of code. Of course, this is prototype madness. No warranty, express or implied. Features come and go, but I hope this shows that we're committed to aiming for as much awesomeness as is humanly possible. I hope you enjoy them, even though my webcam hand was shaky after an hour. I used a new Microsoft NX-7000 Lifecam for the recoding - it's a great camera for the Alpha Geek. ;)

Here's the videos I promised:

If you want to link to these, link to this post, not those links, as the videos might move around. Thanks.

Here's some of the buzz around the new Framework. I hope this framework is a harbinger of things to come in future frameworks.

Things are looking up.

About Scott

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

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by ORCS Web
Tuesday, October 09, 2007 5:40:26 AM UTC
Fantastic! Thanks for getting the video up so fast. I'm super excited to show these videos at our weekly TechShare meeting. But I'm even more excited to get the bits and start developing apps with it. To all those involved with this at Microsoft; well done!
Tuesday, October 09, 2007 6:19:38 AM UTC
Interesting stuff!

I need to download and watch the presentation offline, can you provide a download link ?

Thanks!
Tuesday, October 09, 2007 6:24:28 AM UTC
Sure, here and here.
Tuesday, October 09, 2007 6:28:11 AM UTC
Awesome, thanks for that.
Tuesday, October 09, 2007 8:53:22 AM UTC
This is great. Much better than I expected. I was afraid that backwards compability with aspx and page postbacks was going to cripple this attempt at MVC.

I am really glad that Microsoft is doing this in a open (non sealed) and interface driven way.

Just one question, this seems very much like a MonoRail clone, is there anyway for Microsoft to endorse a open source project instead always doing their own version of something that already exists?

Torkel Ödegaard
Tuesday, October 09, 2007 10:26:40 AM UTC
Excellent, thank you! Really looking forward to giving these a watch.

In response to Torkel, read this post:
http://weblogs.asp.net/jgalloway/archive/2007/05/02/why-microsoft-can-t-ship-open-source-code.aspx
Tuesday, October 09, 2007 11:30:02 AM UTC
I'm glad you could make it. This community is strong and includes more than those at the conference. Anyone seeking to learn from the rest of the world to write good software on .Net is in this community. I'm happy to have you, Scott Gu, and heck, even Martin Fowler, in this community.
Tuesday, October 09, 2007 1:30:50 PM UTC
@Torkel Ödegaard

Just because something exists doesn't mean that it works for everyone. And Microsoft is not the only one guilty of thinking they can do something better, we have that in Open Source too. Why else would we have a choice between RhinoMocks, NMock, and TypeMock. How about NUnit, xUnit.net, and mbUnit? Competition fosters innovation.
Ryan
Tuesday, October 09, 2007 1:36:58 PM UTC
Ryan is right, but also there's a lot going on in the framework that improves significantly on Monorail using C# 3.0 language features and LINQ. Remember that Model 2 design was old 10 years ago. ;)
Tuesday, October 09, 2007 1:44:54 PM UTC
Hehe "ScottHa"... what a wannabe ;)

Great vids, thanx for posting!
Tuesday, October 09, 2007 1:50:56 PM UTC
Yes I agree that competition is good, and saying that is a MonoRail clone it kind of a compliment as MonoRail rocks. But sometimes Microsoft has been seen copying open source solution without bringing any extra value. I am just saying it would be nice for once to have Microsoft endorse and promote (or bundle) an open source solution with there products. I have read the reasons why they can't do that but I am not entirly convinced that those reasons cannot be overcome if they tried.

Beside that I am very glad that they are listening to the complaints of WebForms and for what I have seen this looks very promising. Having intellisense in the view for view data and helpers is great and something I have been really missing in MonoRail.

Torkel Ödegaard
Tuesday, October 09, 2007 1:55:49 PM UTC
Thank you Scott this was great,

especially for us who couldn't make it to the conference, I wish there was more video available from these conferences. The MVC framework looks very interesting.
Tuesday, October 09, 2007 2:12:09 PM UTC
Did anyone else start felling seasick watching this with the room swaying about every 3 seconds, but good stuff.
Ross
Tuesday, October 09, 2007 2:24:39 PM UTC
Just watched both presentations, haven't been this excited about a Microsoft technology since .NET came out.

Writing up my notes right now... so is it called System.Web.Mvc or Microsoft.Web.Scalene ?

[)amien
Tuesday, October 09, 2007 2:52:43 PM UTC
I'll ask the question.

When do we get the bits?
Tuesday, October 09, 2007 2:59:23 PM UTC
Hey Scott!

Thanks for doing the video, the IronRuby video was awesome and I'm hoping these will be awesome too.
I've not been more excited about the MVC stuff since.. I saw it for the first time a few weeks ago :o)

Look forward to watching these when I get home from work,

Keep up the good work,

Chris
Tuesday, October 09, 2007 3:38:01 PM UTC
Great job posting the vids! Is there a way to get the prototype source through the MVP NDA? 'Cause that would be sweet.
Tuesday, October 09, 2007 3:49:52 PM UTC
Scott (aka Lazycoder)

At the start of the video, ScottGu says "...releasing it Spring next year...", so I assume that means after the VS 2008 release. Sort of like they did with the AJAX release (after VS 2005).

I would assume they're going to have some sort of public CTP or Beta release before then.
GuyIncognito
Tuesday, October 09, 2007 4:14:10 PM UTC
Glad to hear that IronRuby is not just meant for Silverlight scripting. The MVC stuff is great, but in the meantime MonoRail is great, too!
Tuesday, October 09, 2007 4:35:44 PM UTC
It'd be great to see the sample code. I'm not talking about the Scalene core stuff, just the HelloWorld.Controllers sample code Scott typed up during the demo.
Tuesday, October 09, 2007 5:29:02 PM UTC
Fast forwarding is not working for the video; I can click, let's say half way through, and it's loading up to 100% then it goes back to 0% and nothing happens...
PBZ
Tuesday, October 09, 2007 7:52:19 PM UTC
That's awesome news! I've wanted to learn monorail, but now I'll just wait so I don't have to learn one more thing.

Speaking of this, now I haven't used the Web Client Software Factory yet, but it seems like they provide something like a MVC framework, are these two projects related? are there any shared team members between these two? I'm just curious.
Tuesday, October 09, 2007 8:20:06 PM UTC
Thank you Scott, one question:
One nice thing about the Brail view engine is that the views are compiled independantly of the main application, so if you make changes to a view it gets recompiled instantly.
I suppose the DLR based views are not compiled, but in the case of the aspx views, will a change in the view require a reload of the application with a potentially long delay, it would be nice if not.
Ayende had a post about that here
JPHILIP
Tuesday, October 09, 2007 8:26:27 PM UTC
Hrm. I seem to be having tissues seeking in the web player or with the downloaded files (in winamp or wmp). Whats up w/ that?

brad
Tuesday, October 09, 2007 8:58:40 PM UTC
MonoRail:: ScottGu said ASP.NET MVC isn't going to replace MonoRail. MonoRail is much larger than the MVC framework, and the Castle guys are apparently already working out how they can use the MVC framework.

Clone:: I wouldn't call the ASP.NET MVC framework a clone of MonoRail, because then we'd have to call MonoRail a clone of Rails, and so on and so forth. The MVC framework borrows ideas from frameworks like Rails, Django is looks to integrate with Windsor and Brail and NUnit, etc... Its a good thing, and everyone is cooperating.

Bits:: I remember hearing that the first drop will be in a few weeks, and that it will have a Go-Live license by the end of the year. The final release will be in spring 2008. That's what I remember, but I've been known to be wring before. Can anyone confirm my recollection?
Tuesday, October 09, 2007 9:00:28 PM UTC
Thanks for taking the videos ScottHa and making them available to the rest of us who didn't attend ALT.NET (did anyone suggest that ALT stand for Anarchists, Lunatics and Terrorists?).

I'm excited about LINQ and finally getting rid of __doPostBack(ctl$container123$myTextbox)!!!
GuyIncognito
Tuesday, October 09, 2007 9:27:33 PM UTC
Thanks for the videos, Scott. Unfortunately, with the camera constantly moving from Scott Gu to the screen, it was like watching the Blair Witch Project for me -- read motion-sickness :-)

It would have been great if the camera stayed focused on the screen.

Nice videos anyway.

-- Eddy
Tuesday, October 09, 2007 10:25:34 PM UTC
Sorry, I did my best with the camera.

As for code, I might be able to sneak a snippet or two in the Weekly Source code, but right now it's on ScottGu to make those decisions. ;)
Tuesday, October 09, 2007 11:25:42 PM UTC
BTW, the picture-in-picture presentation style you did for your video ScottHa? That should be SOP for ALL video recordings of presentations. Being able to see you speaking while viewing the slides made me feel like I was there watching you. I even raised my hand to ask a question.

You never called on me.
Tuesday, October 09, 2007 11:30:56 PM UTC
Thanks, I'm going to start spreading the word on this style and I'm doing ALL my talks that way.
Wednesday, October 10, 2007 1:56:59 AM UTC
just came over this :
>Microsoft has the policy that a developer of Microsoft (unless excluded from this policy) isn't allowed to look at GPL-ed software.
>http://weblogs.asp.net/fbouma/archive/2007/10/05/more-on-the-net-sourcecode-and-its-reference-license.aspx

is that true ?
kime
Wednesday, October 10, 2007 2:30:24 AM UTC
Scott: Did you remember to correct your Camtasia keyboard shortcut yet?
Wednesday, October 10, 2007 2:42:48 AM UTC
"Scalene", eh? Great codename, but it does pose a problem. The blackout from your redacted Outlook folder is too long to spell "Scalene" [Exhibit A]. Scott, it's killing us (okay, me) -- what is the real the name of that folder?

All jokes aside, this is a phenomenal step in the right direction. Now sneak us some bits! :-)
Wednesday, October 10, 2007 10:48:28 AM UTC
Awesome!

The new MVC architecture is wonderful, can't wait to give it a go.

ScottGu mentioned the suppression of Form Controls. Does that mean you're not allowed to have a <form runat=server></form> for aspx views?
How does that work for master pages that need their content place holders placed inside a runat=server form?

I dislike the runat=server form because it stops me from having normal forms in a page.

Thanks for shooting this video.
Vijay Santhanam
Wednesday, October 10, 2007 11:24:27 AM UTC
I enjoyed your video Scott thanks, but I can't seem to get the one of Scott Gu to work. it just sits there downloading Mb after Mb but won't play. Any ideas?
Remmus
Wednesday, October 10, 2007 1:09:44 PM UTC
This is great news.
While I love WebForms on many levels, theres just some things it doesn't do well.
It will be great to finally have 100% control over the HTML output :)

Looking forward to more info in the coming months...
Mads
Wednesday, October 10, 2007 3:54:16 PM UTC
Scott, i have used this MVC pattern in my project. Found numerous issues like Focus on Default Text Box or Default Submit is very difficult to maintain if i have a user control and inside this user control there are some more user controls are there and each User Control has its own VIEW, Presenter. now setting visible=false for all these UC on the UC which manages these UC and then in the presenter making it visible based on which View need to be made visible and others to be kept invisible.

Since it is its in early stage its very difficult to do lot of stuff
Wednesday, October 10, 2007 4:01:42 PM UTC
Mads, try downloading the WMV directly, the links are early in the comments.
Wednesday, October 10, 2007 6:45:17 PM UTC
So innovative of microsoft to invent an mvc framework. Who would've though.
Bill
Wednesday, October 10, 2007 10:49:45 PM UTC
Can you post the environment settings of the Visual Studio in the presentation videos? I think you and ScottGu had the same color settings. It looks very good. Thanks
Al
Wednesday, October 10, 2007 11:29:26 PM UTC
Heh, I convinced Scott that a theme change was in order...I'm all about the dark themes right now. ...they are the Vibrant Ink settings from Jon Galloway by way (I think) of John Lam. Make sure you DON'T import John's Keyboard settings, they are nuts.
Thursday, October 11, 2007 4:39:44 AM UTC
The MVC framework looks really promising.

You have no idea how glad we will be to see the back of WebForms, and how happy it will make the team to have easily testable web applications (the ASP.NET part of our applications are, *ahem*, somewhat lacking in test coverage compared to the rest of our products).

I don't suppose it will be ready in time for Orcas RTM? Regardless of whether it is, we will still use it though :)
nexusprime
Thursday, October 11, 2007 12:54:26 PM UTC
Thanks Scott. I agree with the theme change. I also realized that dark background theme is much easier on the eye. I have been using your dark background settings and I have noticed a difference since then.
Al
Thursday, October 11, 2007 1:12:32 PM UTC
Any chance we can get an mp3 of scottgu's talk?
Thursday, October 11, 2007 2:32:57 PM UTC
Scott, totally unrelated question to the blog post, but what are you using to do the zooming in your video? I've seen a few presenters zoom in on things during a presentation in the last little while and I'm curious if it's a unknown to me Vista feature or a 3rd party tool.

Thanks!
Thursday, October 11, 2007 2:40:48 PM UTC
I'm guessing I'll bet the only dummy to ask that Zoom tool question but in the rare event I'm not, I'm guessing this is the zoom tool. Sorry for the interference. :-(
Thursday, October 11, 2007 7:51:22 PM UTC
As for the ZOOM and the camera video in the bottom right hand corner - I believe TechSmith's Camtasia recorder product is to thank for that, but I may be wrong.

Scott, I was very interested in hearing your discussion regarding dynamic languages and appreciated that you covered python. Too bad the majority of people left the room - I think this is quietly one of the best features of the new MVC design/DLR combo, the support for dynamic languages. Should be interesting how the python/ruby community responds to this but it sure does open a few doors to acceptance from strictly dynamic shops.

Thursday, October 11, 2007 7:57:53 PM UTC
Ya, my ego took a little hit when all but 10 folks left. ;) It was a good experience though.

The Zoom is not Camtasia, it's ZoomIt. The Video was Camtasia and I squished it with Expression Media Encoder.
Friday, October 12, 2007 6:25:47 PM UTC
Scott, have only gotten partway through the ScottGu presentation, but some very interesting stuff. The other MVC frameworks out there have only been on the periphery for me so far. I've been more focused on learning the AJAX stuff. But now that Microsoft is working on something, I really do want to learn more about this approach. It feels like a big mind-shift for someone like me who has been doing the typical asp.net stuff since the beginning. Interesting though and I like that it makes TDD so much easier to do.
Friday, October 12, 2007 8:31:31 PM UTC
yay ... today i am a happy man :) love the open approach. well done scott. now if you could just have one of your guys fix the ... haha ... maybe not today :)

Pete
peter
Friday, October 12, 2007 9:49:22 PM UTC
Scott,

Can you elaborate a bit more on how you did the picture in picture? Did you use your lifecam for one video and camtasia for the screen? How did you merge the two? Or does Camtasia do the entire thing?

A post on your presentation technique would be great.
Scott Prugh
Saturday, October 13, 2007 6:35:43 AM UTC
sorry,.. its loading pretty long with ur silverlight player so i have to hack in to your page source and load the javascript and steal the direct video url to watch the vid instead using your silverlight player. does your silverlight player support streaming?

anyway.. thanks for the good videos
Andrew
Saturday, October 13, 2007 4:24:02 PM UTC
ScottHa,

I'm not a Silverlight buff/convert. Would it be possible to provide plain-vanilla videos watchable in good ol' viewers?
curious
Saturday, October 13, 2007 5:13:10 PM UTC
There are PLAIN video links here and here.
Sunday, October 14, 2007 7:54:12 PM UTC
Excellent, I can't wait to mess around with the released bits.
Monday, October 15, 2007 7:35:07 AM UTC
Very keen on an MVC Framework - have basically built some working models in asp 2.0 but there are limitations.

I am having trouble watching the videos either online or offline. Have Windows Media Player 11 but keeps complaining codecs not installed even though it appears to install codes when I load the wmv file. Any ideas appreciated
David Thomas
Monday, October 15, 2007 10:39:17 AM UTC
Nice idea but the devils in the details.
I've seen and made numerous attempts at MVC, but if it doesn't support both web(ASP.NET/AJAX) and windows (WinForms/WPF) it's just not generic enough.
Sure having a clear separation of concerns is nice and being able to unit test does miracles for code quality, but the business rational for MCV is supporting multiple views with the same code base.
And the multiple views argument is getting stronger with more "view" technologies being added to dotNET like WPF and AJAX.
Then again, adding support for winForm is a detail so it might be added later.
Marcel Sorger
Monday, October 15, 2007 11:16:51 AM UTC
Thanks for the video, really nice to allow us to see this presentation. However... it would be so much better to have a fixed camera and only pan it now and then (when the presenter asks questions etc) but mainly focus on the screen. I was actually looking at Scott typing, instead of seeing what he was writing. Just a tip for the 'director'. Thanks!
Mike
Tuesday, October 16, 2007 1:10:10 PM UTC
Get videos!

My biggest problem with this is the lack of postback. I know all responses are to go back through the controller, but this seems as it would make harder to edit (such as inline as expressed in the video), not to mention Ajax usage with partial page rendering. I am feeling more like being pushed into a box in order to keep the MVC structure. Am I missing something?

The other issue, still related to the lack of postback is the investment already made into tools such as control libraries. If all controls will have to be rebuilt to support this structure it could take years before we could expect many of the rich third part controls we enjoy today can be ported or rewritten to use this structure. Is there some path to be able to reuse our current controls (which may have been big $$$) or do we lose them to use the new MVC for ASP.NET?
Wednesday, October 17, 2007 10:00:53 PM UTC
Awesome, 'nuff said.
Mike Weller
Thursday, October 18, 2007 6:59:44 PM UTC
Any chance you could stream the videos?
Stuart Campbell
Friday, October 19, 2007 1:04:02 AM UTC
This is some of the best news I've heard in 2007. Any good developer tries to follow conventions and best practices. Making these a no brainer is good for everyone. Between this and the LINQ and LINQ2SQL project the pace at which the community can build scalable and secure web applications is becoming faster and easier.

Well played MS ... good show!
Thursday, October 25, 2007 6:43:27 AM UTC
This is really cool stuff. I can't wait to get the bits.
Thursday, October 25, 2007 6:49:19 AM UTC
What i see is that these guys create a complete mess and then successfully clean up this mess with their "new" concepts.
They all try to resasitate the dead instead of creating real concepts.
What is really required is just creating a COMMON, POWERFULL and STANDARD runtime on the client (Silverlight is not powerfull enough) and standard DATA Synchronisation (between the client and the server) methods. Also why do we need a browser (for hosting such rubbish solutions?) There should not be a difference between the desktop apps and web based. And so on ...
Conclusion - very depressing ...
alex
Thursday, October 25, 2007 7:15:17 AM UTC

It's strongly expected your code donwloaded.
路过...
chai1
Monday, October 29, 2007 12:20:00 PM UTC
I've been waiting so long for something like this.
When or how can we start using it?
Tuesday, October 30, 2007 4:17:34 PM UTC
Nice!

I have been wanting to use MVC in my webapps for years.
Lately I have been working with the MVP pattern, which is getting the job done, but having MVC built in would be very nice.

Chris May
Tuesday, October 30, 2007 4:44:32 PM UTC
Anyone else having problems playing the video?

It has been saying that it is downloading the WMV file for 20 minutes or so but I only see the first frame.
Friday, November 02, 2007 12:00:36 AM UTC
This is really cool stuff, Scott. Thanks for shooting and posting those videos. I can't wait for a build.
Lance Fisher
Friday, November 09, 2007 7:05:47 AM UTC
I've been trying to watch the Silverlight video you took of ScottGu for a couple of weeks, trying every few days. I kept spinning and spinning for about 30 minutes and then giving me a JavaScript alert-style error saying it couldn't open the wmv file. This was in IE7.

For grins and giggles, I tried to open the Silverlight page up in Firefox, and it worked immediately! No buffer time, no problems, it just played immediately. Ironic, eh?

Great stuff though, really. Thanks! And I am going to write up a post about the MVP concept I came up with last year and have used for a few projects. I think it'll bolt on top of the ASP.NET MVC framework nicely and it offers a lot more "control" to the controller. I'll drop you a line when it's posted.
Friday, November 09, 2007 8:51:46 AM UTC
Okay, I went ahead and posted about my Extended MVP Pattern (MVP Validation). I've been wanting to post about this pattern for about 16 months--and I finally had the inspiration to do so thanks to you Scott, thanks!

http://blog.jeffhandley.com/archive/2007/11/09/an-extended-mvp-pattern-mvp-validation.aspx

I'd love to hear your thoughts on it!
Friday, November 09, 2007 4:52:14 PM UTC
This may have been answered in the video (I have not watched it yet) but here goes anyway:

Where are the business rules defined in the MVC Framework? I hope that the Model component is more than just a data holder. It should have some means of attaching multi-attribute validation rules.
Wednesday, November 14, 2007 8:02:42 PM UTC
why you are forcing to use silverlight for viewing video without enabling buffering/downloading?
its so frustrating to seethis "ring of wait" all the time, constantly interrupting viewing experience.
what i really liked would be downloadable wmv or avi whatever just to watch it without interruptions.
streaming is no good!
please think about people to who you want to show this interesting stuff..

Richard
Wednesday, November 14, 2007 8:02:44 PM UTC
why you are forcing to use silverlight for viewing video without enabling buffering/downloading?
its so frustrating to seethis "ring of wait" all the time, constantly interrupting viewing experience.
what i really liked would be downloadable wmv or avi whatever just to watch it without interruptions.
streaming is no good!
please think about people to who you want to show this interesting stuff..

Richard
Wednesday, November 14, 2007 8:33:09 PM UTC
@Richard - No one is forcing you to use Silverlight. Read the comments - I put links to BOTH WMV files that you can donwload directly.
Thursday, November 15, 2007 10:40:44 AM UTC
sorry my bad.
but next time it would be great to have direct links right next to video ;)
i usually watch video before reading comments, then they make more sense..

still, this tech is amazing :)
Richard
Friday, November 16, 2007 5:56:05 PM UTC
great stuff cant wait to try it out. Difficult crowd too, the Gu did well :)
Wednesday, November 21, 2007 6:31:33 PM UTC
Hey Guys,

Great stuff. Any download links yet to some sample code to play with?

Thanks,
Michael
Comments are closed.

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