

Stefan Rusek: Ready to quit ASP.Net - spolsky
http://stefan.rusek.org/Posts/Ready-to-Quit-ASP-NET/16/

======
spolsky
ASP.Net is awesome for when you need a quick-and-dirty, internal application
to do something and you don't care how good the code is or how efficient it
is. I used it (with C#) to build a customer service portal used internally at
Fog Creek and was able to build something "good enough" very, very fast...
this is the kind of application where you don't care much about speed, you
don't care about fonts and layouts, you don't even care about error checking
because if it crashes, the person using it comes and asks you what happened
and you ask them what they did, and then you tell them not to do that any more
if they don't like crashes.

For shrinkwrap apps, internet apps, and anything where you really need polish,
you care what your URLs look like, and you want a lot of control over what's
going on so you can make it fast, shiny, professional, and bulletproof, the
still-beta ASP.NET MVC has proven itself... stackoverflow.com is implemented
with MVC and the team is loving it.

Stefan makes an excellent point that ASP.NET's original model was meant to be
familiar and comfortable to old-school VB programmers, by providing a thick
abstraction over HTML and HTTP that leaks really, really badly. For example
half of your app stops working if JavaScript is turned off... even things that
look like hyperlinks stop working because they're javascript under the
covers... and for a timid VB programmer they suddenly have to deal with much,
much more complexity to solve these last mile finishing touch kinds of things.

Conclusion... need a quick and dirty CRUD app for internal purposes that just
has to be good enough? ASP.NET is fine... you'll barely have to write any code
at all. Building a public-facing app that needs to be slick and polished? If
you're using the Microsoft stack, start with ASP.NET MVC.

~~~
benburkert
_Conclusion... need a quick and dirty CRUD app for internal purposes that just
has to be good enough? ASP.NET is fine... you'll barely have to write any code
at all. Building a public-facing app that needs to be slick and polished? If
you're using the Microsoft stack, start with ASP.NET MVC._

So ASP.net has become the "toy" framework, replaced by ASP.net MVC, a
framework inspired by monorail, which in turn was inspired by rails, the
original "toy" framework. Ah, sweet, sweet irony.

~~~
Create
the _real_ irony is, that the heading

Open Source Apps Should Start Innovating - Not Recreating (cli.gs)

also made it to the front page. Charles H. Ferguson has a nice take on this
VB/.NET/Java(script)/HTML misery in his book ...not that I agree with him on
some issues (like sw patents). But the one who has submitted the original
article might know more, since he could have been around there around that
time...

------
benburkert
Looking back, I'm glad that ASP.net sucked so hard. If ASP.net were half-way
decent, I probably would have fallen into the void of programmers who continue
to use a mediocre tool, without ever trying anything new, because it "works
good enough for me".

ASP.net got me off of closed source software & frameworks, off of windows,
IDE's, and drag-and-drop design. It made me learn linux, http protocol,
html/css, the shell, and a real text editor.

So thank you ASP.net, for turning me into an OSS developer who will hopefully
never use a Microsoft "solution" ever again.

------
old-gregg
I've used ASP.NET only for one project, for about 8 months, 4 years ago, and I
remember pretty clearly that you can configure your View State to be stored
server-side [even in the database], and not being passed around as a hidden
form input. That way it's no different than Rails' session hash.

ASP.NET is huge and _very_ powerful. It takes a lot of time and hands-on
experience to become proficient in it. I would have googled around or dropped
into an IRC channel before lamenting anything of significance in my blog based
solely on my lack of knowledge in a very specific corner of this framework.

~~~
spoiledtechie
you are so right.

------
peregrine
Hey the nice thing about Microsoft is that you don't need to use VB for
Asp.net. Sure Asp.net sucks but C# is really cool and the MVC is building up
to be something solid.

~~~
delano
I wrote hardware reviews years ago. Describing something as "solid" is
straight out of the standard playbook. It sounds vaguely positive but it's
devoid of meaning.

~~~
peregrine
Your right. I think ASP.net is the 98 Honda Civic of web development. Its
boring, its ugly sometimes, but as it goes, its reliable, easy and modifiable.
Solid.

Its not great nor poor.

------
vyrotek
I've been developing Asp.net apps for years. It pays the bills. While I agree
there are many issues with how things work, that doesnt mean it isn't the
right tool or framework for many types of applications.

Unfortunately the writer makes it seem like all Asp.net developers use just
the visual designer and the pre-made tools. At my job we have a whole library
of in-house custom controls. Not so that the developers don't have to learn
html, but for consistency and speed. I can't really remember when the last
time was that I used the visual designer...

I must say though, I have been using Asp.net MVC for some personal projects
and I absolutely love it!

~~~
chuckm
_Unfortunately the writer makes it seem like all Asp.net developers use just
the visual designer and the pre-made tools._

How did you reach this conclusion? I don't see any mention of the visual
designer or _pre-made tools_ in this article.

I agree with this article; the abstraction sucks and the framework gets in
your way more than it should.

~~~
spoiledtechie
The writer talked a lot about drag and drop.

------
utnick
Viewstate never really bothered me, if you are building pages with so many
controls that it becomes a problem you should probably think about breaking
that page up into multiple pages.

I do agree about ASP.net ajax though. That is very cumbersome to work with.
Jquery with asp.net mvc is a much needed improvement.

They just need to come up with a better ORM imo and they will be set.
Activerecord just seems a whole lot cleaner than Linq to me.

------
Encosia
Blaming a framework for your own poor use of it is like blaming McDonald's for
your poor diet.

ASP.NET is a great platform. WebForms could be better, but is perfectly
capable of lending itself to good design, clean/semantic markup, and light-
weight AJAX if you use it well.

~~~
ahpeeyem
Do you have any examples of Web Forms applications with clean/semantic markup
and lightweight AJAX?

From my experience it may be possible but all the purported advantages of
ASP.NET - drag and drop development, not having to understand how the web
works, rapid development, go out the window if you're trying to achieve clean,
lightweight markup, and you spend lots of time trying to work around the
framework instead of having it do things for you.

If a framework encourages you to build bloated and ugly web applications (even
though it's possible with a lot of effort to build nice ones), it's not a
great framework. Just like how McDonalds will make you bloated and slow and
sick - it's not great food.

But I can agree that the ASP.NET platform is nice - without web forms.

~~~
Encosia
Take a look at the posts on my blog. Most of them revolve around doing just
that.

I grant that there are plenty ASP.NET developers using drag and drop "design",
SqlDataSources in the presentation layer, bloated UpdatePanels for AJAX, and
worse.

At the same time, there are many of us who don't use those parts of the
tooling or framework though. More than you might imagine.

~~~
sundeep
> Take a look at the posts on my blog.

what blog ? where blog?

~~~
Encosia
<http://encosia.com>

------
ocskills
ASP.NET is a very flexible environment but, like any anything, it takes time
to learn. You can tweak view state settings, manipulate caching, tune
sessions, adjust markup, and exercise fine control over web control settings.

The fact that most novice developers won't know how to do these things without
a learning curve is not the fault of the framework.

In fact, most of the observations the author makes here are equally applicable
to other "quick start" programming environments. For instance, I'm sure there
are plenty of bloated and poorly implemented Rails apps that resulted from
inexperienced developers hacking up applications generated 100% by scaffolds.

~~~
spoiledtechie
It also sounds like the author seems to still be in the "new" stage of
ASP.NET. Viewstate? Thats been around for years. Looks like hes venting...

------
rayvega
>> "...The remaining source of hugeness turns out to be a list control that
you databound to a giant list of things from the database. The database can
give you paged data, but the list control doesn't really like to be given
anything but the full list--even if the control only shows a subset. At this
point, you can either dig into the inner workings of the list control and try
to trick it into doing what you want, or you can write your own list control.
Either way you have a ton of work ahead of you..."

That nicely summarizes what I experienced in frustration (and wrote about
[http://lexicalclosures.blogspot.com/2009/01/paging-in-
aspnet...](http://lexicalclosures.blogspot.com/2009/01/paging-in-aspnet-using-
nhiberate.html)) when attempting to bind paged data to an ASP.NET GridView
(list) control.

The only difference is that I used an ORM (NHibernate) and not the database to
provide the paged data. It was frustrating because the GridView control just
did not want to play nice if I did not play by its rules.

------
bdfh42
Like all Microsoft development tools ASP.NET is huge and designed to do just
about everything for you - provided you are happy to build web sites as they
were envisaged by the tool designers. There lies the problem - the folks that
built the tool set were not web site architects but tool set architects. Thus
its abstractions leak as soon as you start to head off in your own design
directions.

I regularly use ASP.NET to build complex Ajax powered interactive web sites
BUT (and this is important) I take from the tool set what helps with my sites
and ignore the rest. I write (just about) all my own client side scripts and
use the normal techniques for building parts of pages on the fly from JSON
objects but server side the ASP.NET framework is near perfect and provides
just what I need to build my apps.

------
eduardoflores
The .NET framework is pretty good, but Stefan has a point on the paradigm
limitations of ASP.NET (bringing the VB6 programmers to the web on a MS
technology).

By thinking outside the MS box, we have built a site that receives over 5
million pageviews a day... but the .NET part is limited to serving pages with
low traffic and interaction, managing sessions and hits and doing some
minimalistic HTML rendering. The rest are Ruby-generated HTMLs and some
indexing services.

------
senthil_rajasek
Of course, you also want to use a decent "data access" layer that uses a DAO
or ActiveRecord pattern, if needed and your favorite view templating engine,
to leverage the MVC framework completely.

