Re: PocketPC / Windows Mobile development

Steffen Ryll <[email protected]> Tue, 06 Mar 2007 15:55:41 +0100
Newsgroups gmane.comp.security.passwordsafe.devel
Message-ID <[email protected]>
Hi,

James wrote on 18/07/2006:
> Robert Altmann wrote on 17/07/2006:
>> I would like to come up with a plan of attack here. I think we need to:
>> 
>> (1) Determine our starting point. I have already started on getting
>> the current code compiled with Visual Studio 2005, although there are some
>> errors. Has anyone else started working on any other parts?

I also started this effort in the corelib project. Currently it results 
in 99 compile errors (not yet committed to svn).
Most problems are in PWScore.cpp, IIRC ~80 compile errors. The reason 
seems to be in most cases that UNICODE breaks strings conversions.

AFAIK, UNICODE must be defined in all PocketPC projects, no way out...

>> (2) Pick the environment; .NET 1.1 (Visual Studio 2003) or .NET 2.0
>> (Visual Studio 2005). My vote is for VS2005 and .NET 2.0; there is
>> additional PocketPC emulation support and I believe the task will be easier.

First, I think we should evaluate which platforms shall be supported. 
According to what I read in MSDN, PocketPC 2003 was the first version 
that shipped with .NET CF. For PocketPC 2000 & 2002, the compact 
framework is only an add-on that every device manufacturer must 
incorporate into its ROM images.
I can't imagine that .NET CF is really wide-spread on these old devices, 
but I'm also not sure whether these devices are still so often used that 
they deserve pwsafe support.

Personally, I need only support for PocketPC 2003 (not SE) and maybe 
newer. Does Sourceforge offer an opinion poll function, that we can find 
out whether PocketPC 2000/02 are required as well?
I hope not, otherwise we need go back to embedded Visual C++ 4 which 
doesn't run under WinXP SP2.

However, I think we should stick to .NET CF 1.x or even native C++.
Native C++ promises best backwards compatibility, I suppose.

>> (3) Come up with a plan and divide the tasks. I believe there are
>> four significant areas: WinMobile UI; WinMobile program; C# /C++ interface;
>> and install. I'm certain we can refine/improve this list, but at least we
>> have a starting point.

corelib (is this what you called WinMobile program?) should be kept in 
C++, to reduce development effort and maintain compatibility with 
desktop version.

The WinMobile UI can be written either in C++ or .NET (C#). C# is 
easier, but we have to reinvent the wheel and we must deal with the 
hassles of a C#/ C++ interface.
With C++, we can take advantage of the existing desktop implementation 
and take ideas from the v1.92 PPC implementation.

If this C#/C++ interface is required, my proposal would be to that (in 
terms of the MVC pattern) the model with all the crypto and file 
routines is C++ and controller and view are C#

Installing is done with a simple cab file, right? AFAIR, VS2005 comes 
with support for PPC installer projects.

> Another thing to consider is how it interacts with ActiveSync.
> Will it rely of just copying the .psafe3 file, or will it have it's own sync
> module to merge the files. The latter would require either entering the
> password on every sync (annoying), storing the password (bad), or changing
> the format to allow a merge with decrypting (which I suggested before, but
> was shot down)

For starting, we will have to live with the simple copy mechanism, I 
suppose.
I think the file format allows to detect changes, so an ActiveSync 
plugin could ask for the passphrase in these cases in perform a sync and 
otherwise remain silent.

> As for your plan of attack, you seem to be glossing over a few
> details. Is C++/MFC is option? Before we discuss the C# / C++ interface we
> need to discuss the C# / C++ divide.

As stated above already, I'm also more in favour of the C++/MFC approach.


I will continue work on corelib, because I think that won't be affected 
by this discussion :-) I will send some patches soon.

Cheers,

Steffen

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV