Fog Creek Software
Discussion Board




Your thoughts on ASP.NET

I used to do some ASP scripting a while ago and now I'm trying to learn ASP.NET using C# and VS.NET but I'm a little confused. I don't know but seems to me like they're trying to make it a little too easy. And what's with all the files that VS creates? Leaves you wondering which ones you need to upload to your server.

Anyone having good or bad experiences with it? I believe I need some encouragment because I'm seriously considering to switch to PHP now.

Roger
Sunday, January 20, 2002

They are trying to make it too easy.
If you look around ASP newsgroups, you always used to see VB monkeys posting things like "How do I do a msgbox in ASP?", or "How do I put an onClick event in my ASP Page". Zero understanding of the web environment.

SO

Microsoft gave them an onclick event.

So now, we will have more lousy web applications written by people who have no understanding of the medium because their toolset hides it all from them.

Don't get me wrong, there will still be people who do understand, and they will do good work. But those people will do good work no matter what the platform. My main issue with Microsoft products is that they make it too easy to churn out inferior code, becuase the toolset hides any need for knowing what you are actually doing.

Look at FrontPage

Damian
Sunday, January 20, 2002

Just because they give you the ability to create drag and drop web applications doesn't mean you have to take that approach.

Take a look at the example ASP.NET applications at http://www.gotdotnet.com/team/compare/petshop.aspx or http://www.asp.net/default.aspx?tabindex=3&tabid=42 and have a look at the code.

Ben R
Sunday, January 20, 2002

I totally agree, that is sort of what I was trying to say. They have provided some really good tools. BUT, they have made it too easy for people to create bad work because they don't understand the platform. When this happens, we will hear ".NET is slow / doesn't scale" etc

It's like when you hear abotu SQL server being slow, or not scaling. It is complete rubbish, but because SQL Server is easy to use, people get thrown at it just beacuse they saw MS Access once. They create terrible databases and the whole product's reputation suffers.

Damian
Sunday, January 20, 2002

Roger wrote:
"I'm seriously considering to switch to PHP now."

I am a Windows developer and was therefore very reluctant to try out PHP. I don't like Perl because it's difficult to read and I hate VI and LATEX kind of Unix applications. I decided to check out PHP because of several recommendations.

To try out PHP and MYSQL I bought "PHP and MYSQL Web Development" by Welling and Thomson. It's one of the best coding books I ever read. It's filled with real world examples. PHP is great. It's readable, it's powerfull, it's fast, it's stable, it's free, the manual is quite good and there are several really good web sites about PHP development.

You can run PHP right on your windows machine, which is great for development. Just download the Apache web server, MYSQL database and PHP. Installing is really easy. Apache requires some tuning of the configuration file. But after 30 minutes most people find out that for a web server a well commented configuration file is much better than a confusing GUI.

The only disadvantage is that I have not seen a decent PHP development environment around yet. I'm using UltraEdit at the moment. There are several environments out there, but most suck pretty badly. But than again I am spoiled with Delphi. I hope Borland will PHP Builder, but I doubt they will.

Jan Derk
Sunday, January 20, 2002

i do most of my work in perl and PHP.  perl for stuff that's mostly logic and a little bit presentation, PHP when  i need to mix it up.

i agree that PHP is easy to use.  the documentation is incredibly good.  it's limitations start to come into play when the website starts to be big and you are doing lots of scripts.  the mixing of presentation and code can get as confusing as perl's @,$,%, and #'s. 

razib kahn
Sunday, January 20, 2002

razib says:
"the mixing of presentation and code can get as confusing as perl's @,$,%, and #'s"

ASP.NET's Code Behind feature allows you to completely seperate your code from content, see http://www.4guysfromrolla.com/webtech/100500-1.shtml for an example.

Ben R
Sunday, January 20, 2002

ASP.NET allows you to use as much or as little of it as you want.  Typically, you don't pay a peformance penalty for the features you don't use.

If you don't like click events, then ignore the UI framework and stick the ASP classic feature set.  And if you don't like mixture of script in HTML in the ASP classic feature set, then you can write C# classes to handle web requests.

Nona Myous
Sunday, January 20, 2002

ASP.NET is great. I was a "text editor only/bare HTML" type ASP person before, and started approaching ASP.NET in the same way. WRONG!

The DataGrid and DataList are life savers. How much time I wasted writing tedious rendering code before.

The event system is great. But yes - you have to no the implications of too many round trips. The ViewState management is nice - but yes you have to be aware how much data your client ends up POSTing back to the server each round-trip. Validation controls: so simple but they'll shave hours off coding tedious form validation.

I find myself working increasingly in Design View (shudder) rather than HTML view -- maybe I'm just getting old and sick of p***ing around in seas of HTML tags.

...but then there's the lure of the new Windows Forms runtime, and dynamically downloading/updating apps so that we can (on some projects) move away from the barbarian world of web browser apps!

Duncan Smart
Monday, January 21, 2002

... and there's more - you only have to deploy the *.aspx files and the /bin directory to your clients web server. The code in the separate *.CS/*.VB files don't -- your client doesn't get your source code.

Duncan Smart
Monday, January 21, 2002

The "4guys" article clearly shows, that asp is to easy. How are people supposed to learn how to write acceptable code, when code examples always contain so bad code (Strings concatinated into the sql-string is not escaped. The "sa" account is used)?

It seems to me, that php/asp/jsp/asp.net is the same beast. All gives the programmer the possibility of mixing code and html. jsp and asp.net have taglibs/page controls and php have some template classes, but I think that it is to easy to make a quick hack. A language where your only option was to use taglibs/page controls would make it harder to do a "hello world" example, but wouldn't it also encourage better/cleaner code? (I don't think I linke "code behind": It dosn't make the coder do reusable code, the designer is to tied by programmer, html is not a windows app (as noted above))

Lauritz
Monday, January 21, 2002

The validation controls are great for some things, but there are big gotchas -- the biggest being that they will never fire for empty fields. Which makes them close to useless for checking, say "must enter a province or a state but not both". Any time you write a custom validator you also need to attach a required field validator to the same field if "empty" isn't an acceptable value.

Mike Gunderloy
Monday, January 21, 2002

Lauritz says:
"I don't think I linke "code behind": It dosn't make the coder do reusable code, the designer is to tied by programmer"

ASP.NET has many techniques to improve code reuse, through code behind pages (inheritance can be used) and Server Controls. The petshop example linked to from above is a good example of code reuse, it uses 1/4 of the code of the solution Sun produced with JSP/Java (Sun wasn't concerned about LOC when writing this app).

As for the second comment, "the designer is to tied by programmer", the separation of HTML from server side code through code behind should allow the designer to change the UI, with affecting the underlying functionality shouldn't it?

Ben R
Monday, January 21, 2002

Since when did "harder" become equivalent to "better"?  It seems that as programming languages evolve, they should become easier, leaving developers free to focus on strong design and architecture details.  A lot of ASP.NET features seem born from practical web programming issues (see their Web Forms Controls, and the DataGrid controls mentioned above).  So now a developer can spend more time deciding how to implement a calendar on a web site, rather then spending time programming the actual calendar. 

Sure ASP.NET makes programming easier, but it doesn't change the use of good practices when programming.  Like Damian said above, this ease of use will result in worse code; but this just makes the job of the developer even more crucial.  It’s like chess: a game that can be played by many, but mastered by only a few.

Probably a better metric for making your decision is practicality: which package, ASP.NET or PHP, has what you need to get the job done right.  What's motivating your decision to use ASP.NET?  What's motivating your decision to move to PHP rather than some other languages?  Choosing PHP over ASP.NET just because the latter is too easy seems like a decision born out of faith, not facts, which is dangerous in computer science...

Monsur Hossain
Monday, January 21, 2002



I haven't tested ASPX yet, because I'm avoiding to do anything related to web apps. But, based on articles and this forum, I can't stop thinking about the fact ASPx don't bring anything new to us. I mean, everything Microsoft is doing sounds like something that can be done with a nice set of libraries and CGIs... and there is a good chance CGIs will be faster and more secure.

I don't understand why we should worry about ASP.NET, because everything they're doing can be accomplished using your language of choice and a regular webserver, without wasting a dime. The only beneficial thing -from a business point of view- is the availability of people capable of doing web apps with ASPx. More people means lower salaries.

Anyways, I'll avoid any web app related job if I can.

Leonardo Herrera
Tuesday, January 22, 2002

Some of the things I'm reading in this thread seem just plain nonsensical.

I mean, you don't not use something because it's _too_ easy.  In fact, if you're paid by the hour and you want to produce the highest quality product you can, you generally want to use things that make your work easy.  By making your work easy, I mean speeding it up.  Less work, more productivity.

So the fact that a programming tool makes something  easy, in itself, is not a reason to _not_ use it.  Quite the opposite; it's one of the main reasons I would choose to use a programming tool.  So if ASP.NET makes things easier I consider that one item in its favor.  And anyone else who doesn't is just being foolish, in my opinion.

Of course, sometimes when programming tools make some things easier they also make other things harder or impossible.  So you might decide to stay away from an "easy" tool because it doesn't provide the "power" you need.  I don't know enough about ASP.NET to say much about its capabilities, but from what I've seen it doesn't seem to be lacking there.

There are always issues to be concerned about when locking yourself into a proprietary solution, and perhaps especially so with a Microsoft product.  That's a valid concern.

I"m not sure what people mean when they complain about ASP.NET being so easy that you're going to get lots of crappy programmers out there making bad apps.  Are they worried that customers won't be able to tell the difference between bad programmers and good programmers?  Or is it that they're worried that it they don't adopt ASP.NET then there will be crappy programmers using ASP.NET who will be able to produce work just as good as their own (and damn it, you should have to know what you're doing to be able to build something that good!).  I don't know. 

I do know that when something becomes easy there are always lots of people who jump on the bandwagon and end up producing schlocky stuff.  But -- if the power is there in an "easy" programming tool --  there will also be experts who know what they're doing who can use the new "easy" tool to produce higher quality apps in less time. 

So for me, the questions to consider are (1) whether ASP.NET is both easy AND capable, and (2) whether I want to lock myself into a Microsoft solution.  I don't know the answer to (1) yet, and my answer to (2) may depend on just how easy and capable ASP.NET is.

Herbert Sitz
Tuesday, January 22, 2002

I had to comment about the above statement:

"...I can't stop thinking about the fact ASPx don't bring anything new to us. "

That may be true on the purely language level. I recently took courses on both ASP.NET and Java web development. There's many things in ASP.NET that is a direct match with something in the Java space. For example, .NET server side controls = Java taglibs. ASPX files = JSP file. Etc.

From what I can tell, Microsoft's goal with ASP.NET is not really to provide some fundamentally new scheme for web programming. What they're trying to recapture the magic of VB.

Please stop laughing for a second and keep reading. :-)

For all of the complaints that VB has had leveled at it, everyone must admit that it has been spectacularly successful in one particular area:

VB is the ONLY programming environment that has a robust, growing and profitable market in reusable components.

Have you looked at a VB catalog lately? You'll see HUNDREDS of pages of ActiveX controls to do everything from radio buttons to database report generation. All packaged as binary components, just drop them in and use them.

In many ways, this is the definition of VB - you buy, you don't build. And it's one of the secrets to VB's incredible productivity.

Yes, there are C++ libraries - how many of these are really usable without source code? There is a Java component market, but it's a fraction of the size of the VB market.

The goal with ASP.NET (and .NET in general) is to provide the infrastructure needed to get that component market start running outside the VB space. Server-side controls are a component. You could write them, but you can also buy them. Codebehind with a custom base class lets you buy components to make your web page more functional with less effort.

Reuse is the key to increased productivity, and you can't have that without a decent platform. For Microsoft, .NET is that platform.

P.S. *Slower* than CGI? I doubt it - you need to really TRY to be slower than CGI, at least on Windows boxes.

P.P.S. ASP.NET validators rock.

Chris Tavares
Tuesday, January 22, 2002

In reference to the "don't want to be locked into a proprietary format" comment...  Check out http://www.go-mono.com/  They're creating an open-source version of .NET.

Nathan
Tuesday, January 22, 2002

>VB is the ONLY programming environment that has a robust,
>growing and profitable market in reusable components.


Wow, you say it with such conviction.  Delphi fits your description as well

Programming Guy
Wednesday, January 23, 2002

VB Component model (ActiveX) is a joke and it is extremely hard to build a decent component set as ActiveX.
Delphi have a very nice component model which brought a number of great components you'll never see in ActiveX world.

But new VS.NET introduces even better component model than Delphi, so I can predict you will see a lot of exciting visual and non-visual components for VS.NET in the nearest future.

Roman Eremin
Wednesday, January 23, 2002

In reply to a comment Herbert Sitz made in his post:

> Are they worried that customers won't be able to tell the difference between bad programmers and good programmers?


Hell yes! As someone who, at least, strives to produce something of quality I am constantly flabbergasted by the number of developers out there writing code that I would be ashamed of producing.

VB gets a lot of criticism and this is probably more to do with the mindset of a lot of VB developers who seem to only know VB syntactically and don't seem to have a broader understanding of what they are trying to achieve; the need for things like coding standards to make team development and maintenance simpler; etc.

These people don't seem to actively be trying to learn more about software development. Then again, a lot of these people have probably never had the benefit of working for an organisation that encourages quality and fosters learning.

After reading Joel's comments about C++ programmers working productively writing VB and after writing a couple of simple VBScript-based ASP applications I concede that it's not really the fault of the language. I'm a Java zealot, but I acknowledge that you can do good stuff in VB if you know what you're doing (that and I've been mired down with Cold Fusion programming lately - urgh, make it stop!).

With my experience developing with a variety and platforms and lanuages I think I can tell good developers from bad, BUT many many customers can't! Far too many customers see programming as some exercise in magic and they really aren't sure what kind of results to expect.

For instance, my previous role was at a media/entertainment company. The external company developing their web systems provided a B2B and B2C site based around the same database. Problem is, they would update one system, make changes to the database structure and, because of the way the application was developed (SQL statements written directly in each ASP - the only code reuse was of the cut and paste variety) cripple the other system (which was live) and a lot of data would be lost. This generally took 1 - 2 weeks for my employer (and far too many of its employees) to fix up (a lot of data re-entry).

The problem was compounded because the person who was internally heading up these projects would:
(1) always take a 1-2 week holiday when the system was delivered (and so be insulated from seeing the real impact of what happened);
(2) believe that this was standard practice because it was the only project of its type they had worked with.

When I suggested that this was not the way things should be I wasn't believed (question: why would I make this up?).

Partial justification for this process could be that the systems developers provided solutions for a lot less dollars than their competitors, but the system they delivered cost a lot to maintain, so in terms of cost to my employer I'm fairly sure the real cost was higher than if a more expensive developer had been selected. Yet again it was believed that these ongoing maintenance costs were normal and my protests fell on deaf ears.

I think this indicates how a lot of low quality shops manage to both get and keep business. Joel's McDonald's vs. The Naked Chef article touches on the theme of low quality development as does a previous thread about low quality business software.

So, the easier it is for low quality developers to produce work, the easier it is for unaware customers to hire them to produce code that is difficult to maintain and is often very buggy. Somewhere down the line this will eventually cause a lot of headaches for other people and burn through more cash than it should.

The potential for .NET is that Microsoft development houses may migrate to C#, which I believe given its Java-like structure should provide improved productivity relative to the current version of VB (as VB is being upgraded too, VB.NET may realise those improvements itself), but because of the way it hides what's going on there is a big risk that people will start building applications without a lot of knowledge of what they are actually doing behind the scenes. No matter how good a development platform .NET is, I really doubt it can prevent situations where such development goes horribly wrong.

My advice (if anyone is listening) - if your development shop is thinking of switching to .NET first make sure you have 1 or 2 senior developers who really know they are doing and invest in improving the quality of your entire development team and their working environment (and never make them use Cold Fusion - never!).

Read Joel On Software.

Walter Rumsby
Wednesday, January 23, 2002

I've been using .NET since Jan 2001. I have recently deployed two, small, intranet applications using ASP.NET (combined HTML & code of about 8 KLOC).

I'm not a guru, as some other posters here, but I have found ASP.NET to be not only easier, but more powerful, reliable, and performant than ASP, for what it's worth.

I'm not sure what "too easy" means. Is it easy? Yes. For example, preparing a dynamic table of data requires about 6 lines of code to fetch the data from a database, and a single line of HTML to declare the DataGrid that will hold it.

That's out-of-the-box functionality that will doesn't rely on custom libraries, so it's a reusable solution on any project. Of course, your database access code can be wrapped up in a custom object/library if you choose. And the DataGrid that creates the table for display is highly customizable and feature rich, if you care to explore it.

What you get in ease, you do not sacrifice in power, however. The .NET Framework is robust and fully OO, providing lots of opportunity to extend the Framework to simplify your own frameworks and applications.

After working in .NET, I'm loathe to return to ASP. The .NET Framework and redistributable (required to run ASP.NET applications) is a free download from Microsoft:

http://msdn.microsoft.com/downloads/default.asp?url=/downloads/sample.asp?url=/msdn-files/027/000/976/msdncompositedoc.xml

Ian Lowe
Wednesday, January 23, 2002

Walter:  Point taken. 

As someone who develops primarily in MS Access/VBA, I have plenty of first hand experience of projects gone awry when done by people who try to do it themselves using these easy tools, or by incompetent "programmers".

I see your point, and I'm sure it has some validity.  But I'm still not sure that it's necessarily a bad thing to have "easy" tools that bring power to the masses.  It can be very empowering for "power users" to do simple projects with easy tools.  They just have to realize when they're getting in over their heads, which is usually when their "little" pet project for their own use starts to become something for other people's general use.  And I'm sure you're right that easy tools cause a lot of wasted time and money in development.  (Question:  Are harder tools much better on that issue?) 

In any case, even if an easy programming tool were definitely bad in the way you describe,  to decide whether it's a bad thing in general we'd have to weigh the detriment of providing easy tools to bad programmers against the benefit of giving good programmers tools that make it easier and faster to do more complicated stuff.  The fact that a programming tool is "easy" isn't in itself a reason to say it's necessarily bad.

I haven't used any .NET tools yet,  and I don't really know enough about them to have any opinion.  But you've got me reconsidering things.

Herbert Sitz
Thursday, January 24, 2002

Herbert,

Your points about not blaming the tool are certainly valid.

VB has a somewhat tarnished reputation because of the output of a significant number of VB developers, not really because of the language features. (This is really a problem with all RAD environments).

It seems that many clients, job agents and even IT managers (many IT managers come from a sys admin background, but end up managing development staff because IT is frequently lumped into a whole "magical" bundle in organisations) frequently cannot or do not make qualitative assessments of "their" developers.

This presents an interesting question: how can the quality/ability of a developer be meaningfully determined or measured? Can it? ISO 900x certifications, for instance provide no accurate reflection of developer quality.


As for my thoughts on ASP.NET based on the little I've seen - generally positive, but I don't like the automatic HTML generation:
* I don't believe it will scale to the range of clients it aims to (PDAs, browsers, WebTVs, phones, etc).
* As seems to be the case with most of these facilities, the HTML is much more bloated than it need be - far too many people still use dial-up connections and while that is the case pages have to be aggressively optimised.

Walter Rumsby
Thursday, January 24, 2002

I think many of you are mixing up functionality in VS.NET with ASP.NET.

Yes, with VS.NET any idiot can probably whip up some cheap solution. But with VS.NET you can also make a professional, robust and clean architecutre; If you want, you don't have to touch the forms designer (I prefer this method).

What sets ASP.NET apart from ASP are the features it contains:

1) Caching (!!)
  a) Fragment Output
  b) Page Output
  c) Data
2) Performance with SQL Server
3) Templating (Custom controls)
4) Validation
5) Security

(5) IMO is a biggie. There is so much you can do! I remember spending endless nights on creating a custom authentication model in ASP. With .NET, a lot of stuff is built in (http://www.4guysfromrolla.com/webtech/121901-1.shtml).

The only thing that is lacking at the moment is an integrated IIS, which is coming with .NET Server (IIS6). Surprise, surprise :O)

anon
Monday, January 28, 2002

I am spoiled by Delphi's OO technology as well.  ASP.NET is a robust architecture for web application development that takes the advantages of the OO technology.  The component architecture is wonderful and the codes can now more reuseable.  I found that I can reduce much tedious codes that I did in ASP and JSP. 

The Codebehind (with compiled codes), Viewstates and server control components are innovative improvement in web application development.

The main disadvantage is the cost.  I know that PHP and JSP are free and robust web platform, but they are lack of the robust oo components and architecture that ASP.NET is offering.  I'm trying to find out if there are any web environment that can compete and compare with the ASP.NET.  Do you know if there are the open source projects that are working with the similar technologies of Codebehind and viewstate?  If you know, please let me know and learn more. 

Donny Lai
Sunday, August 04, 2002

how about templating in asp.net?

na
Monday, April 14, 2003

I am a software developer started c++ now also c# done some VB. It is always good to know the underlying thing but please step into year 2003 insted og 1980. You have to accept sp much new stuf has come and a lot of things  is to complex to deal with today because og the the speed you have to make thing. There are excelent VB programmers exelent c++ ..... and so on. It sounds like somebody in here are afraid og loosing there jobs because og there lack og will to move to better and newer tools. No doubt asp.net is a brilliant tool to work with. Yes its is taken from java but so what? Thats the world to day, learn og others and make it better thats how a firm survieve.

segaTo
Monday, August 04, 2003

I have been developing web site with PHP for 5 years, I ws able to get up and running with PHP in less than a week. Microsoft touts that .NET is so friggen easy - I'd like to know what they did there comparison on. For 2 weeks I have been beating my head against the wall trying to learn ASP.NET/VB.NET, I have readover 200 articles and have bought 15 books and every DAMN!!! one of them assume a very high level of prior knowledge of using Visual Studio.

So why is it so damn hard to find tutorials that walk you through the complete process of building a web site.

If I see another 'Hello World' example I am going to puke.

Am I worng in all of this, am I simply missing something? How the hell can anyone learn this stuff if all the tutorials are for advanced users, how do you get to that point.

I have 30 days to turn out a site and looks like it's going to have to be done in PHP, where I can count on finding all the info I need.

.NET - HAAA!!! more like .SUCKS!!!!

J LoMoglio
Thursday, April 08, 2004

*  Recent Topics

*  Fog Creek Home