Run Tests After Code Changes

By Michael Flanakin @ 6:00 PM :: 2346 Views :: Visual Studio, (Open), (Unreported) :: Digg it!

Most developers don't run tests after they change code. This is mostly about habit, but also about perceived inconvenience, I imagine. There's an easy way to get around that... make VS smart enough to have tests automatically run in the background when the code they're testing is changed (and obviously recompiled). To do this, there might need to be a way to specify what class members are tested in each test method, but that'd be good anyway. I find myself putting that in all test method comments, anyway. Whether that's added via a code comment or attribute, I don't care; although, the latter makes a little more sense.

Improve Built-in Check-in Policies

By Michael Flanakin @ 5:47 PM :: 2360 Views :: Visual Studio, (Open), (Unreported) :: Digg it!

As I mentioned yesterday, I like the idea of check-in policies, but they are pretty annoying for those of us who like to check-in as much as possible. Why? Because you always have to rerun code analysis and tests before checking code in. Most of the time, this isn't a big deal. If I make a minor change like correct spelling in comments, I have to rerun both. Tell me what test is going to change based on a comment. None. Admittedly, some code analysis rules check for that, but is that really going to provide you much of anything? I just want check-in policies to have some sort of logic to identify whether or not there's any value in running them.

Check-in Policy Exceptions

By Michael Flanakin @ 5:33 PM :: 2713 Views :: Visual Studio, (Open), (Unreported) :: Digg it!
I love check-in policies, but there needs to be more options. For instance, I like code analysis and would like to have it on all of my projects, but it just gets annoying when I have to run code analysis on test projects, which don't really benefit from the recommended changes. In order to do this, we need an exception rules engine of some sort.

Return to Inbox After Sending Email

By Michael Flanakin @ 7:12 PM :: 3433 Views :: Windows Live, (Open), (Reported) :: Digg it!

One thing I've always hated about Hotmail is the fact that, after sending email, the app sends you to a page to add the people you've just sent an email to to your contact list. I guess I could stand this if I used it, but the fact is I don't; at least not often. My main annoyance is that you're sent to this page even if everyone you just sent an email to is already a contact. The page is just a waste of time that forces users to make an extra click. At least skip it in this scenario. This minor change would definitely lessen the annoyance. If you really want to improve the experience, show me that info on the follow-on page in a small module, which would give me the same capability. Alternatively, Gmail automatically added these people as contacts in one of the early versions of the system. I think that'd be a good option, but wouldn't force it across the board.

I mentioned this internally, but didn't really get much out of it. I'm not sure what the thoughts are for the future. Others did, however, agree the page was wasteful.

Check-In Policy Exceptions

By Michael Flanakin @ 8:27 PM :: 2555 Views :: (Open), Team Foundation Server, (Unreported) :: Digg it!
I love the idea of check-in policies, but there are just some scenarios where you want to apply them on one project, but not another in the same solution. One obvious instance of this is with test projects. I'm all about some code analysis, but it makes no sense to waste the time applying or even scanning for code analysis violations. For this, I'd really like the ability to apply check-in policy exceptions to certain projects. This would make check-in policies much easier to deal with.

Consolidate and Integrate WL Storage

By Michael Flanakin @ 4:17 PM :: 3039 Views :: Windows Live, (Open), (Unreported) :: Digg it!

I like the fact that Hotmail now supports 5 GB, but SkyDrive is limited to 500 MB. 500... megabytes!? You've gotta be kidding me, right!? Well, I guess I'll get over all that because I know that limit will be raised in time. What I'd really like to see, tho, would be to have all of my Windows Live storage grouped together. That way, I have 5 GB across everything. I imagine this including mail, SkyDrive, and even files I'd like to upload on Spaces. I think Google just did this and I have to commend them for it. I'm sure some would like 5 GB on each individual service, but I don't need that much. I'm also hoping this would add additional integration between the services to allow me to attach SkyDrive files in email and/or show them on my Spaces profile.

Skip C# Component Designer

By Michael Flanakin @ 4:03 PM :: 3328 Views :: Visual Studio, (Open), (Unreported) :: Digg it!
I hate when I open certain C# classes and Visual Studio shows me a designer to tells me to drag items from the toolbox to get started. I'm not a drag-n-drop guy. I want the code. This makes sense for VB, but not C#, in my mind. I simply want the ability to default to the code view.

Generic Delegate

By Michael Flanakin @ 1:36 PM :: 1378 Views :: (Open), .NET, (Unreported) :: Digg it!

I'd like to have the ability to create a generic delegate to specify strong types of parameters. I imagine this should be fairly simple for the compiler team, but don't know if it's come up before. This would save casting in event abstract event handlers. For instance...

delegate void EventHandler<T>(T sender, EventArgs e);
delegate void EventHandler<T, E>(T sender, E e);

I want to say every event handler I've seen sends this (or Me, for you VB hedz), so there's no reason we should have to cast, leaving room for invalid casts and declining performance (albeit minor) for developers who aren't keen on these issues.

Organize my Music

By Michael Flanakin @ 6:29 AM :: 1187 Views :: (Open), Windows Media, Zune, (Unreported) :: Digg it!

I'm sure there has to be something that does this somewhere, but I'd really like to see Windows Media Player and the Zune player (not the device) have the ability to organize your music in several ways. I'm not one to keep up playlists. I hate the idea of updating different playlists when you add new music. Instead, I like to organize music by genre. Granted, we've had the ability to add a genre to music for years and players have been able to filter based on genre, too; but I guess I just liked the idea of right clicking on a directory and selecting Play with Windows Media Player. Very simple. Of course, Zune doesn't have this comfort. What I end up doing there is changing all of my genres to be in a handful of groups, like electronic, hip hop, rock, pop, etc. Typically, when I listen to music, I want one or the other, so this works best for me. After ripping a new CD, tho, the directories and file names are wrong. Sure, I have a little control with WMP, but not much. I don't think the ripping part is where I need the flexibility, tho. What I'm really looking for is a way to say, "Here is my music library; now reorganize it based on these constraints."

Like I said, I'm sure there are tools out there that do this. I haven't looked. While I love the partner ecosystem Microsoft has built around itself, I want these features in the tools themselves.

Add AddNew(new) Method to Generic Collections

By Michael Flanakin @ 9:02 PM :: 1103 Views :: (Open), .NET, (Unreported) :: Digg it!

I can't remember where I first saw the AddNew() method Add(new) concept -- or, at least the concept behind it -- but I liked it. I'd really like to see the same thing added to all generic collections. For instance...

List<Person> people = new List<Person>();
Person person = people.AddNew("Michael", "Flanakin");

I admit, this doesn't save you a whole lot of typing, but it is very convenient.  Essentially, I'd like every constructor to be represented by a corresponding AddNew() method. So, if I have default, id only, and a first and last name accepting constructors, I want 3 additional AddNew() methods...

public Person AddNew();
public Person AddNew(int id);
public Person AddNew(string firstName, string lastName);

As is, generics alone cannot do this with the level of integration I'd like to see, which would include reusing XML documentation already in place for the constructor. You can, however, hack something to give you this capability by using the params keyword powered by reflection in the back-end. Of course, I'd be worried about performance with an implementation like that. I don't see this being added, tho. The cost of implementing it probably wouldn't be worth the 6+ characters you'd save ("new " + name of class + "(" + ")"). Then again, perhaps this could be a mod to generics, which is already lacking, when it comes to constructor constraints.

Edit: I realized after posting this that it wasn't an AddNew() method I was looking for, but simply additional Add() methods. While this would save an additional 3 characters, the "is it worth it" argument is still there. I'd still say its convenience makes its case, tho. Maybe I'm just lazy. I changed the code samples are referred to this idea as the Add(new) concept, even tho you don't actually use the new keyword.

Open in Windows Explorer from Source Control Explorer

By Michael Flanakin @ 3:01 PM :: 1208 Views :: (Open), Team Foundation Server, (Unreported) :: Digg it!
This is something like my request to go to the Source Control Explorer from the Solution Explorer in Visual Studio Mobile-ready link; only this time, I want to go from the Source Control Explorer to the local directory I have a file checked out to. This would create perfect, seemless integration between the three file explorers. Of course, if the VS and TFS teams had any say in it, you'd never go to the Windows Explorer to get anything done. As nice of an idea as that is, it's just not feasible. Hell, I'm still looking for integration directly into the Windows Explorer shell. That'd be the best integration story, in my mind.

Support Protected Members in Interfaces

By Michael Flanakin @ 10:49 AM :: 1069 Views :: (Open), .NET, (Reported) :: Digg it!

I thought I mentioned this before, but I guess not. I really want to have the ability to create an interface which has protected members. An interface is all about forming a contract with consumers, right? Well, isn't a child class a consumer? I'd argue that it is. An example of what I'm looking for might be an interface for a domain object. I want everyone to get the id, but only want the class itself to set it. Another instance might be in a situation where you'd need to execute some method internally, like validate prerequisites for an event or something like that (see below). I typically need something like this when I want to enforce a standard implementation across the board.

public interface ICommand
    public long Id { get; protected set; }
    protected bool ValidatePrereqs();

Reported @

Edit: Looks like this is "being considered" for a future release. Not sure what that means, but we'll see.

Edit: Well, I guess "being considered" doesn't mean a whole lot. The idea was pretty much shot down by someone on the C# team. I feel like I didn't explain my point well enough; however, I understand his point. Essentially, protected members can only be accessed by child classes, so what's the point in having an interface member for a class that knows about its members? Sure, that makes sense, but that doesn't mean I don't want the capability. I guess I like it more for standardization than anything.

Move Files/Folders in WL Folders

By Michael Flanakin @ 1:53 PM :: 1013 Views :: Windows Live, (Open), (Unreported) :: Digg it!
I'd really like to see the ability to move files/folders around in WL Folders. I'm guessing this will be added in the future, but haven't gone thru the process of investigating that. That seems like a big deal to me. Perhaps in an updated release.

End-to-End ASP.NET Instrumentation

By Michael Flanakin @ 7:44 AM :: 1114 Views :: Visual Studio, (Open), (Unreported) :: Digg it!

I love the new profiling capabilities in Visual Studio, but there's still a gap when doing end-to-end performance testing and tuning. I'd really like to see the app get instrumented from beginning to end. While local devs won't see how constrained networks might affect their app, I think the perf tools can be smart enough to take the local tests and apply a few algorithms to show what kind of range of response times users should see, depending on their bandwidth and/or distance from the server. I know a lot of this might be a guessing game, but it'd be nice to at least have some numbers to see how big pages are and what user-focused response times are. At a minimum, I'd like to see the size of pages and the time spent requesting, processing, responding, and loading the page in the browser. Anything else would be icing on the cake. There was an entire office setup to do this when I was in the Air Force. Having it all built into the dev environment would save an immense amount of time and money; especially considering most devs aren't fully aware of all the factors that come into play and how they can tune their apps.

That kind of brings up another possible area of this end-to-end instrumentation. I'd like to tack on a best proven practice analyzer to the output that would make recommendations. Of course, not all recommendations are universal, but at least providing some pros/cons to each would give devs more info than they have right now.

Add IntelliSense to PowerShell Console

By Michael Flanakin @ 6:43 PM :: 1662 Views :: (Open), (Unreported), PowerShell :: Digg it!

PowerShell, along with a number of console environments, have the ability to tab thru some options, usually files and directories. Unfortunately, this doesn’t support enough, if you ask me. Even if it did support more, it doesn’t compare to true IntelliSense. I know this isn’t quite a feature of the standard console app, but to have the Visual Studio style IntelliSense would definitely make it easier to learn and work with PowerShell.