You forgot the last step - after you hit those keys you must still type or choose the snippet list. Compare to C# where the workflow is much more streamlined - I just type the name of the snippet and intellisense shows the list of snippets (as I'm typing). Huge difference.
> The equivalent to the automatically inserted namespace is the "Root namespace" field.
No, it's not. If I add a folder in C# (again, where the workflow is much more streamlined) - it automatically becomes a namespace. 99% of the time this is what I want. In VB.NET, when I add a class to a folder, it does not automatically use the folder name as the namespace. Instead, I have to open each file and add the namespace myself.
> Members of a Module can still be qualified with the Module name - it's just optional when there's no ambiguity. BTW, "Extension Methods" are available in VB since VS2008.
There is no concept of a "Module" in the .NET framework. That's a VB.NET thing and that's why I say that C# is more in line with the .NET framework. The framework has static classes, C# has static classes, VB.NET has...no static classes.
I know that VB.NET has extension methods, what I said was that you're forced to put them in a "Module", which means that every extension method now shows up globally. Meanwhile in C#, the more streamlined language, things work the way you'd expect: Extension methods only show up on the class-instances that you're extending.
> Each have quirks that make them a mixed blessing.
Right, but one has way more quirks. One of them adds a layer on top of the .NET framework that invents concepts that don't exist in .NET and one has more complexity and kruft than the other. That one is VB.NET.
One more example for the road: In C#, when I have my cursor on a method and I hit F12/Go to definition...I am taken to the actual definition of the code where I can see attributes on the method as well as the actual declaration. Do the same in VB.NET and it takes you to the Object Browser where you can't see any of that. So yeah - I'm sticking with my conclusion that Visual Studio is busted for VB.NET.
You forgot the last step - after you hit those keys you must still type or choose the snippet list. Compare to C# where the workflow is much more streamlined - I just type the name of the snippet and intellisense shows the list of snippets (as I'm typing). Huge difference.
> The equivalent to the automatically inserted namespace is the "Root namespace" field.
No, it's not. If I add a folder in C# (again, where the workflow is much more streamlined) - it automatically becomes a namespace. 99% of the time this is what I want. In VB.NET, when I add a class to a folder, it does not automatically use the folder name as the namespace. Instead, I have to open each file and add the namespace myself.
> Members of a Module can still be qualified with the Module name - it's just optional when there's no ambiguity. BTW, "Extension Methods" are available in VB since VS2008.
There is no concept of a "Module" in the .NET framework. That's a VB.NET thing and that's why I say that C# is more in line with the .NET framework. The framework has static classes, C# has static classes, VB.NET has...no static classes.
I know that VB.NET has extension methods, what I said was that you're forced to put them in a "Module", which means that every extension method now shows up globally. Meanwhile in C#, the more streamlined language, things work the way you'd expect: Extension methods only show up on the class-instances that you're extending.
> Each have quirks that make them a mixed blessing.
Right, but one has way more quirks. One of them adds a layer on top of the .NET framework that invents concepts that don't exist in .NET and one has more complexity and kruft than the other. That one is VB.NET.
One more example for the road: In C#, when I have my cursor on a method and I hit F12/Go to definition...I am taken to the actual definition of the code where I can see attributes on the method as well as the actual declaration. Do the same in VB.NET and it takes you to the Object Browser where you can't see any of that. So yeah - I'm sticking with my conclusion that Visual Studio is busted for VB.NET.