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.