Home
4Art
    Favorite Artists
    Personal Art
    Tutorials
4Education
    Astronomy
    Cryogenic Fluids
    Logic & Circuits
4Personal
    Dallas Photographs
    Cancun Photographs
    Hawaii Photographs
4Professional
    Business Skill
    Employment History
    Programming
    Web Administration
4Recreation
    Television
    Gaming - RPG
4Administration
    Navigation
    Sites
    Users
    Groups
 
 

ASP.NET annoyances:

1. Have to compile the project.

Many people regard this as one of the strengths of dot-net. I guess that I'm kinda gunshy about compiled web apps, (and compiled business applications in general) because when I took my current position, I was handed many compiled applications to support. I did not receive any source code. It was apparently lost, after the author left the company. I was basically helpless to fix bugs, and helpless to even answer simple questions about the application. I had to rely on network traces to even figure out what database it was working with. Over time I've been required to re-write all of those applications, because of issues that would have been easy to fix.

Ultimately, it's an issue of source code management. My company didn't do this very well. We're better now, but it still isn't handled consistently. Without proper source code management, compilation is a liability.

Less importantly, it's an extra step required in the publishing process.

2. Web Site (HTML) Management -- the original purpose of the web script.

If I have an HTML page, I can use Server Side Includes (SSI) and Cascading Style Sheets (CSS) to apply a server-wide look and feel to a page. Here's an example of a web page that makes use of this:

<HTML>
< HEAD>
<TITLE> Sample Page </TITLE>
<LINK REL="STYLESHEET" TYPE="text/css" HREF="/includes/web.css">
< /HEAD>
< BODY>
< !--#include virtual="/includes/header.html"-->
Hello World.
< !--#include virtual="/includes/footer.html"-->
< /BODY>
< /HTML>

With classic ASP, I can put dynamic controls in the header and footer (i.e. breadcrumbs, global navigation, date last modified, statistics about the page, etc.), with a little slight-of-hand. I can have 100,000 content pages in a complex heirarchy of 30,000 folders that won't need to be touched in any way, shape, or form to make minor look & feel modifications and even complete site overhauls. ASP.NET doesn't really address this type of problem at all.

With ASP.NET, every piece of content has to be part of an application in order to receive the benefits of ASP.NET dynamic controls. You have to register and call libraries for headers, footers, and dynamic elements. You basically buy into a lot of complexity by moving to dot-net.

3. Excessive Objects

This is one of my major gripes against SDKs, APIs, and Frameworks in general. There is too much "stuff" in there that I don't need. When you look at a typical database/workflow system, there are probably 100 or fewer objects that you really need. Let me catalog them for you:

Important Object Types:
a. String object
b. Integer object
c. Number object (float)
d. Date/Time Object
e. Array Object (preferably an ArrayList!)
f. Request object
   i. String array of CGI/ISAPI Variables
   ii. String array of Form variables
   iii. String array of QueryString variables
g. Response object
   i. HTTP variables (response codes, HTTP headers)
   ii. Methods to write output
h. Database object
i. Recordset object
j. File System object
k. Folder Object
l. File Object
m. Socket object

Really nice Additional Object Types:
n. SMTP Delivery Object
o. POP3 Retrieval Object (and/or IMAP)
p. HTTP Retrieval Object
q. Ping/TraceRt Object
r. FTP Object
s. NNTP Object
t. gif/jpg/bitmap object(s?)

Well... we're at 20. If I've oversimplified things a bit, you could double it and call it 40. I've pretty much exhausting every need I've ever had. Now... don't get me wrong. I like making my own objects and data structures -- it simplifies things quite a bit. I wouldn't mind if Microsoft put a couple hundred classes in dot-net to meet the typical user's needs. I just think 30,000 objects with 180,000 properties and methods is ridiculous.

4. Illogical Object Hierarchies with strange relationships and Enigmatic Abstractions

Damn. I don't even know where to start on this one. I don't have these object heirarchies memorized, yet (or probably ever), but Dot-Net is a mess.

5. Partially Complete

One of the neat things about dot-net is that it's very easy to do some things that take a lot of effort with traditional tools. As an example, Dot-Net includes a lot of data validation routines written in javascript. So, if I want a user to enter a date in a certain form control, I can very easily put a data validation constraint on that field. Here's the problem: If I want to force the user to put a date, dot-net is cool. If I want to force the user to put a date/time, I'm screwed. If I want the user to enter a date OR LEAVE IT BLANK, I'm screwed. By screwed, I mean that I can't even manually write the javascript to do this, because dot-net exercises a lot of control over client-scripting events.

(actually, if anyone is trying to use this list for any professional purpose, consider this: It appears that there are ways of dealing with this... I'm still a neophyte on some topics. This is something that annoys me and pisses me off, but it's not high on my list of things to understand. I can do data validation on the server-side, which is what I rely on right now. I will eventually understand this better)

6. Strongly Typed Data, and Excessive Data Types

So... I have a String variable, and I want to read in a String from my database recordset. The database has a NULL in that field. Crash. So... every single person who writes dot-net code and speaks to a database (i.e. every single person who writes dot-net code) has to write some kind of handler routine for that. Probably to put an empty string into your string variable. Gee, thanks Microsoft. This is, naturally, much nastier with a variable of type Date, where there is no reasonable interpretation of a NULL.

7. "Application Settings"

Each ASP.NET application must be defined as an application in IIS in order to function. You need to have a web administrator physically configure a folder on your webserver for each application that you write. WTF?

8. Organization & Folders

There are no folders or organization within an ASP.NET project. Every single file related to a project sits in the same folder. Do you like to segregate your images, web pages, CSS, Javascript, objects, and includes? Forget about it. Not in dot-net. Also, there are ASPX, XML, and and code-behind files for every page. A very simple project (i.e. 10 pages or so) can easily be 100 files in a single folder. While this isn't a major impediment in development, I think it's sloppy and unprofessional.

9. General Technical Glitches

I have an ASP.NET application in a folder. The folder, in IIS, is configured to require integrated windows authentication, and the folder in the file system is restricted to certain users. For some reason, this fails -- periodically -- on every Windows 2003/ IIS 6 server I run it on, even though I don't deal with authentication beyond the two points listed above. I've had the "Microsoft ASP.NET Team" from premiere support looking at it for the last two weeks. It's a measly couple hundred lines of code.

 
 
 
 
Email comments to: Joshua Jacobsen
Last modified: 1/29/2005 2:16:34 PM
Make This Page Your HomepageMake This Page a FavoritePrint This Page
URL for this page: http://www.drowlord.com/Professional/Programming/dotnetannoyances.html
Copyright© 1999 - 2005 Joshua Jacobsen