Refactor_UpdateNamespace now supports VB.NET too!

For those of you interested in using my DXCore Refactor_UpdateNamespace plugin (see here and here for more details) but hampered by the fact that prior releases supported only C# and not VB.NET, you will be happy to know that a new version is now available for download that corrects this limitation. 

Two Properties, Same Concept, Two Contexts (???)

Thanks to DevExpress support staff pointing me to the right DXCore API call, its now possible to use the tool in either C# -or- VB.NET projects.

Apparently the call I use in C#…

CodeRush.Source.ActiveFileNode.Project.DefaultNamespace

…is completely different than the call I need to use in VB.NET…

CodeRush.Source.ActiveFileNode.Project.RootNamespace

…which is pretty damned counter-intuitive if you ask me (and again speaks to why there needs to be better documentation around DXCore!)  Since both of these properties would seem to be representing the same conceptual thing, it may make (some) sense for them to be different within Visual Studio, but it makes about zero sense to me that they should be different in an API specifically designed to shield me from the vargarities of the arcane VS API.

But since I’m a consumer of the DXCore API and not a designer of it, I’ll simply assume there is a good historical reason for the difference and that it remains to this day due to a strong commitment from Developer Express to provide full backward-compatibility (but if it were me, I’d leave the public signature for both of these properties as-is but make it such that their implementation returned the same underlying value from Visual Studio regardless of language context…but that’s me and as I said they didn’t ask me and I didn’t expect them to 🙂

Download The Update

In any event, the updated binary is available for download here if you want it.  C#-only users need not bother to download this update as the only change between this and the last version is support for VB.NET.

Happy coding~!

UPDATE: Download link Removed

It has been brought to my attention that despite strong similarities between the C# ‘Default Namespace’ and the VB.NET ‘Root Namespace’, these two values are anything but interchangable — a fact further obscured by the fact that the VB.NET Project Property page actually has ‘Root Namespace’ in the same exact location in the property page as C#’s ‘Default Namespace’! I will be doing a follow-up post soon on these differences but for now, the download link has been removed b/c the new behavior I’ve provided under VB.NET for the tool is actually inappropriate for the VB.NET user!