Activesync SP in .net compact framework

  • Thread starter Thread starter manoranjan
  • Start date Start date
M

manoranjan

Hi,

Could somebody please let me know, how to write an avtivesync service
provider using .net Compact framework?
Is it possible to Sync multiple PDAs simultaneously ( If H/w is not a
constraint) or any tool available for that ?

With Regards and Thanks
--Manoranjan Prusty
 
Manoranjan,

It is not possible to write an ActiveSync service provider using .Net - you have
to use eVC++. But you may be able to achieve your goal by using RAPI. Here is
some sample code to get you started with RAPI:
http://www.opennetcf.org/communication.asp This will allow you to write a
desktop app to basically replace ActiveSync synchronization (although you still
must have an ActiveSync connection), but it will allow you to only sync one PDA
at a time. For accessing multiple PDAs simultaneously, I'd consider using
sockets instead.
 
Is support for developing ActiveSync service providers using .NET
planned/expected in the near future? Or is ActiveSync eventually going to
be deprecated?

What are the pros/cons of ActiveSync vs. rolling your own synchronization
using RAPI/sockets?

Thansk,
Troy
 
Troy,

I haven't seen any announcements as to whether developing ActiveSync service
providers using .Net will be supported in the future. The main advantage of
using Rapi is that you have complete control over the synchronization. I've been
using Rapi successfully for several years now. The downside is that your users
have to have a desktop app that you provide that does this for them. Using
sockets you have even more control but it would probably be more work.
 
The "downside" isn't too bad for me, since I already have a desktop app
(which I want to sync to). I would love to hear more detail about your
strategy. What sort of database do you use on the device / laptop? What
have been the pros/cons of your strategy?

--Troy
 
Troy,

Which database I use has changed over time and depended partly on what the data
looked like on the desktop and what technology was available on the device. In
one approach I had DBF files on the desktop, copied them without any changes
using the Rapi app, then accessed them on the device using the SequitorSoftware
Codebase library. Pros - very fast, very easy to deploy to customer sites,
complete control of update code back on desktop in Rapi app. Cons - somewhat
expensive and somewhat labor intensive on the device side. Also creating new
files on the device is easiest if you download empty files in the Rapi app, so
you have to worry about clobbering good data that hasn't been uploaded yet on a
download.

My more recent apps work this way: the Rapi app creates delimited text files
from SQL data and copies those files to the device. The device app has business
classes that can construct collections of themselves from the text files and
persist themselves back. Pros - still good performance, powerful and easy to
deploy, cheap, flexible business classes work well for manipulating data on the
device using databinding. Very easy to create empty files on the device or add
to exisitng ones so no worries about clobbering good data with a download.
Cons - you have to keep the desktop and device apps in sync if you decide to add
more fields to the data on the device, but there are versioning issues with
either approach.

Both approaches have worked fine in the field. The only issues we've run into on
the support side have been occasional ActiveSync connection issues, which could
happen with any approach, and is less of a problem these days with ActiveSync
3.7. The Rapi app in both approaches can be used to download newer versions of
the device app and any DLLs it needs (as well as updates to the compact
framework if needed) all in one neat package. So if a user cold-boots a device
or tries to make the battery last for several days without recharging <g>, the
Rapi app can be used to restore the device to a known state as well as managing
moving the data back and forth.
 
Thanks for the ideas, Ginny. I like the idea of my app being in greater
control of the sync process. I also like the idea of using Rapi to
auto-update the device.

--Troy
 
Ginny said:
The Rapi app in both
approaches can be used to download newer versions of the device app
and any DLLs it needs (as well as updates to the compact framework if
needed) all in one neat package.
Ginny Caughey
Windows Embedded MVP

Hi Ginny,

I am using RAPI to synchrnoise data(XML files) and using CE App Manager
to deploy the application. However, App Manager doesnot work for PPC
2003. So I am thinking to use RAPI to deploy application as well as.
But now I have to worry about which CAB file to use. How do you choose
the correct cab file? Do you use CeGetSystemInfo to determine processor
type?

Thanks,
Vinay.
 
Vinay,

Since my apps all run on industrial hardware, I know what kind of hardware each
app should work with so it's not an issue for me, but CeGetSystemInfo looks like
the way to go if you will be supporting multiple processor types. There is also
CeGetVersionEx to determine the OS version.
 
Back
Top