In our project, we have a number of programs that communicate with each other internal in the computer and over the internal network. To solve this we use today COM/DCOM. We think, however, that DCOM is far too complicated. How to configure the security settings change for each version of Windows.
We are therefore looking for a protocol that enables communication between our different programs on different Windows computers and who do not have as much overhead as DCOM.
The programs are written in C++/MFC and C#
Security is not so important as the system runs on a small local network completely divorced from other networks.
If you need guaranteed message delivery and support of transactions - the best option would be using any messaging subsystem. If you are completely sure that all your system will be running on Windows machines - MSMQ is your choice. It can be installed easily from Windows components setup. If you expect some nodes to be working on other OS - lurk more about RabbitMQ. There is a variety of messaging subsystems that can be used, i.e. IBM MQ or Tibco Messaging.
As it was mentioned above - I would agree that MassTransit could be a good option to work with MSMQ but will require some initial learning and architectural approaches to be followed. Open source and free to use. NServiceBus is the same beast, probably more polished, but it is not free to use. Very expensive as for me.
If you will decide to use RabbitMQ, have a look at EasyNetQ wrapper.
However, if you don't need guaranteed delivery between apps - why not to use REST services using MVC4. It is far more quick to set up and you will be able to easily support other platforms clients, like iOS or Android devices.