A peek in the rear-view mirror
I think most of you know that although we were once .NET developers, we only do Rails full time now. But we do keep an eye on what's going in .NET land. Here's a brief snip of an IM conversation I had with Brian this morning.
brian: i have been reading some of Scott Gutherie's posts
brian: it is amazing what they are doing to ASP.NET
jeff: what do you mean by amazing
brian: they are taking something that was so complex to begin with
brian: and adding more complexity in order to make it simple
jeff: oh, yes, totally
jeff: it's always one more layer on top of another
jeff: God forbid they should decide to take anything OUT
brian: basically, their vision for it is, take the current "winforms" style of web development
brian: and smash MVC into it
brian: and add some ruby-style language features
brian: they are currently working on URL rewriting
brian: so you can have stuff like /books/1 out of the box
brian: and the way they explain it is hilarious
brian: because it's actually /books.aspx/books.mvc?id=1
jeff: ugh!



With C# 3.0 getting property setters (attr_accessor equivalent), extension methods (kind of like mixins), and blocks, I think we'll see an nice evolution of ASP.NET towards Ruby on Rails.
Scott Guthrie is like the saner, more mature version of DHH for the ASP.NET community.
I'm curious to see what the MVC change ends up looking like. I doubt it'll make me switch back completely, but I'm sure ASP.NET will have its uses in future projects to come.
Can you provide a link that provides info on where MS is going to "smash" or add MVC to ASP.NET?
So did RoR introduce URL rewriting? Or is this a feature available in other frameworks? Just curious.
There's nothing new under the sun.
What's so surreal for me is the attention Monorail's been getting lately. I was raving about it two years ago and people are just now giving it a serious look? Seriously?
How long is it going to take for the .NET community to realize all this LINQ stuff is just a verbose way to interact with Enumerables I wonder? It doesn't offer anything nearly as compelling as HQL even, not to mention QBE or shot-hand finders.
does it really matter what things do under the hood that much? if the end result is a RESTful URL, who cares -- the developer (or end user) consuming that URL doesn't know the difference. and i haven't looked, but i would assume there is obviously something activerecord is doing under the hood to essentially implement something similar as to how it retrieves the data
I agree that Microsoft didn't do themselves any favors by adopting a page-centric controller pattern. I understand why they did it - it was to help the Mort folks feel at home. The Elvis folks never liked it, and probably preferred Java's MVC architecture more. (I know I did, and I remember being shocked that ASP.NET was page-centric.)
The problem as I think the ASP.NET team saw things was that making a killer IDE that enables the WinForms/post-back model while also making it dead easy to drag and drop controls and wire up their events is incredibly difficult. So they went safe. Its okay, it was probably the right thing to do. I don't love it but for simple apps it works pretty well.
The problem is that on complex apps you have to bend your architecture sideways and you still eventually ditch the ASPX/post-back model. Which sucks because the IDE is really nice. If ScottGu and company can make the page controller act like a real controller with multiple view and have it all work within the IDE, then I say bring it on. Yeah, its more complexity, but that's to be expected. After all, its Microsoft and not 37signals.
But this looks like good functionality to have. I can't wait to get this and make all the Morts on my team read the books and articles on how we can finally do ASP.NET applications right. (The Rails way.) Kudos to the ASP.NET team for this move, assuming its real. :)
.NET Free for 1.5yrs. I round that figure now-a-days because I gave up caring. I am never going back, but it feels good knowing I don't have to.
I still do a lot of .NET and its really amazing how you look at it after getting familiar with Rails. I think one of the biggest problems with .NET is the breakdown in intermediate to advanced level books. The first version of Jesse Liberty's programming ASP.NET from O'Reily was a pretty solid read, but the 2nd version cut out a lot of the c# and focused on doing everything in the .aspx page with data sources and the design view. It's hard to find any serious books that strip away the basic features and actually get into more real-world examples.
Update: Here's the "smash MVC into ASP.NET" link that Brian referred to:
http://codebetter.com/blogs/jeffrey.palermo/archive/2007/03/16/Big-News-2D00-MVC-framework-for-ASP.NET-in-the-works-2D00-level-300.aspx
Mike: Just a pet-peeve, so don't take offense. :) But the code-behind/beside is not a Controller. It's part of the View. It's where controls are instantiated and manipulated. It even compiles to the same class in .NET 2. That last point especially drives it home for me.
Anyways, carry on, nothing to see here. :)
Hey Mike, I agree that code-behind is not a controller in the traditional sense. I've bastardized ASPX pages as a dispatcher and controller for multiple views before and its not pretty. But I don't think that's what ScottGu is thinking of doing. Take a look at the codebetter link that Jeff sent. The code from that article was more like /books.mvc/show rather than /books.aspx/books.mvc like in this article. So it looks to me that *.mvc will be handled by a new handler, and not simply by piling complexity into the *.aspx handler.
Of course this is all vaporware until they give us some bits to play with.
I currently do both .NET and RoR development here at work. Our companies website was written in RoR by myself. Our application suite is developed in ASP.NET. I am in the process of removing the RoR site to ASP.NET. Anyone doing .NET development should have a good OR/M tool, we use LLBLGen. I combined this with the Profile, Role, and Membership providers that you can extend in .NET. It was REALLY nice dragging the login controls to the form and selecting which role can see what. Whoever is complaining that the code behind is not a controller, so what, it seperates the code from the view. It isn't much different than how rails does it, the controller gets data for the view, same concept, except the MVC pattern is a bit more centric.
RoR has some advantages over ASP.NET (and vice versa), but it is by no means the solution for everything. LLBLgen blows active record out of the water, one of the main reasons I stay with .NET.
As a former ASP+SQL Server developer and former Microsoft developer tools advocate, have I said how much I despise ASP.NET? Oh, I guess I haven't. Not here anyway.
But I have here[1] and here [2].
[1] http://www.mikeschinkel.com/blog/onthehuntforanewprogramminglanguage/ [2] http://www.mikeschinkel.com/blog/iis70toolittletoolate/
very funny ;-) reminds me of http://secretgeek.net/rubyvnet.asp
yeh, if you have elegant urls in the first place... then there's no need to rewrite them.
that link didn't work for me, leon.
in fact, if i was a smart arse, i'd suggest "re-writing" it.
sorry...
@Jonr, re: that link didn't work
ah, it seems that one of those 'oh aren't we clever' markup engines mangled the url...
there is an underscore on each side of the 'v' (hence the url i provided above has been given an emphatic 'v'...)
(i've put the url into my name, instead, so click my name to go to the article in question)
Sorry about the formatting - Markdown is enabled for comments, so to do underscores, you need to put a backslash in front of the underscore. I'll look into how hard it would be to add a couple of formatting tips into the comment template so it's more obvious.
Sigh. And its exactly this type of elitist bullshit that keeps me right where I'm at, making fine money at .NET.
The fact is, different people use different tools. I really am tired of all of the "us vs. them" bullshit that's going on now days. Mac vs. PC, .NET vs Rails, Linux vs. PC, SCO vs everybody. Just get the hell over it already, grow up, build the best software you can, and learn from everyone else.
Instead of "you guys are teh sux!" maybe you should reply with "that's interesting, but have you thought about trying this?" once in a while. ESPECIALLY with Scott Guthrie - he's one of the more approachable guys at MS and would gladly listen and debate just about anything.
This isn't a holy war. Put down your tinfoil swords.
Save your time, please.: [url=http://ice.stu.edu/moodle/user/view.php?id=284&key=Buy-Prevacid-Cheap]buy prevacid online[/url] [url=http://www.seabury.edu/moodle/user/view.php?id=411&key=Buy-Prozac-Online]buy prozac online[/url] [url=http://mai-edu.net/moodle/user/view.php?id=116&key=Buy-Ambien-Online]discount ambien[/url] [url=http://www.gonzo.edu.au/moodle/user/view.php?id=1138&key=Buy-Viagra]buy cheap viagra[/url] [url=http://lms.upb.edu.co/moodle/user/view.php?id=2434&key=Buy-Stromectol-Cheap]buy stromectol[/url] [url=http://technorati.com/faves/BuyAcompliaOnline?show=blogs]buy acomplia online[/url] [url=http://medschool.slu.edu/moodle/user/view.php?id=2974&course=1&key=Buy-Tramadol]tramadol online[/url] [url=http://ice.stu.edu/moodle/user/view.php?id=283&key=Buy-Nexium-Cheap]buy cheap nexium[/url]
buy cheap nexium tramadol online discount ambien buy cheap viagra buy prozac online buy acomplia online buy prevacid online buy stromectol
http://medschool.slu.edu/moodle/user/view.php?id=2974&course=1&key=Buy-Tramadol http://www.gonzo.edu.au/moodle/user/view.php?id=1138&key=Buy-Viagra http://technorati.com/faves/BuyAcompliaOnline?show=blogs http://ice.stu.edu/moodle/user/view.php?id=284&key=Buy-Prevacid-Cheap http://mai-edu.net/moodle/user/view.php?id=116&key=Buy-Ambien-Online http://ice.stu.edu/moodle/user/view.php?id=283&key=Buy-Nexium-Cheap http://www.seabury.edu/moodle/user/view.php?id=411&key=Buy-Prozac-Online http://lms.upb.edu.co/moodle/user/view.php?id=2434&key=Buy-Stromectol-Cheap
This is a cool site! Thanks and wish you better luck! Brilliant but simple idea.: [url=http://lms.upb.edu.co/moodle/user/view.php?id=2434&key=Buy-Stromectol-Cheap]buy cheap stromectol[/url] [url=http://mai-edu.net/moodle/user/view.php?id=116&key=Buy-Ambien-Online]buy cheap ambien[/url] [url=http://medschool.slu.edu/moodle/user/view.php?id=2974&course=1&key=Buy-Tramadol]buy tramadol[/url] [url=http://www.seabury.edu/moodle/user/view.php?id=411&key=Buy-Prozac-Online]buy prozac[/url] [url=http://www.gonzo.edu.au/moodle/user/view.php?id=1138&key=Buy-Viagra]buy cheap viagra[/url] [url=http://ice.stu.edu/moodle/user/view.php?id=284&key=Buy-Prevacid-Cheap]buy prevacid[/url] [url=http://technorati.com/faves/BuyAcompliaOnline?show=blogs]buy acomplia[/url] [url=http://ice.stu.edu/moodle/user/view.php?id=283&key=Buy-Nexium-Cheap]buy cheap nexium[/url]
buy cheap ambien buy cheap viagra buy cheap nexium buy prevacid buy acomplia buy tramadol buy prozac buy cheap stromectol
http://www.gonzo.edu.au/moodle/user/view.php?id=1138&key=Buy-Viagra http://medschool.slu.edu/moodle/user/view.php?id=2974&course=1&key=Buy-Tramadol http://ice.stu.edu/moodle/user/view.php?id=284&key=Buy-Prevacid-Cheap http://ice.stu.edu/moodle/user/view.php?id=283&key=Buy-Nexium-Cheap http://www.seabury.edu/moodle/user/view.php?id=411&key=Buy-Prozac-Online http://lms.upb.edu.co/moodle/user/view.php?id=2434&key=Buy-Stromectol-Cheap http://mai-edu.net/moodle/user/view.php?id=116&key=Buy-Ambien-Online http://technorati.com/faves/BuyAcompliaOnline?show=blogs
good! support!: [url=http://www.esnips.com/user/BuyStromectolOnline]stromectol[/url] [url=http://getk2.com/forum/member.php?u=18284&key=Buy-Soma-Cheap]buy soma online[/url] [url=http://moodleserv.com/centrec/user/view.php?id=2852&key=Buy-Cialis-Online]buy cialis[/url] [url=http://getk2.com/forum/member.php?u=18282&key=Buy-Levitra-Cheap]order levitra[/url] [url=http://www.boinc.org.pl/forum/profile.php?mode=viewprofile&u=4716&key=Buy-Levitra]cheap levitra[/url] [url=http://getk2.com/forum/member.php?u=18300&key=Buy-Phentermine-Cheap]buy phentermine cheap[/url] [url=http://www.boinc.org.pl/forum/profile.php?mode=viewprofile&u=4717&key=Buy-Propecia]buy propecia[/url] [url=http://getk2.com/forum/member.php?u=18291&key=Buy-Propecia-Cheap]buy propecia[/url]
buy propecia buy cialis buy soma online stromectol buy propecia cheap levitra order levitra buy phentermine cheap
http://getk2.com/forum/member.php?u=18300&key=Buy-Phentermine-Cheap http://getk2.com/forum/member.php?u=18291&key=Buy-Propecia-Cheap http://moodleserv.com/centrec/user/view.php?id=2852&key=Buy-Cialis-Online http://www.boinc.org.pl/forum/profile.php?mode=viewprofile&u=4716&key=Buy-Levitra http://www.boinc.org.pl/forum/profile.php?mode=viewprofile&u=4717&key=Buy-Propecia http://getk2.com/forum/member.php?u=18284&key=Buy-Soma-Cheap http://www.esnips.com/user/BuyStromectolOnline http://getk2.com/forum/member.php?u=18282&key=Buy-Levitra-Cheap
good! support!: [url=http://medschool.slu.edu/moodle/user/view.php?id=2975&course=1&key=Buy-Prozac-Online]buy prozac cheap[/url] [url=http://moodle.everacruz.gob.mx/moodle/user/view.php?id=695&key=Buy-Propecia-Cheap]order discount propecia[/url] [url=http://z44z.forumco.com/topic~TOPICID~116.asp?Buy-Propecia-Online]propecia online[/url] [url=http://z44z.forumco.com/topic~TOPICID~115.asp?Buy-Cialis-Online]buy cheap cialis[/url] [url=http://www.energycodes.gov/moodle/user/view.php?id=3848&key=Buy-Viagra-Cheap]order viagra online[/url] [url=http://moodle.monmsci.net/moodle/user/view.php?id=515&key=Buy-Levitra-Online]order levitra online[/url] [url=http://piccle.educ.psu.edu/moodle/user/view.php?id=3027&key=Buy-Soma-Cheap]buy soma cheap[/url] [url=http://www.gamedevx.com/moodle/user/view.php?id=4041&key=Buy-Cialis-Cheap]order cialis online[/url]
buy soma cheap buy cheap cialis order viagra online order discount propecia order levitra online propecia online buy prozac cheap order cialis online
http://www.energycodes.gov/moodle/user/view.php?id=3848&key=Buy-Viagra-Cheap http://medschool.slu.edu/moodle/user/view.php?id=2975&course=1&key=Buy-Prozac-Online http://moodle.everacruz.gob.mx/moodle/user/view.php?id=695&key=Buy-Propecia-Cheap http://z44z.forumco.com/topic~TOPICID~115.asp?Buy-Cialis-Online http://www.gamedevx.com/moodle/user/view.php?id=4041&key=Buy-Cialis-Cheap http://piccle.educ.psu.edu/moodle/user/view.php?id=3027&key=Buy-Soma-Cheap http://z44z.forumco.com/topic~TOPICID~116.asp?Buy-Propecia-Online http://moodle.monmsci.net/moodle/user/view.php?id=515&key=Buy-Levitra-Online