¿Cómo desarrollar aplicaciones de tableta de línea de negocio como desarrollador de .NET? [cerrado]


9

Mi empresa tiene mucha experiencia en el desarrollo de .NET y uno de nuestros productos en un sistema ERP. Recientemente, un cliente nos preguntó si podíamos proporcionar una interfaz de tableta para ese sistema, es decir, un software que le permita al cliente ver información del producto y crear pedidos en una tableta.

Por supuesto, no estamos entusiasmados con la idea de invertir mucho tiempo y dinero en aprender Objective-C, comprar estaciones de trabajo de desarrollo de Mac, pagar tarifas a Apple, etc. solo para este proyecto ( podríamos poder vender la aplicación para algunos clientes adicionales después, pero el mercado es muy pequeño, ya que solo sería útil para los clientes existentes de nuestro sistema ERP).

¿Entonces, qué debemos hacer? Hasta donde puedo ver, tenemos las siguientes opciones:

  • Escriba una " aplicación de Windows antigua y simple " (WPF) y ejecútela en una tableta con Windows 7, como Samsung Slate o Acer Iconia.

    Inconvenientes: dispositivos pesados ​​y caros con un tiempo de ejecución corto (en comparación con las tabletas "reales").

  • Espere las tabletas basadas en Windows 8 ARM y escriba una aplicación Metro (WinRT).

    Inconvenientes: espere al menos un año; no está claro si Windows 8 ARM admitirá la instalación de aplicaciones B2B personalizadas sin pasar por la tienda de aplicaciones.

  • Use mono para Android y escriba una aplicación .NET para Android.

    Inconvenientes: otra biblioteca de UI (diferente de WPF y Silverlight); algunos proveedores no permiten la carga lateral de aplicaciones.

Hasta ahora, las opciones 1 y 3 parecen ser las más realistas. ¿Me perdí algún inconveniente o ventaja obvia? ¿Hay alguna otra opción que aún no haya considerado? ¿Has estado en una situación similar y (con éxito) has elegido una opción en particular?


2
@Downvoter: Se agradecen los comentarios para mejorar la pregunta ...
Heinzi

11
Olvidó otras dos opciones: 1.) aprender Java y escribir una aplicación de Android o 2.) Decir no
Jetti

Para obtener algunos consejos sobre desarrollo móvil para desarrolladores de .NET, escuche este podcast: hanselminutes.com/305/… .
Treb

1
@FrustratedWithFormsDesigner Ver mi respuesta
código edible

1
@Nupul: No, no tengo una respuesta, solo tengo una opción (escribir una aplicación nativa de iPad en Objective-C) descartada. Todavía hay otras opciones, que podrían ser económicamente viables, de ahí mi pregunta aquí. ;-)
Heinzi

Respuestas:


10

JQuery Mobile + Phone Gap Build .

Esto básicamente dice "usa HTML5 y JavaScript para construir tu aplicación", como se ha dicho antes, pero con un giro importante.

El servicio Phone Gap Build de Nitobi (ahora propiedad de Adobe) permite a los desarrolladores convertir aplicaciones HTML5 / JavaScript en aplicaciones "nativas" (aplicaciones realmente híbridas) que pueden implementarse localmente en un dispositivo. Tengo entendido que, básicamente, lo que sucede debajo del capó es empaquetar un pequeño binario nativo que llama al navegador nativo y carga su sitio desde un archivo: // URL.

No necesita apuntar a ningún marco de JavaScript específico: el mismo HTML y JavaScript que funcionarían realmente bien en una aplicación web móvil funcionará bien.

El soporte fuera de línea tampoco es difícil. Con el almacenamiento del navegador local bien compatible con muchos dispositivos móviles, puede crear aplicaciones fuera de línea realmente potentes de esta manera. Su mejor práctica es empaquetar localmente sus dependencias externas en lugar de usar un CDN, para que su aplicación funcione bien sin conexión.

Los marcos como KnockoutJS y BackboneJS son muy útiles para permitirle crear aplicaciones JavaScript bien diseñadas, y funcionan bien con el servicio de compilación de Phone Gap.

Cuando el dispositivo está en línea, puede hacer que acceda fácilmente a los servicios ASP.NET/MVC, WebAPI o WCF para actualizar los datos.

Las aplicaciones resultantes son realmente bastante buenas y se pueden distribuir en los mercados de Apple y Android. Ya hay muchas aplicaciones en esos mercados creados con Phone Gap Build y otros productos similares, y el 99% de las personas (incluida la mayoría de los desarrolladores) no pueden notar la diferencia.

Obviamente no vas a tratar de construir Angry Birds de esta manera (aunque, con Canvas, supongo que podrías intentarlo), funciona maravillosamente bien con el tipo de aplicaciones de las que estás hablando.

No confíes en mi palabra. PhoneGap ha estado haciendo rondas en el circuito PodCast, habiendo estado recientemente en Hanselminutes , DotNetRocks y Tablet Show . Además, escribí sobre eso en una publicación reciente del blog .


+1 Creo que este es el mejor compromiso para escribir una aplicación de tableta nativa.
Eric King

Podría intentar esto para sacar una aplicación o dos del suelo ...
SoftwareSavant

13

ver información del producto y crear pedidos

Suena bien dentro de la capacidad de HTML 5 (y las tecnologías relacionadas generalmente mencionadas en el mismo aliento) Escriba una aplicación web enriquecida e inmediatamente respaldará cualquier dispositivo con un navegador .


2
Desde un punto de vista técnico tiene razón, pero en mi experiencia las personas que están dispuestas a comprar tabletas esperan algo más brillante que una aplicación web.
Treb

3
@Treb - Jakob Nielsen tiene algunas ideas interesantes sobre este tema: useit.com/alertbox/mobile-sites-apps.html
jfrankcarr

2
Muchas tabletas le permiten "instalar" la aplicación web para que parezca actuar como una aplicación. Por lo tanto, no descartaría esto porque HTML5 no parece una aplicación. Esta me parece la mejor opción.
RationalGeek

3
Además ... esto no descarta tener dos partes: aplicación web y aplicación nativa. HTML5 es una opción general ... una vez que está construido y operativo, puede crear una aplicación opcional para Android / Apple / Metro / Blackberry si la empresa opta por ella. Muchos sitios le dan la opción de instalar una aplicación para su sitio.
WernerCD

2
@Treb: es posible crear una aplicación web bastante brillante. Al menos vería sus requisitos relacionados con el brillo.
psr

4

Recomiendo desarrollarlo como una aplicación web MVC. Esto le permitirá ejecutarlo en la mayoría de los dispositivos, desde una computadora de escritorio hasta un teléfono inteligente, siempre que lo diseñe bien. HTML5 puede funcionar, pero dependerá de los tipos de dispositivos / navegadores que necesitará admitir. Sería bueno si puedes salirte con la suya. Asegúrese de diseñarlo donde pueda adaptar partes de él para que sea un backend de WCF en una aplicación de Metro en el futuro.


3

Si desea aprovechar el conocimiento .NET existente, debe optar por un enfoque SOA y poner tanta funcionalidad como sea posible en un servicio web (SOAP o REST, elija el que más le convenga). De esa manera, solo necesita una pequeña aplicación cliente en el dispositivo, que solo llamaría a la funcionalidad del servicio web y mostraría los resultados. Esto debería ser mucho más fácil de desarrollar que un cliente completo que implemente la lógica empresarial, sin importar el cliente que elija.

También permite agregar soporte para diferentes dispositivos más adelante, todo lo que necesita es una pequeña aplicación cliente para el nuevo dispositivo.

Para elegir un dispositivo, veo dos criterios:

  1. Elija el que prefiera su cliente actual (si le piden una aplicación para tableta, lo habrán pensado un poco)
  2. Elija el que sea más probable que sea aceptado por otros clientes también. Esto podría muy bien ser el iPad, o quizás el Kindle Fire, porque la gente ya los ha visto.

En cualquier caso, no espere dispositivos que aún no están en el mercado. Eso descartaría su opción 2 (Windows 8 en tabletas ARM).


A partir del anuncio de hoy, wrt Microsoft Surface, los dispositivos pueden estar muy pronto en el mercado.
Mamta D

0

Cualquier aplicación de Windows significará que está vinculado a MS. Además, Silverlight e iOS / IE 10 no van bien juntos. Elija HTML 5 y JavaScript con servicios web y / o JQuery. Las herramientas de terceros como la interfaz de usuario de Telerik-Kendo deberían hacer que su GUI sea lo suficientemente genial para la aplicación LOB. Dot Net solo podría ser de valor en el lado del servidor.


-1

Ese último comentario lo dice todo realmente: 'Dot Net solo podría ser de valor en el lado del servidor', tal vez Microsoft debería haberlo llamado. ¿No? O .WindowsOnly?

Ni siquiera puede escribir aplicaciones del lado del cliente de Windows RT en .Net.

Es cierto que para jugar en el juego multiplataforma, su lógica de negocios y servicios de datos escritos en .Net, tienen que vivir en un servidor de Windows y exponer una API amigable para la web. La última API web de ASP.Net tiene una fortaleza casi industrial en abril de 2013. Esto le permitirá exponer sus objetos .Net como JSON para que las aplicaciones JQuery / JS del lado del cliente puedan integrarse fácilmente.

En el lado del cliente, no puede usar .Net. Debe escribir todo su código de UI en HTML / CSS / JQuery y su lógica utilizando JS con quizás Knockout para el enlace orientado a datos.

Para nosotros, los desarrolladores de .Net, simplemente dibujar nuestra interfaz de usuario SIN TENER QUE ESCRIBIR MARKUP es el Nirvana de desarrollar aplicaciones LOB. Quien presente un marco .Net del lado del cliente que funcione tan bien como VS / .Net / WinForms / C # / VB.Net gobernará el mundo, y NO, en mi opinión, Mono no está en ninguna parte (no hay soporte de proveedores de componentes de terceros) cerca de VS / .Net / WinForms.


Tengo que rechazar esta respuesta debido a la declaración falsa "Ni siquiera puedes escribir aplicaciones del lado del cliente de Windows RT en .Net".
Ramhound

Lo siento, estoy totalmente en desacuerdo con su afirmación de que puede escribir aplicaciones .Net para Windows RT, ¿dónde está su prueba?
TriSys

Voy a morder. ¿Qué quiere decir exactamente con "aplicaciones del lado del cliente" porque lo tomé tiene algo muy específico hace un año. Porque te prometo que he escrito .NET 4.5.1 Windows Store/WinRTsolicitudes y las he publicado en la tienda. Usé C # si te preguntas y toda la aplicación está almacenada en el lado del cliente.
Ramhound
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.