Portando um 3,5 aplicação .NET para um dispositivo portátil
Pergunta
Eu escrevi uma aplicação cliente / servidor usando sockets em C # para .NET 3.5. Estou interessado em portar a parte do cliente a algum tipo de dispositivo móvel e estou pensando na melhor maneira. O cliente é realmente uma biblioteca subjacente e uma GUI, dependendo fortemente de recursos de interface de toque.
A meu ver eu tenho algumas opções:
- É só pegar um Eee PC e executá-lo, isso é tipo de portátil, mas eu perder o toque parte
- Reconstruir a biblioteca para plataformas móveis e fazer um novo, reduzido, GUI aplicativo
- Iniciar um servidor web e fazer algum tipo de interface web para rodar em iPhones eo que não
Qual seria o melhor caminho? Que problemas eu posso correr em em minhas alternativas acima? Eu realmente prefiro alternativa 1 ou 2 mais de 3 por causa de como o servidor é feito atualmente eo fato de que eu não sei nada sobre servidores web ou ASP.NET. Ah, e eu gostaria de ficar com o ambiente que eu sou alredy em, que é .NET, por isso não Ruby on Rails sugestões agradar. (Não estou dizendo que Ruby é ruim ou qualquer coisa, eu só não sei isso e não tem tempo para aprender).
Solução
Eu iria para a opção 2, em seguida. Não vai te levar muito tempo (espero) à porta das bibliotecas para o Compact Framework, e fornecendo é apenas soquetes, etc, você está lidando com, então eu tenho certeza que a CF vai lidar com isso muito bem.
EDIT: Os únicos problemas que você terá com a opção 2 é se você usar quaisquer funções Net que não estão na CF. Se for esse o caso, normalmente você vai ser capaz de encontrá-lo dentro OpenNETCF.
Você vai precisar para criar uma nova interface gráfica, mas proporcionando-lhe já codificado suas bibliotecas bem, deve ser apenas um caso de atribuição de métodos / eventos onde aplicável no seu dispositivo.
Eu diria que essa opção 3 é a melhor opção -. Ele se expande sua base de clientes de forma dramática, especialmente com o crescente número de usuários de WM e iPhone
Outras dicas
Gostaria de optar pela opção 2.
A maioria dos membros da TcpClient Class classe em System.Net.Sockets namespace são implementados no .NET Compact Framework.
Eu estaria interessado em entender o que são as suas necessidades na escolha de um dispositivo móvel. Há uma série de diferenças entre um Windows Mobile Smartphone e EEE PC.
Niklas,
Antes de decidir sobre a pilha de tecnologia para usar no cliente para celular que você precisa para descobrir o que os dispositivos móveis que eles vão ter disponível este tende a decidir a tecnologia para você.
iPhone - Objective C Blackberry - Java Nokia - C / Java Windows - .NET CF
Caso contrário, seria possível transformar o cliente em um site móvel, que então comunica servidor para servidor via o seu material TCP socket? Dessa forma, você não precisa se preocupar com a tecnologia no celular.