VS.NET "features" penalize VB.NET developers?
angryCoder states some relatively valid rants about VS.NET making some things easier for VB.NET developers; but causes problems when using command line tools to compile the code.
I love how this entry starts out. It’s obvious that the message is getting out about VB.NET being a first class citizen.
However, I think that he’s missing something. Most VB.NET developers are going to use Visual Studio .NET. VB developers are traditionally RAD developers used to using the development environment. So anything that eases the development process when using the environment is accepted with open arms. Sure, some things may be “hidden”; but they are accessible (which is a change from prior versions of VB).
Also, as pointed out in the comments posted to his blog entry; you have the ability to add these “hidden” items to the command line compiler.
I don’t completely disagree with everything that he’s stating. I’m just saying that the problem that he is pointing out will be affecting a finite amount of VB.NET developers and very specific usage environments.
However, to add to this; it is a little confusing the way that VB.NET does the namespace. Part of it is in the configuration; while the additional parts to the namespace are in the code. That’s my rant about how it is setup. Even understanding how it works is still a bit confusing. You put the base namespace in the projects configuration, then you add to that namespace by adding the namespace entry to your code. What if I want to have a portion in my assembly that has a completely different root namespace? It appears that the only way to do this is to create another project with it’s own base namespace. Then if you want it in the same assembly; you must drop out of the environment to compile command line and combine them into the same assembly as modules.
This however leads into one issue that I find missing from Visual Studio (no matter which language you are discussing). There is no way in the environment to specify that you want to compile to the assemblies to modules so that you can combine all of the modules into a single assembly. I’m not sure how this should be done, but it’s weird that it’s not even an option to compile to a module and language a compile script to combine the modules from within VS.NET.
Also, he states “For instance, Visual Studio .NET always compiles ASP.NET web applications into a single dll assembly file.”; easy enough to fix. Put the different portions of your code into separate projects of your total solution. They will then compile to separate assemblies.