At work I have to use ASP.NET. As if that weren't bad enough, I have decided to use Visual Web Developer to help me because I don't want to pollute my limited PHP parts of my brain with .NET. VWD sucks. Here are my favorite reasons why it sucks. (I've only been using it for a few weeks - more may come)
- If you want to show the data from a table on a screen you can just drag/drop the table to the page, edit some things in some wizards and it works. Great! Now, the formatting of the columns is all stupid, but I'm sure the developers said "Well, how should we know how to format the columns". How about using the data type from the datasource? VWD is aware of that because it throws in things like Type="Int32" to some of the items that it magically inserts for me. So when it sees a "money" datatype, why not format that puppy as a freaking currency string.
- If you want to format a BoundField you use a DataFormatString to set it. That's fine and well documented. Only problem is, that it doesn't work. Seems that within the first few months of public release, many other people have stumbled upon this problem. So, not only do I have to set the format string I want to use, but I have to set HTMLEncoding to false. It's like walking into a Chipotle, ordering a veggie burrito with black beans, and being asked if you want a hot dog. Dumb.
- Some people actually pay for this thing. I got the free "express edition" which is aimed at students so it shows you how to spend millions of hours building a gallery friend site application when you could just be like me and use Drupal and spend more time making it cool and less time making the base.
- It is slow as cuss. It takes a few minutes to open on my work laptop (Dell D600 - fairly high end) and then it takes a few more minutes to start it's internal server for the "test in browser" feature. Is this reasonable? Hell no. I've used a variety of these systems over the years and this thing is the slowest even though it only provides marginal (if any) additional functionality over previous versions.
- In the various controls you can click off "Enable paging" and "Enable sorting" and "Enable Editing" and it will magically create forms to do these things. But only some of the time. Exactly when and why - it took me a few days and some searching to figure out. You see, they have this system called "smart tags" and when you click on them they will allow you to do relevant operations on the control. This is generally a nice idea, but it's a volatile interface: sometimes the "enable" options are there and sometimes they aren't there. Why? What causes that to happen? After several days of making controls in a variety of different methods I figured out that you have to have a SelectCommand and a DeleteCommand and an InsertCommand and a ... in order for those items to be enabled. And you have to have a unique ID in your select and the query has to be simple to enable paging. Ok, you may say that's a reasonable requirement for programming, but here's where it's not: this thing is supposed to be easy point and click working. A volatile interface doesn't make it easy for me to discover why those items are disabled. Instead, the checkbox should be greyed out and disabled and it should give me a tooltip when I hover on it: "Create a DeleteCommand statement to activate the 'Enable Delete' function". Doyoyoy.