views:

200

answers:

4

I'm looking at rewriting an eMbedded Visual Basic app I wrote years ago. I'm unsatisified with it because of various problems clients keep having with it now and then over the years, mostly along the lines of the app not loading anymore because a required dll/activex control has gone missing! This is so frustrating and naturally difficult to debug when a client is using it far away. In alot of cases reinstalling the app doesn't fix the problem.

My preference would be to rewrite it in C# since I'm comfortable with C# and DotNet, but I'm also open to other platforms like blackberry or iTouch/iPhone so long as the platform can support maps and GPS. I'd start rewriting it in C# now but I can't be sure that I won't have the same problems in .net.

Has anyone else had similar problems with eVB apps which have gone away/persisted when moving to CF DotNet? Or would you suggest a different platform again?

Edit: Note that I wish to move away from eVB anyway, but if I move to CF DotNet I want to make sure I won't have the same missing dll/control problems.

+3  A: 

I recommend .NET CF strongly, especially if you already know C# and .NET. Mono has been ported to the iPhone, so it is possible to write apps that will run on Windows Mobile and the iPhone. No Mono for Blackberry (yet, if ever), so that's a definite limitation. I personally can't stand Blackberries (I have both a Blackberry and a WM smartphone and the Blackberry makes me want to hang myself), but they do have a huge user base.

MusiGenesis
Okay. Have you written apps targetting the DotNet Compact Framework? If so have you had problems with missing dlls, controls, etc?
Ben Daniel
I've been writing almost nothing but .NET CF apps for 4 years now. Never had a problem with missing DLLs or controls, but I generally avoid third-party products like the plague anyway.
MusiGenesis
The CF engineers did an excellent job of trimming down the framework. It's frustrating to find the tool you need for the job and then see "not supported in compact framework". This happens from time to time, but usually with something that isn't that commonly used anyway.
MusiGenesis
And it's easy to use PInvoke to get the rest of what you need, anyway, and the functionality that is in the Windows Mobile OS is truly underappreciated. As an example, I started writing Windows apps in 1995 using the waveOut API (which gives you low-level access to the audio output) ...
MusiGenesis
... this API is in Windows Mobile (and even wrapped in a crude way in CF), which is allowing me to write a software synthesizer for my cellphone.
MusiGenesis
A: 

I suggest you take it one step further and look at Silverlight. One of the premises is that it's a more long-term-stable, portable, lightweight download and install, and it hasn't gotten krufty yet.

I think it has the potential to be the next VB for embedded. One of the difficulties with CF is that I've found it to be an insufficient subset of the real thing.

le dorfier
Okay thanks for the advice. So Silverlight works on Windows Mobile too eh? That's neat. Though I'm not sure how suitable it would be for me since the user would most likely not be connected to the net and may even be in areas with low to no cell phone receiption.
Ben Daniel
+1  A: 

You should have migrated away from eVB years ago, but that's water under the bridge. If you want to continue targeting Windows CE/ Windows Mobile I'd recommend going to the CF - language is irrelevant, use what you're comfortable with.

There's no way to guarantee that whatever your "missing DLL" problem is won't happen again, since we have no idea what DLL went missing. If it was a 3rd party control, then you're at the mercy of the market. If the provider survives, it's likely their control will.

If you want to target iPhone/Blackberry then Java is more likely to be your language of choice - the tools I'm not as familiar with. Eclipse for Blackberry - iPhone may have their own tool.

As for Silverlight, you might look at it, but so far it's just way too slow to be a viable platform, at least on any WinMo device I've ever seen. We've delevered many, many CF apps for all sorts of verticals and have never had any usability problems (though we've been doing it a long time and know every limitation and what we should and should not be trying).

ctacke
The DLL's are usually for standard controls and they just go missing. I have no idea why. I have heard that there's a bug in the uninstaller for eVB apps which ends up removing dlls even if they're actually still needed by other applications. But I don't think this is why they're disappearing.
Ben Daniel
@Ben: the uninstaller certainly sounds like the culprit here. Files don't just disappear unless something disappears them, generally. Also, ctacke here is a serious CF guru. Pretty much without exception, anti-CF people have never worked with CF much if at all.
MusiGenesis
Yes, teh eVB uninstaller was known to uninstall all files, regarless of them being marked as shared or not. We used to package the app and associated files in separate CABs for that reasons.
ctacke
Ctacke, have you had to work around this problem when targeting the CF? Like could an eVB uninstaller for another app still effect your CF app?
Ben Daniel
@Ben: eVB and the CF have no commonality at all, so there's nothing an eVB app might install (and subsequently uninstall) that the CF could use.
ctacke
A: 

Another option is NS Basic/CE. It's highly compatible with eVB, so you will be able to keep most if not all of your code. The product has been continually updated so it runs on current devices.

The installer that NS Basic/CE creates includes all the dll files your program requires, so they will be included on installation.

ghenne