views:

260

answers:

3

I have written a server/client application using sockets in C# for .NET 3.5. I'm interested in porting the client part to some kind of mobile device and am pondering the best way. The client is actually an underlying library and a GUI depending heavily on touch interface capabilities.

As I see it I have a few options:

  1. Just get an EEE PC and run it on, that's kind of portable but I loose the touch part
  2. Rebuild the library for mobile platforms and make a new, reduced, GUI app
  3. Start a web server and make some kind of web interface to run on iPhones and what not

What would be the best route? What problems can I run into in my alternatives above? I'd really prefer alternative 1 or 2 over 3 because of how the server is currently done and the fact that I know nothing about webservers or ASP.NET. Oh and I'd like to stay with the environment I'm alredy in, that is .NET, so no Ruby on Rails suggestions please. (Not saying Ruby is bad or anything, I just don't know it and don't have the time to learn).

+1  A: 

I'd go for option 2 then. It wont take you too long (hopefully) to port the libraries over to the Compact Framework, and providing it's just sockets, etc, you're dealing with then I'm sure the CF will handle it fine.

EDIT: The only problems you'll have with option 2 is if you use any .Net functions that are not in the CF. If that is the case, you'll usually be able to find it within OpenNETCF.

You will need to create a new GUI, but providing you've coded your libraries well, it should just be a case of assigning methods/events where applicable on your device.

I'd say though that option 3 is the best option - it expands your customer base dramatically, especially with the growing number of WM and iPhone users.

GenericTypeTea
+1  A: 

I would opt for Option 2.

Most of the members of the TcpClient Class class in System.Net.Sockets namespace are implemented in the .Net Compact Framework.

I would be interested to understand what your requirements are in selecting a mobile device. There are a lot of differences between a Windows Mobile Smartphone and EEE PC.

Michael
The only requirement for the mobile device as of now is that it is mobile :) I am not targeting a particular market where I expect people to have a certain device, it's a closed system where I provide the device.
Niklas Winde
If you aren't to concerned about cost and you believe your customers would be happy to carry around another device in addition to their mobile phone, it may be best to use a Ultra-Mobile PC like the ASUS R2H with Touch Screen.
Michael
+1  A: 

Niklas,

Before you decide on the technology stack to use on the client for mobile you need to work out what mobile devices they are going to have available this tends to decide the technology for you.

iPhone - Objective C Blackberry - Java Nokia - C/Java Windows - .NET CF

Otherwise would it be possible to turn the client into a mobile web site, that then communicates server to server via your TCP Socket stuff ? That way you do not need to worry about the technology on the mobile.

Barry