Over the last week, I have been able to have a bit of a play with the new Beta of Visual Studio and it has a lot of great stuff in it.
One of the initial things I came across was a single instance settings for WinForms. If the single instance setting is set, when a new instance of the application starts and there is already an existing instance running, the command line parameters of the new instance are passed to the existing instance, and the new instance is shut down. In the previous versions of VB, I had to include a decent amount of code to get this working (see VBAccelerator for a good example).
This is another example of how Microsoft are trying to do more work for us (obviously so that we don't have to). All of these types of features really help to speed up development times. As far as the single instance feature goes though, I do have one problem. It is a design-time setting. Why can't it be a runtime setting as well? This means that the app can only be single instance or multi-instance. To get runtime switching of this feature, you have to go back to coding it yourself.
The newer versions of Visual Studio have come a long way as far as what you can do with the inbuilt functionality at runtime, where those features were previously design-time only. The question I always ask myself when I see new design-time settings is whether there is a valid case for that setting to be changed at run-time. If it is a feature that could be more useful if it was settable at run-time, why make them design-time only in the first place? The two obvious answers to that question are that either a) they didn't have time to build the features as run-time configurable or b) the designers disagree with my opinions (I don't BTW really want that question answered :P).
Tags: