I like my taskbar to have as few items as possible. Honestly, I like my notification tray to be minimal, too, but that seems to be getting worse and worse. With that in mind, I have to say I like apps that make judiscious use of both of these areas. Outlook doesn't really do a good job of that. At times, there will be 3 items -- the main taskbar item and 2 notification icons. I'd like to see the ability to minimize Outlook to the notification tray. I tend to have a lot of different apps open, so if I can minimize what's on my taskbar, I'm happy.
Released in Outlook 2003
In the IE7 betas I've tried, sites that exist in different zones cannot be opened in the same window. This is a very big annoyance that can lead to pop-up hell. One instance that drove me crazy was when I had a site that used Windows Live (WL) Accounts as a trusted site and not the actual WL sign-in page. First, since I use tabbed browsing as much as possible and opened the trusted site in a window with tabs already open, the trusted site was redirected to a new, trusted window (window count: 2). When I clicked the sign-in link, the WL sign-in page was opened in a new, non-trusted window (window count: 3). After I sign-in, I'm redirected to the original site, which is trusted and must be in a trusted window. So, what happens? Yet another window and I'm finally logged into the site. That's 4 windows just to get logged into a site. I had to do it again just to be sure I didn't do something wrong.
Ok, this may sound like an odd request, but I want the ability to use String.IsNullOrEmpty() on objects. Why, you ask? Whenever dealing with some object which must remain generic, like a DataReader, for instance, the class typically returns objects. It would be nice to be able to use String.IsNullOrEmpty() directly on the object without having to cast it -- leave that to the method itself. I'm thinking of something like this: String.IsNullOrEmpty(myObject). Pretty simple.
I love the new String.IsNullOrEmpty() method; however, I need something that will go one step further. I want to know when a string is null, empty, or only has white space characters in it. The custom library that I've been working on for several years uses IsEmpty() to check null/empty and IsBlank() to check for null, empty, and whitespace. Give me something like that. This could be very helpful and encourage people to check for whitespace. All to many times I see whitespace-accepting textboxes in applications. Having such a handy feature might help alleviate that. While I would like to see String.IsEmpty() and String.IsBlank() methods, which are less wordy, I'd be happy with something like String.IsNullOrEmpty(string, bool) where the second parameter would indicate whether to trim the content.
First, let me say that this may not even be a big deal. I simply thought about it after hearing a few to many confusing directions. Have you ever been given directions to someone's house and they can't decide whether you should take the faster or shorter route, both of which consist of 20-some turns? There's got to be a simpler way, right? Well, maybe... Honestly, like I said, this may be stupid; but, I'd like to see the ability to get the "simplest" driving directions. These directions may not be the shortest or fastest way, but my hopes are that they'd give you the least number of turns. Why, you ask? Well, I personally hate giving directions for the first time and trying to figure out which of the 10 ways I'd like to suggest; especially considering I'd use them all, given the different set of circumstances that may be thrown at me.
I don't think the title I'm using is really getting the point across. What I'm really wanting is for the details behind code analysis warnings to let me view a report of a potential savings. This probably won't apply most of the time, but for something like the performance section, it's a huge deal. I want to know how much the corresponding change will benefit me. The reason this came to mind is because I'm working thru a group of projects that have around 15,000 code analysis messages -- yeah, it sucks. Well, I may or may not get thru them all, but the performance issues are the most important. Because of this, I'd really like to know exactly how each individual change may affect the system. Granted, I'm willing to accept the fact that the results may vary, but give me a general idea. Most of the perf changes I've seen will be of minor benefit... well, that's my logical determination based on the limited knowledge I have of the CLR inner-workings. I'd like to see an assessment of which changes will be most valuable and start with those. That information would be invaluable in a situation like this.
Code analysis is a wonderful thing and so is refactoring. With so many code analysis fixes that are simple refactoring techniques, why not create a simplistic way to refactor code for code analysis tweaks!? Honestly, I'm not surprised it's not in the existing release and I do expect that it will be in there in the future, but I haven't heard of anything like that, so we'll see.
One example is the code analysis performance warning regarding unnecessary casting (CA1800). This comes up a lot when you check to see if a generic object is of a more specific type and then cast it after that check. Instead, the practice is to use the as keyword, which will default to null, if the types aren't compatible. Consider this before and after block as what the refactoring could do...
if (someObject is CustomObject)
CustomObject custom = someObject as CustomObject;
if (custom != null)
Not only is the code easier to read, it's better performing. Then again, I'm not arguing for or against the code analysis. I simply want this simple task automated.
One feature that I love with Firefox is the ability to opt out of password reminders for any given site. This is useful for those sites a user may feel contains information too valuable to provide such quick and easy access to.
Here's something I just ran into this week: the need for a case-insensitive switch block. Why, you ask? Let me describe how I came across the issue. Code analysis reports excessive/unnecessary ToUpper() and ToLower() calls because they can become a performance problem -- granted, a minor one, but it's a hit nonetheless. Typically, this happens when you're comparing two strings and you don't care about their case. Instead of the ToUpper() call, code analysis suggests the use of String.Compare(), which can do a case-insensitive search. Well, that's great and fantastic, but when you're doing this in a switch block, that's not quite possible. I could've changed the code to use an if block, but that would've been more of a readability/maintenance problem. Basically, all I'm looking for is a switch block that accepts a string and a boolean value indicating whether it's case sensitive or not -- something like this: switch (string, bool). Behind the scenes, the compiler can change that to use String.Compare() inside an if block or whatever the appropriate IL should be. I imagine this performance benefit of such a feature would be somewhat minimal, but I thought the idea was interesting.
One of the great features of Visual Studio 2005 is the ability to dynamically add namespace declarations to your using/imports block at the top of the document while you're hacking away at code. As anal as I am about my code, I just wish the namespaces would be grouped and ordered in some fashion. All the feature does is toss the namespace to the end of the list; however, what I'd like to see is the ability to configure a rule for how to group and order the names. I think the best way to explain myself is with an example. So, let's say I'm using 6 namespaces: 3 .NET BCL namespaces, 2 third-party namespaces, and 1 namespace from my app. I want them all alphabetized and grouped as such, like so...
This is helpful for when you're looking thru the file, you can see the namespaces at a very quick glance. Granted, you don't really need to look at them much, but if they have to be there, it only makes sense to put them in some sort of logical order.
I absolutely hate the Today screen in Windows Live Mail. I'm sure some might use it, but I don't. I go to mail to do exactly that... look at mail. Why are you wasting my time with this blank screen? Sure, I know that it can do some nice social networking stuff with your contacts, but I think I'll pass. Give me the option to just look at my mail. That's all I want... well, and a million dollars, of course.
Edit: I just submitted this via the public WL Feedback mechanism.
Edit: This is now an option in the latest internal version of WL Hotmail! THANK YOU!!! I believe this will be out in Fall 2007, but I haven't seen any absolute dates.
I haven't posted feedback in a few weeks, but I have a back-log of suggestions I want to get posted, so I'll try to keep it up a bit more. To start, I'll bring up an annoyance I have with IE. As I'm sure you know, IE7 introduced tabbed browsing. Unfortunately, the default install of IE7 isn't setup for full usage of this great feature. This seems stupid to me. If you're going to introduce a, dare I say, revolutionary new feature, you should encourage its use by enabling it by default. I just don't see any reason not to. Anyway, IE has 3 options when determining how you want pop-ups handled: new window, new tab, or let the browser decide. While I'm almost ready to say that I want them all forced into new tabs, this might cause more problems than it would help, which is why I always let the browser handle it. I have to say that I'm very satisfied so far, but I just don't understand why it's not the default setting.
Obviously, this is the first time I've seen the VS diff utility, otherwise I wouldn't be posting so many issues in a row, but I've got one more. This time, it's a bug -- granted, a very, very trivial bug, but a bug nonetheless. When you click the Previous or Next Difference toolbar button and keep your mouse hovered over it, the image disappears. Well, let me qualify that. This only happens when you press the previous button on the second change or the next button on the second to last change (namely, the last click that ultimately disables the button).
This is one that I've found absolutely invaluable over the years: viewing line differences in a diff utility. The VS diff utility doesn't do this, which left me wondering where, in the 100+ character line, the change was. This is annoying. The UI should show me exactly what has changed. When picking my favorite diff utility, this was a top priority for me. I think that anyone who utilizes diffs on a daily basis would have to agree.
This is a pretty easy one, which I expect to be in the next version -- at least it should be. Syntax highlighting is a must-have in any code environment. Diff utilities are no different. There really isn't much else to say about it. This one's pretty cut-and-dry.
The diff utility available on the Check-In dialog in Visual Studio Team Edition (Compare option on the context menu) is very basic. I'd love to see this support editing of the file(s). Well, files that can be edited. I'm not sure if this diff utility can be applied to 2 files not in a version control repository, but if so, both should be editable. If not, obviously, only the local version would be.
For those questioning the usefulness of 2 local file comparisons, you obviously haven't been working in the configuration management (CM) world for very long. This can be crucial; especially, if you're managing the repository.
One thing I'd like to see added to the ASP.NET AJAX Control Toolkit is the ability to sort table columns. I worked on a project that had this in the past and I really liked it. Granted, ASP.NET has this capability built into a number of controls, but this feature was completely client-side. I may see if I can get a hold of that and create an extender myself, but that will all depend on the time I have and the customer's desire for the capability.