MVVM: When EventAggregator (aka MessageBus) is an Anti-Pattern

Very often we can see that developers tend to use static message buses for all kind of interactions between objects. For those, who unaware of this pattern I want to recall that this pattern allows organizing loosely coupled communication channel between objects which don’t want (or can’t) to know each other.
Let’s have a brief look at how a regular example of using this pattern may look like:

public class Sender {
    private readonly IEventAggregator eventAggregator;

    public Sender(IEventAggregator eventAggregator) {
        this.eventAggregator = eventAggregator;

    public void Action() {
        eventAggregator.Publish(new Message());

public class Receiver : IHandle<Message> {
    public Receiver(IEventAggregator eventAggregator) {
    public void Handle(Message message) {            

Continue reading

Learn Enterprise WPF with XAML from Scratch

My first course “Learn Enterprise WPF with XAML from Scratch” went live on and it you can buy it just for 10$! It is a great WPF tutorial for beginners!

In this course, you can learn deeply the concepts and tools that you will need to build fully functional UI-applications with the modern UI-building framework, Windows Presentation Foundation (WPF).

Teaching Approach

No fluff, no ranting, no beating the air. I esteem your time. The course material is succinct, yet comprehensive. All important concepts are covered. Particularly important topics are covered in-depth. For absolute beginners, I offer my help on Skype absolutely free, if requested.

Take this course and you will be satisfied.

Build a strong foundation in WPF with this course

Today, almost all applications have rich UI, console applications are very specific. Learning the essentials of WPF puts a powerful and very useful tool at your fingertips. Being familiar with WPF will make it absolutely easy to move to Universal Windows Platform (UWP) if needed because these technologies rely basically on the same principles and they are both XAML-based.

Continue reading

What Every WPF-Developer Must Know? Learn Basic Concepts

These days I’m working on a video course about Microsoft WPF foundations. And today I want to address some basic notions that every UI-developer should be aware of and be able to explain them. That will become an entry point for my WPF tutorial. The notions I’m talking about are the following:

  • DPI (dots per inch), PPI (pixels per inch). What’s the difference?
  • Pixel
  • Raster Graphics and Vector Graphics
  • Independent Pixel
  • Aspect Ratio
  • ClearType rendering

Continue reading