Como desenvolver aplicativos de tablet de linha de negócios como desenvolvedor .NET? [fechadas]


9

Minha empresa tem muita experiência no desenvolvimento de .NET e um de nossos produtos em um sistema ERP. Recentemente, um cliente nos perguntou se poderíamos fornecer uma interface de tablet para esse sistema, ou seja, um software que permita ao cliente visualizar informações do produto e criar pedidos em um tablet.

Obviamente, não estamos entusiasmados com a ideia de investir muito tempo e dinheiro na aprendizagem do Objective-C, na compra de estações de trabalho de desenvolvimento para Mac, no pagamento de taxas à Apple etc. apenas neste projeto ( talvez possamos vender o aplicativo para alguns clientes adicionais posteriormente, mas o mercado é muito pequeno, pois só seria útil para clientes existentes do nosso sistema ERP).

Então o que deveríamos fazer? Tanto quanto posso ver, temos as seguintes opções:

  • Escreva um " aplicativo Windows simples e antigo " (WPF) e execute-o em um tablet com Windows 7, como o Samsung Slate ou o Acer Iconia.

    Desvantagens: dispositivos pesados ​​e caros com pouco tempo de execução (em comparação com tablets "reais").

  • Aguarde os tablets baseados no Windows 8 ARM e escreva um aplicativo Metro (WinRT).

    Desvantagens: Aguarde pelo menos um ano; não está claro se o Windows 8 ARM oferecerá suporte à instalação de aplicativos B2B personalizados sem passar pela loja de aplicativos.

  • Use mono para Android e escreva um aplicativo .NET para Android.

    Desvantagens: mais uma biblioteca de interface do usuário (diferente do WPF e Silverlight); alguns provedores proíbem o carregamento lateral de aplicativos.

Até agora, as opções 1 e 3 parecem ser as mais realistas. Perdi algumas desvantagens ou vantagens óbvias? Existe outra opção que eu ainda não considerei? Você já esteve em uma situação semelhante e (com sucesso) escolheu uma opção em particular?


2
@Downvoter: feedback para melhorar a questão é apreciada ...
Heinzi

11
Você esqueceu duas outras opções: 1.) a aprendizagem Java e escrever um aplicativo Android ou 2.) Dizer não
Jetti

Para obter alguns conselhos sobre desenvolvimento móvel para desenvolvedores .NET, ouça este podcast: hanselminutes.com/305/… .
Treb

11
@FrustratedWithFormsDesigner Veja minha resposta
ediblecode 7/12/12 /

11
@ Nupul: Não, não tenho resposta, tenho apenas uma opção (escrever um aplicativo nativo para iPad no Objective-C). Ainda existem outras opções, que podem ser economicamente viáveis, daí a minha pergunta aqui. ;-)
Heinzi 8/03/12

Respostas:


10

Construção do JQuery Mobile + Phone Gap .

Isso significa basicamente "use HTML5 e JavaScript para criar seu aplicativo", como já foi dito antes, mas com uma reviravolta importante.

O serviço Phone Gap Build da Nitobi (agora de propriedade da Adobe) permite que os desenvolvedores convertam aplicativos HTML5 / JavaScript em aplicativos "nativos" (aplicativos realmente híbridos) que podem ser implantados localmente em um dispositivo. Entendo que basicamente o que está acontecendo sob o capô está compactando um pequeno binário nativo que chama o navegador nativo e carrega o site a partir de um arquivo: // URL.

Você não precisa segmentar nenhuma estrutura JavaScript específica - o mesmo HTML e JavaScript que funcionariam muito bem em um aplicativo da web para dispositivos móveis funcionará bem.

O suporte offline também não é difícil. Com o armazenamento do navegador local bem suportado por muitos dispositivos móveis, é possível criar aplicativos offline verdadeiramente poderosos dessa maneira. É uma boa prática empacotar suas dependências externas localmente, em vez de usar uma CDN, para que seu aplicativo funcione bem offline.

Estruturas como KnockoutJS e BackboneJS são muito úteis para permitir a criação de aplicativos JavaScript bem projetados e funcionam bem com o serviço de compilação do Phone Gap.

Quando o dispositivo está on-line, você pode facilmente acessar o back-end do serviço ASP.NET/MVC, WebAPI ou WCF para atualizar os dados.

Os aplicativos resultantes são realmente muito bons e podem ser distribuídos nos mercados da Apple e Android. Já existem muitos aplicativos nesses mercados criados com o Phone Gap Build e outros produtos similares, e 99% das pessoas (incluindo a maioria dos desenvolvedores) não sabem a diferença.

Obviamente, você não tentará criar o Angry Birds dessa maneira (embora, com o Canvas, suponha que tente), ele funciona maravilhosamente bem com os tipos de aplicativos de que você está falando.

Não aceite minha palavra. O PhoneGap está fazendo as rondas no circuito PodCast, tendo participado recentemente em Hanselminutes , DotNetRocks e Tablet Show . Além disso, escrevi sobre isso em uma postagem recente no blog .


+1 Acho que esse é o melhor compromisso para escrever um aplicativo de tablet nativo.
Eric Rei

Eu poderia apenas tentar isso para obter um app ou dois fora da terra ...
SoftwareSavant

13

visualizar informações do produto e criar pedidos

Parece coisas bem dentro da capacidade do HTML 5 (e as tecnologias relacionadas geralmente mencionadas na mesma respiração). Escreva um aplicativo da Web rico e você imediatamente suporte qualquer dispositivo com um navegador .


2
Do ponto de vista técnico, você está certo, mas, na minha experiência, as pessoas que estão dispostas a comprar tablets esperam algo mais brilhante do que um aplicativo da web.
Treb

3
@Treb - Jakob Nielsen tem alguns pensamentos interessantes sobre este tema: useit.com/alertbox/mobile-sites-apps.html
jfrankcarr

2
Muitos tablets permitem que você "instale" o aplicativo Web para que ele pareça agir como um aplicativo. Portanto, eu não contaria isso porque o HTML5 não parece com um aplicativo. Esta parece ser a melhor opção para mim.
RationalGeek

3
Além disso ... isso não exclui duas partes: aplicativo da Web e aplicativo nativo. O HTML5 é uma opção geral ... uma vez construído e operacional, você pode criar um aplicativo Android / Apple / Metro / Blackberry opcional, se a empresa optar por isso. Muitos sites oferecem a opção de instalar um aplicativo para o site deles.
WernerCD

2
@Treb - É possível criar um aplicativo da web bastante brilhante. Eu pelo menos examinaria os requisitos relacionados ao brilho deles.
Psr

4

Eu recomendo desenvolvê-lo como um aplicativo da Web MVC. Isso permitiria que você o executasse na maioria dos dispositivos, de um desktop a um smartphone, desde que você o projete bem. O HTML5 pode funcionar, mas dependerá dos tipos de dispositivos / navegadores que você precisará oferecer suporte. Seria bom se você pudesse usá-lo. Certifique-se de que você o arquitetou onde poderia adaptar partes dele para ser um back-end do WCF para um aplicativo Metro no futuro.


3

Se você deseja aproveitar o conhecimento .NET existente, opte por uma abordagem SOA e coloque o máximo de funcionalidade possível em um serviço da Web (SOAP ou REST, escolha o que melhor lhe convier). Dessa forma, você só precisa de um aplicativo cliente pequeno no dispositivo, que chamaria apenas a funcionalidade de serviço da web e exibia os resultados. Isso deve ser muito mais fácil de desenvolver do que um cliente completo que implementa a lógica de negócios, independentemente do cliente escolhido.

Ele também permite adicionar suporte para diferentes dispositivos posteriormente, tudo o que você precisa é de um aplicativo cliente pequeno para o novo dispositivo.

Para escolher um dispositivo, vejo dois critérios:

  1. Escolha o que seu cliente atual favorece (se ele solicitar um aplicativo para tablet, ele terá pensado nisso)
  2. Escolha aquele que provavelmente será aceito por outros clientes também. Pode muito bem ser o iPad, ou talvez o Kindle Fire, porque as pessoas já os viram.

De qualquer forma, não espere por dispositivos que ainda não estão no mercado. Isso excluiria sua opção 2 (Windows 8 em tablets ARM).


A partir do anúncio de hoje, por Microsoft Surface, os dispositivos poderão estar em breve no mercado.
precisa

0

Qualquer aplicativo do Windows significa que você está vinculado ao MS. Além disso, o Silverlight e o iOS / IE 10 não combinam bem. Escolha HTML 5 e JavaScript com Web Services e / ou JQuery. Ferramentas de terceiros, como a interface de usuário do Telerik-Kendo, devem deixar sua GUI legal o suficiente para o aplicativo LOB. O Dot Net só pode ter valor no lado do servidor.


-1

Esse último comentário diz tudo: "O Dot Net só pode ter valor no lado do servidor" - talvez a Microsoft devesse ter chamado. Não é? Ou .WindowsOnly?

Você não pode nem escrever aplicativos do lado do cliente Windows RT em .Net.

É verdade que, para jogar no jogo multiplataforma, a lógica de negócios e os serviços de dados escritos em .Net precisam viver em um servidor Windows e expor uma API amigável da Web. A mais recente API da Web do ASP.Net é praticamente industrial em abril de 2013. Isso permitirá que você exponha seus objetos .Net como JSON, para que os aplicativos do lado do cliente JQuery / JS possam se integrar facilmente.

No lado do cliente, você não pode usar .Net. Você precisa escrever todo o seu código de interface do usuário em HTML / CSS / JQuery e sua lógica usando JS com talvez Knockout para ligação orientada a dados.

Para nós, desenvolvedores de .Net, simplesmente desenhar nossa interface do usuário SEM TER QUE ESCREVER O MARKUP é o Nirvana do desenvolvimento de aplicativos LOB. Quem criar uma estrutura .Net do lado do cliente que funcione tão bem quanto VS / .Net / WinForms / C # / VB.Net governará o mundo - e NÃO - na minha opinião, o Mono não está em lugar algum (sem suporte de fornecedores de componentes de terceiros) perto de VS / .Net / WinForms.


Eu tenho que rebaixar esta resposta por causa da declaração falsa "Você não pode nem escrever aplicativos do lado do cliente do Windows RT em .Net".
Ramhound

Desculpe, discordo totalmente da sua afirmação de que você pode escrever aplicativos .Net para Windows RT - onde está sua prova?
precisa saber é o seguinte

Eu vou morder. O que você quer dizer exatamente com "aplicativos do lado do cliente" porque eu entendi que há algo muito específico há um ano. Porque prometo que escrevi .NET 4.5.1 Windows Store/WinRTaplicativos e os publiquei na loja. Eu usei C # se você está pensando e todo o aplicativo é armazenado no lado do cliente.
Ramhound
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.