Q:

How to start creating a WPF application that communicates in real time?

I am trying to create a WPF drawing application. Is there a way to create a distributed WPF application that can "communicate" with the same app on another computer in real time (like sharing my drawing with another user in real time). 
I don't need help with the code but I'd be grateful if someone pointed out the right architecture for these type of app's and which design patterns are good.
I am fairly new to software engineering (student) and I'm trying to figure things out. My idea was to use WPF, WCF, MsSQL so I'd like to know if I'm missing something and are these the correct tools. 
Thanks again for every piece of advice! :)

A:

First, every WPF application should be identified. Most straight forward way to do that is require authentication (regular user name and password). After successful authentication, persistent two way connection is created from it to server. If you use WCF (though I'd stay away from it) - use duplex channels. If your server is for example ASP.NET MVC web api - use web sockets or SignalR.
Now you have multiple applications all connected to your server, and you know which connection belongs to which user. You start a drawing session by user A and this user says he wants to share it with user B and C. You send a request to server, which then sends a message via connections belonging to user B and C. Applications of users B and C display empty drawing screen which will mirror actions of user A.
When drawing, you need to serialize all user actions and send them to server (which again forwards them to connections of user B and C). For example, if user draws line, you can serialize and send:
class DrawLineCommand {
    public Point From {get;set;}
    public Point To {get;set;}
}

Or if you fill a rectange:
class FillRectangeCommand {
    public Brush Brush {get;set;}
    public Point TopLeft {get;set;}
    public Point BottomRight {get;set;}
}  

Then you just replicate received commands on user's B and C applications.
Of course it might be some more complex than that, but should give you the general idea.

