Yesterday there was this announcement from the VB-team.
In a previous post I wrote about the difference in namespaces between VB.Net and C#.
On a project level C# uses a default namespace setting which means you can just overwrite it at the class level.
So if you create a new class you will get something like this.
```csharp using System; using System.Collections.Generic; using System.Linq; using System.Text;
namespace C_Class_Library_1.NewFolder1 { class Class1 { } }``` But if you so desire you can change that. To this.
```csharp using System; using System.Collections.Generic; using System.Linq; using System.Text;
namespace NewFolder1 { class Class1 { } }``` Which means that your class is in a different namespace than all the other classes in your project.
In VB.Net this was never possible, because they use a root namespace at the project level. Which means that all classes in your project will be under that namespace.
You can of course cheat and not set a root namespace and then set a namespace on each and every file/class.
But in VB11 you will no longer have to do this.
You can now override the root namespace setting by using the Global keyword.
So if I do this.
```vbnet Namespace Global.NewNamespace Public Class Class1
End Class
End Namespace
Public Class Class1
End Class``` So I can now call the above classes like so.
vbnet
Dim _class1 As New NewNamespace.Class1
Dim _class1_1 As New VB_Console.Class1
Perhaps not the coolest feature ever but it is new. But to be honest we would have prefered having project Roslyn in this version.