

ASP.NET MVC 3 Release Candidate - bsk
http://weblogs.asp.net/scottgu/archive/2010/11/09/announcing-the-asp-net-mvc-3-release-candidate.aspx

======
icey
MVC3 + code-first from the EF4 CTP makes throwing together proof-of-concept
apps very fast (and painless!). You don't have to do much besides design your
models and you get a functioning site to start with.

~~~
bsk
It is fast, but I have a couple of problems:

1\. A technical bug - EF often fails to update SQL Server DB on model change
(RecreateDatabaseIfModelChanges).

2\. More general - the generated UI is completely data centric, while even MS
people advocate for business centric, task based UIs.

~~~
kennu
MS is still advocating task centric UIs? I've hated crap that since they
started filling Win7 with vague, ambiguous buttons like "Setup a new network",
"Connect to a network", "Connect to the Internet", "Connect to a workplace"...
You have to click them to find out what they actually do.

~~~
lucisferre
That is a fair point, though I don't think the "task centric" approch can be
held accountable for the issues with the design of the windows control panel.
This is probably because control panels are not about "tasks" but settings and
so it is a terrible paradigm for that.

------
ronnier
Here's a interesting technical interview with Andrew Nurse who created the
Razor View Engine for ASP.NET MVC 3. In the interview, he said Razor was his
first project once starting at Microsoft.

[http://channel9.msdn.com/Shows/Going+Deep/Andrew-Nurse-
Insid...](http://channel9.msdn.com/Shows/Going+Deep/Andrew-Nurse-Inside-Razor)

------
jtdowney
Word of warning that I found and ScottGu confirmed in the comments of his blog
post, if you have the Async CTP bits installed and you install MVC3 RC you
will lose the ability to use the watch windows during debugging. Just a heads
up to make sure you only have one or the other installed for right now.

------
rbanffy
Simple question: when to use ASP.NET MVC 3 and not Rails, Django, Flask,
Cake/PHP or some other MVC framework?

~~~
tansey
I think you shouldn't over-think the question. If you already know C# but are
new to Ruby/Django/PHP, it's probably better to go with ASP.NET. I personally
go with ASP.NET for the intellisense and refactoring support of Visual Studio.
The main drawbacks for me are that deployment is more difficult and expensive
than other frameworks.

If only I could just "azure push"...

~~~
lucisferre
Yeah my biggest pet-peve of being a .NET developer is deployment. It's as if
we were never expected to actually ship something in .NET

------
aymeric
With this release, the .NET world is getting pretty close to the Ruby on Rails
development experience:

* dynamic keyword

* NuGet <=> gems

* MVC scaffold <=> rails g scaffold

The only reason why I keep developing my personal projects in RoR is because
of Heroku. Azure is still too expensive.

~~~
latch
The mvc team is a breath of fresh air, no question. But I'm surprised to hear
someone who knows RoR say that they are "pretty close".

There's more to dynamic programming than the dynamic keyword. I don't want to
get into which is better, but to say that C# is even in the same league as
Ruby for dynamic programming, because of the dynamic keyword, is wrong - if
for no other reason that properties from anonymous types (which dynamics are
built on top of) are internal. Read meta programming Ruby, or try doing
extensive [tb]dd with both, and you'll see how different they are (hint, you
don't need DI frameworks in Ruby).

Ruby gems has a rich history, a strong community, and a proven track record.
Every ruby developer has, and uses gems. Most packages are in known
repositories. Gems has been extended to solve other problems (bundler). NuGet
is a good and necessary start, but, again where you say "pretty close", I'd
say "pretty far".

~~~
contextfree
Are you sure C# dynamics are built on top of anonymous types? My understanding
is that they are actually more like an untyped IQueryable, with syntactic
sugar that turns dyn.Blah into the (rough) equivalent of dyn.Select(Blah).

~~~
latch
Sorry, you are right. What I was referring to was a dynamic referencing an
anonymous type (which is the same as anything else referencing an anonymous
type)...Which I still wouldn't write off, because its a fairly common
scenario, and even more so when used with dynamics.

------
fiveo
I've just started to scratch the surface of ASP.NET MVC 2.0 and they just
release RC v3?

Nuts.

~~~
johns
Other than Razor (which is optional), not that much has changed and it is a
pretty painless upgrade. Under the old way they used to version software, this
is really more like ASP.NET MVC 1.5 SP1

~~~
bradhe
Heh, sure it's optional but if you stack it up next to the TERRIBLE Web Forms
syntax...

~~~
johns
Well if you were using Spark already, you can go to v3 without changing your
templates

------
nathanwdavis
Seems like not a big deal, but I think the session-less controller support is
a nice touch. Good job!!

------
clistctrl
This is great, I've been really excited for the razor engine! Also i'm glad to
learn about Output Caching :)

------
Devilboy
Anyone here using MVC with F#?

~~~
contextfree
I'm using an F# domain model assembly. A problem is that MVC's model binding
infrastructure assumes model types with mutable properties (I had to write
custom model binders to get around this).

~~~
Devilboy
I wonder when Microsoft will start paying attention to these details, I mean
F# is supposed to be a 'first class citizen' language in Visual Studio now.

