I have used IPC in Win32 code a while ago - critical sections, events, and semaphores.
How is the scene in the .NET environment? Are there any tutorial explaining all available options and when to use and why?
Most recent Microsoft's stuff in IPC is Windows Communication Foundation. Actually there is nothing new in the lower level (tcp, upd, named pipes etc) But WCF simplifies IPC development greatly.
Useful resource:
and of course MSDN on WCF