ViewModelLocator is a fancy name for the navigation bus used for inverse control (IoC). Although this seems to be a newer technology, the navigation bus does use the service bus differently. This is not an anti-pattern if you have a static (shared in VB) container. An anti-pattern is included if you pass the container in your ViewModels.
In MVVM, remember that this is a universal design template, and you can expand it in many ways. The best solution for large projects is component design (a design in which each function of your application is in its own namespace or project).
The design may look like this:
etc ... It really depends on the taste of the developer. As long as your design is consistent.
Further reading: To better understand what ViewModelLocator is looking for on the Navigation Bus . To better understand EventAggregator, find the Message Bus
source share