Is ASP.NET really as good as they claim? (No, this isn't a troll, please read)

A

Alan Silver

Hello,

This is NOT a troll, it's a genuine question. Please read right
through to see why.

I have been using Vusual Basic and Classic ASP for some years, and
have now started looking at ASP.NET. At first glance, it looks
excellent, albeit nothing that couldn't have been done to Classic ASP.
I have been through a few tutorials and was impressed with how quickly
you can get database info onto a page.

What worries me is if it really is as good as it looks. Some years
ago, MS tried to persuade VB programmers to get into writing web sites
by introducing Web Classes to VB. These looked, at first glance, like
a really quick and easy way to code a web site. The universal opinion
on them was that they were awful when you tried to get anything real
done with them. You spent so much time fighting with the system that
you would have been quicker doing it by hand in the first place.

Same thing happened when MS introduced the Data Environment into VB.
Again, this was supposed to be a RAD tool for getting database-based
apps up quickly. The first impressions were very favourable, but you
quickly found yourself writing more code to fight the system than you
would have done by doing it all by hand in the first place.

There are other examples, but I think the point is clear. That which
appears to be a fantastic way to code initially may turn out to be a
coding nightmare when you try and take the second steps.

So, is ASP.NET the same, or have MS finally got it right? My first
impression is that is it great and could save a lot of time. Trouble
is, I can almost feel myself going back a few years to when I first
tried the Data Environment. That's what worries me, am I going to
start with it and then find it's more bother than it's worth?

Do people do professional sites in ASP.NET and still think it's good?
Maybe this is the wrong place to ask as anyone who hated it and gave
up probably wouldn't be reading here, but I would still like some
reassurance that my time is going to be invested well if I learn
ASP.NET. Given my extensive code library, built up over a number of
years, I can get db-driven web sites up in Classic ASP quite quickly.
I'm not going to drop that unless I know the alternative is a genuine
improvement.

As I said at the start, this is a genuine question, not a troll.
Please reply appropriately. TIA
 
M

Marina

ASP.NET really introduces the concept of separating UI and code. So the UI
can still be done by a web designer and it can look any way you want. The
functionality is then provided by a developer who write the code behind.
 
K

Karl Seguin

i can't agree here...my opinion of ASP.Net is that it enables you to write
true N-Tier and OO code...but that you need to be disciplined and vigilant
about it. I'm not sure what you mean by this, but I'm guessing you are
refering to things like codebehind. As far as I'm concerned, codebehind
doesn't promote N-Tier, instead it hinders it. People think that if they
use codebehind they are developing an N-Tier system, because the
presentation layer is seemingly separated from the business layer. Only
problem is the separation is merely physical, not logical...using tools like
VS.Net the codebehind/ASPX files are strongly-coupled, meaning no true
separation exists. Added to this, codebehind should be the location of the
presentation logic layer NOT the business layer...most people think
codebehind IS the business layer, but of course it can't be since it's tied
to a specific page.

Luckily they got it right in ASP.Net 2.0 with the introduction of skins,
themes and partial classes. But getting back to the point, using ASP.Net
1.X it's possible to achieve this, just not as simple as it might be or
should seem (for a good example, check out the communityserverforums which
don't use codebehind nor code-inline, but instead rely on a skinning
mechanism to help promote that side of N-Tier).

I can also point to datasets, which I think are horrible from both an OO
standpoint and an N-Tier standpoint (though they certainly have their
place/advantage). But yet again, the .Net framework provides very capable
alternatives (there are a bunch in this case).

Yes, ASP.Net is serious and has been around for long enough now (~5years) to
say so with authority. There won't be another version of classic ASP so
you're going to have to move to either JSP or ASP.Net at some point. The
learning curve however is viscious and if you want to build serious systems,
you'll need people who know what they are doing and won't just take the easy
way out (which there are a lot of).

Karl
 
M

Marina

If someone puts all their code directly into the codebehind, well, then they
are somewhat better off then before, but that doesn't truly promote modular
reusable code. Is it better then spaghetti code where all the dynamic HTML
is done with a series of Response.Write's and is impossible to understand?
Yes, by far, no comparison.

And it does mean that you can have a UI designer work on the client facing
part of the page, and the developer write the code later. And my point
here, was that the quality of appearence of the pages is going to be
completely dependent on who is doing your UI, and that asp.net introduces no
limitations on this.

Now, I didn't claim that just because the code and the UI are separated you
get true N-tier code, etc. Anyone can write all their code in a completely
non-modular way, 1 tier way, be it web forms or windows forms. This all
depends on the skill and forsight of the developer. To me, this is a
completely separate topic, and not what the person asked.
 
K

Karl Seguin

I felt rantish..sorry..and you are right, I implied that you claimed far
more than you did.

But Alan did ask for an honest assessment of ASP.Net and i think that my
caution that it's only as good as the people using it (which i guess I could
have simply said) is still valid. I also think you gave a very good one.
My original thread should have been better worded and not marked as a reply
to yours, but instead to the original post.

My sincerest apologies,

Cheers ;)

Karl
 
M

Marina

That's ok, just wanted to clear things up.

Agreed, your caution is well placed. Hopefully people will take advantage of
all .NET has to offer.
 
W

WJ

Alan Silver said:
I have been using Vusual Basic and Classic ASP for some years, and
have now started looking at ASP.NET. At first glance, it looks
excellent, albeit nothing that couldn't have been done to Classic ASP.
I have been through a few tutorials and was impressed with how quickly
you can get database info onto a page.

What worries me is if it really is as good as it looks....

This due largely to a so called "old habit dies hard!". Many shops have been
used to with classic VB and ASP. And managers are afraid to make changes to
an already working product! That is common sense. A new product is a new
product. You have to make commitment to learn it. Asp.Net and its .Net
Framework is pure Object, a modernized system. Yes, it is better, much more
improved from an experienced programmer point of view. Indeed, these new
products are not for amateur (another reason why many classical VB
programmers donot want to move because they donot need to understand what OO
is all about, and or n-tier thing, all they want is simple stuffs to get
things done quickly!). For Security alone, the classic VB and ASP will not
be able to match! Period! I see a lots of Connection strings laying naked in
legacy VB/ASP pages, no protection at all, this was one of the things got MS
into troubles !!!

In short, .Net and its 6000+ classes is an excellent system. not even Java
would match! Unfortunately, it only works on MS/Windows platform!

John
 
K

Kevin Spencer

excellent, albeit nothing that couldn't have been done to Classic ASP.

Apparently, you know almost nothing about ASP.Net ASP uses VBScript, and is
extremely limited in what you can do with it without using COM objects.
ASP.Net can do literally anything, without having to go outside to COM
objects. The .Net platform can do anything you want, no outside help needed.
For example, I'm currently writing some classes that parse binary meta-data
from GeoTiff files. Try doing that with the Scripting.FileSystemObject of
Classic ASP.

That siad, ASP.Net is much more complex and difficult to use than ASP. So,
if you don't like learning and studying, you might want to stick with
Classic ASP. But once you DO learn ASP, you will be MUCH more productive.
It's a short-term vs. Long-term issue. In the short term your work will be
slowed way down as you learn the object model and syntax, etc. You will have
to learn about some low-level concepts that VB 6 and earlier didn't handle,
such as strict data typing and Obect-oriented programming concepts. In the
long term, the CLR has some awesome classes that enhance productivity
extensively.

If you're looking for Drag 'n Drop developer tools, there are plenty to be
had in Visual Studio.Net, and to a lesser extent, other Microsoft .Net tool
sets. However, you will never progress very far by simply using these types
of pre-built capabilities.

So, if all you want to do is some puddle-jumping, a Cessna (ASP) is a good
enough airplane. But if you want to get 150 people from coast to coast in
under 6 hours, the Boeing 747 of ASP.Net is the plane to fly. Sure, you
can't learn to fly it in 6 easy lessons, but once you've mastered it, the
"sky" is the limit!

--
HTH,

Kevin Spencer
Microsoft MVP
..Net Developer
Neither a follower nor a lender be.
 
M

Martin Eyles

WJ said:
In short, .Net and its 6000+ classes is an excellent system. not even Java
would match! Unfortunately, it only works on MS/Windows platform!


What about mono?

ME
 
K

Kevin Spencer

I had mono once. Couldn't stand up for two weeks.

--
HTH,

Kevin Spencer
Microsoft MVP
..Net Developer
Neither a follower nor a lender be.
 
A

Alan Silver

Kevin Spencer said:
Apparently, you know almost nothing about ASP.Net

Correct, and if you read my original post, I made that point quite
clear.
ASP uses VBScript, and is extremely limited in what you can do with it
without using COM objects. ASP.Net can do literally anything, without
having to go outside to COM objects. The .Net platform can do anything
you want, no outside help needed.

With all due respect, I think you misread (or misunderstood) my point. I
wasn't saying that you could do anything in ASP that you can do in
ASP.NET, I said that (as far as I could see from my cursory first look),
nothing that had been done to make ASP.NET what it is couldn't have been
done (ie by MS with some development) to ASP. In other words, they could
have just brought out the next generation of ASP, and included the
classes that .NET has as intrinsic objects.

However, the whole point of asking the question was to get some input on
how much of an improvement ASP.NET actually is, as opposed to my initial
(and unquestionably simplistic) understanding.
 
A

Alan Silver

Karl,

Thanks for the reply. Couple of comments ...
Yes, ASP.Net is serious and has been around for long enough now
(~5years) to say so with authority.

That wasn't my question. VB has been around for years and was very
widely used. That doesn't prove that the Data Environment and Web
Classes were any good. I have no doubt that ASP.NET is here to stay, if
only because MS are not developing ASP any further. My question was, are
all these time-saving tools really as good as they look, or do you end
up getting caught by the system?
There won't be another version of classic ASP so you're going to have
to move to either JSP or ASP.Net at some point.

I have already started. I am just trying to get some basic questions
clear. I am a professional developer, I don't have time to play. I need
to get up to speed as fast as possible, so I need to know which tools
are worth using, and will benefit me in the long run, and which tools
will cause problems later. As I said in my original post, I've seen
plenty people caught in issues just like this and was hoping to benefit
from the experience of those who had been using ASP.NET for longer.
The learning curve however is viscious and if you want to build serious
systems, you'll need people who know what they are doing and won't just
take the easy way out (which there are a lot of).

I've noticed this. I have seen loads of tutorials, and they all tell you
how to build a simple form, but no-one seems to write tuturials on how
to go the next step and write a real world page, ie one with multiple
forms, or muti-step forms. As a newbie to this, I find that very
frustrating. I have a site that I'm about to start, and it would be an
excellent chance to try ASP.NEt, but I just can't see any way of knowing
where to start with a complex process.

Anyway, thanks for the reply.
 
A

Alan Silver

But Alan did ask for an honest assessment of ASP.Net and i think that
my caution that it's only as good as the people using it (which i guess
I could have simply said) is still valid.

Isn't that true of any development system? Is ASP.NET any different?

And the reason for my question (as previously stated) was to try and get
it right first time.
 
K

Kevin Spencer

With all due respect, I think you misread (or misunderstood) my point. I
wasn't saying that you could do anything in ASP that you can do in
ASP.NET, I said that (as far as I could see from my cursory first look),
nothing that had been done to make ASP.NET what it is couldn't have been
done (ie by MS with some development) to ASP. In other words, they could
have just brought out the next generation of ASP, and included the classes
that .NET has as intrinsic objects.

If what you were saying was that ASP.Net could have simply extended ASP, you
are mistaken. ASP.Net is object-oriented, and part of the .Net platform,
which uses managed code. ASP is procedural, and uses scripting.

You must understand that ASP.Net is part of the Microsoft .Net platform, an
initiative which took MS initially 4 years to develop. .Net is a whole set
of technologies, including ASP.Net. Microsoft was not just "upgrading" their
old programming technologies. That was not possible. .Net is an entirely
different paradigm for programming in general.

Aside from the fact that both technologies work with HTTP, web pages, and
HTML, they have very little in common. Yes, some of the objects have the
same names (e.g. Request and Response), and under the covers, perform the
same basic types of functions. But that is at a very low level, beyond the
scope of the programmer who is using the technology. The programming model
works very differently, and for many good reasons.

It just made a lot of good sense to rework the entire technology, and make
it adhere to the .Net paradigm. As an analogy, consider your home computer.
You certainly can upgrade ther peripherals now and again for several years.
Eventually, however, it makes much better sense to swap out the whole
machine, as the mother board and other hardware that is central to the
functionality of your machine is now obsolete.

ASP will be around for many years to come, so if you don't want to "hang
ten," just keep using it.

--
HTH,

Kevin Spencer
Microsoft MVP
..Net Developer
Neither a follower nor a lender be.
 
A

Alan Silver

About your last point, you should consider looking at some of the best
practices examples. The two I would recommend are

The community starter kit:
http://asp.net/Default.aspx?tabindex=8&tabid=47

Thanks, I already have this, but was somewhat overwhelmed by it. I'm at
the awkward stage of having done the simple examples and wanting to move
to real world stuff, but not being near the understanding required for
big projects like this. There's just too much in there to fathom out at
the moment. I need to know where to start.

Thanks for the link. I'll get this one and have a look.
which are both freely available. No good documentation for them (yet),
but if you spend time in the code you'll learn a lot.

<g> It's knowing where to start that's the problem. There are so many
files there, and they interact so much, you can't just pick out a single
one and look at that.

Anyway, I'll see what I can see from this one. Thanks again for the
links. Any more pointers, especially to intermediate examples and
explanations would also be very welcome.
 
A

Alan Silver

Kevin,

Thanks for the reply. I see what you are saying. I wasn't criticising
ASP.NET, I don't know enough about it to do that yet (!!), I was saying
that at first look it seemed that they could just have extended ASP and
done the same. I understand your analogy and assume that I'm missing
large parts of the picture so far (that much I knew!!).

I'm still trying to learn it, and you don't learn if you don't ask
questions, even stupid ones!!
ASP will be around for many years to come, so if you don't want to
"hang ten," just keep using it.

I'll probably keep using ASP as well, simply because I have a large code
base invested in it already and it's good when I need something doing
quickly, but I definitely intend exploring ASP.NET as much as possible
as if it really does hold the potential that it promises, then it will
be a major improvement.

I just have to work out what I'm doing now!! It's a lot harder to learn
than ASP. I picked that up from scratch in about two days ;-)
 
K

Kevin Spencer

Hi Alan,

I don't consider any of your questions "stupid ones." And please feel free
to come on back and ask any you may have. That's what we're all here for!

--
HTH,

Kevin Spencer
Microsoft MVP
..Net Developer
Neither a follower nor a lender be.
 
A

Alan Silver

Hi Alan,
I don't consider any of your questions "stupid ones." And please feel
free to come on back and ask any you may have. That's what we're all
here for!

<g> Thanks for the vote of confidence.

Anyway, before we leave this particular thread, I noticed that my
original question hasn't actually been answered (directly anyway) ...

I was mainly asking about the visual tools that seem to make the coding
that was needed in ASP redundant. For example, in ASP Web Matrix (which
is what I was using before I posted here), there is a feature where you
can connect to a database, drag bits onto your form and make it into a
grid and in about 3 picoseconds (maybe slightly more) you have a paging
grid of data from your database. The attraction of this is immense, but
I was (and still am) slightly worried if it was really as good as it
seems when you try using it for serious work. My concerns came from a
similar experience with the Data Environment and bound controls in VB.
They also promised minimal coding for this sort of thing, but once you
got past the very basic examples, you ended up writing lots of code to
try and get past the deficiencies inherent in the system.

So, do the data (and other) tools in ASP.NET and the IDEs suffer from
the same problem, or are they actually powerful enough to use on serious
applications? I'm convinced of the improvement of ASP.NET, I'm just not
sure how much to rely on these tools and how much to do it by hand.

Thanks for all the help.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top