What is the best mechanism for cross process transfer in Windows CE?

I need to send an event that can be captured by any application running on a Windows CE 5 device.

I have not done this before, so I would be interested to know what methods people would suggest to see if there is something that I did not consider.

All applications that should receive this event are based on the .NET Compact Framework, so "managed only" solutions can be considered.

+2
source share
2 answers

I swear I answered it somewhere - here, in the newsgroups, on the blog, something, but I can’t find it, so here it is again:

You really have 4 IPC options under Windows CE. Here I will focus on CF solutions.

  • Use a socket. This is pain, because the source of the event must be aware of the existence of the shell. This is by far my least favorite option, and I use it close to never.
  • Named system event (a-la the CreateEvent API). This works for a simple event like boolean like this. CE is good in that you can also associate a 32-bit value with an event (SetEventData). For a managed implementation, see this blog post (actual class in SDF ).
  • File with memory mapping. SDF has an implementation that I have used in several client projects, so it is pretty well tested. Someday I have to write a blog post on how to use it, but you are smart and you can probably figure it out from the docs.
  • point-to-point message queues. It is CE-specific, but the method is cool. The kernel uses them for a large number of system files. They are very fast and reliable. Again, SDF has an implementation . There is an article on MSDN about usage , but remember that the MSDN code has some errors in it that the SDF has fixed.
+6
source

Most of the solutions I saw there use their own messaging protocol.

.Net sockets are also used.

I know that there is WCF in Compact Framework 3.5, but there are limitations, and there have been quite a few reviews that say they are not reliable.

The biggest problem with most mechanisms is serialization version control.

See here CF 3.5

+1
source

All Articles