Come sviluppare app per tablet line-of-business come sviluppatore .NET? [chiuso]

9

La mia azienda ha molta esperienza nello sviluppo di .NET e uno dei nostri prodotti in un sistema ERP. Recentemente, un cliente ci ha chiesto se potevamo fornire un'interfaccia tablet a quel sistema, ad esempio un software che consenta al cliente di visualizzare le informazioni sul prodotto e creare ordini su un tablet.

Naturalmente, non siamo entusiasti dell'idea di investire un sacco di tempo e denaro nell'apprendimento di Objective-C, nell'acquisto di workstation di sviluppo Mac, nel pagamento di commissioni ad Apple, ecc. solo per questo progetto (noi potremmo essere in grado di vendere l'app a pochi altri clienti in seguito, ma il mercato è molto piccolo, dal momento che sarebbe utile solo per i clienti esistenti del nostro sistema ERP).

Quindi, cosa dovremmo fare? Per quanto posso vedere, abbiamo le seguenti opzioni:

  • Scrivi una " semplice applicazione Windows vecchia " (WPF) ed eseguila su un tablet Windows 7, come Samsung Slate o Acer Iconia.

    Svantaggi: dispositivi pesanti e costosi con un breve tempo di esecuzione (rispetto ai tablet "reali").

  • Attendi tablet basati su ARM Windows 8 e scrivi un'app Metro (WinRT).

    Svantaggi: attendere almeno un anno; non è chiaro se Windows 8 ARM supporterà l'installazione di app B2B personalizzate senza passare attraverso l'app store.

  • Utilizza mono per Android e scrivi un'app .NET per Android.

    Svantaggi: ancora un'altra libreria UI (diversa da WPF e Silverlight); alcuni provider non consentono il sideload delle app.

Finora, le opzioni 1 e 3 sembrano essere le più realistiche. Ho perso qualche ovvio inconveniente o vantaggio? C'è un'altra opzione che non ho ancora considerato? Sei stato in una situazione simile e (con successo) hai scelto una particolare opzione?

    
posta Heinzi 07.03.2012 - 14:43
fonte

6 risposte

10

JQuery Mobile + Build Gap Build .

In pratica si dice "usa HTML5 e JavaScript per costruire la tua app", come è stato detto prima, ma con una svolta importante.

Il servizio Phone Gap Build di Nitobi (ora di proprietà di Adobe) consente agli sviluppatori di convertire le app HTML5 / JavaScript in app "native" (davvero ibride app) che possono essere distribuite localmente su un dispositivo. A mio avviso, in sostanza, ciò che sta accadendo sotto il cofano sta confezionando un piccolo binario nativo che chiama il browser nativo e carica il tuo sito da un file: // URL.

Non hai bisogno di indirizzare alcun specifico framework JavaScript - lo stesso HTML & JavaScript che funzionerebbe molto bene in un'app Web mobile funzionerà correttamente.

Anche il supporto offline non è difficile. Con lo storage del browser locale ben supportato da molti dispositivi mobili puoi creare app offline davvero potenti in questo modo. La sua migliore pratica consiste nel pacchettizzare le dipendenze esterne localmente anziché utilizzare una CDN, in modo che la tua app funzioni correttamente offline.

Framework come KnockoutJS e BackboneJS sono molto utili per consentirti di creare app JavaScript ingegnerizzate e funzionano bene con il servizio di build di Phone Gap.

Quando il dispositivo è in linea, puoi facilmente farlo colpire i back-end di servizio ASP.NET/MVC, WebAPI o WCF per aggiornare i dati.

Le app risultanti sono davvero molto buone e possono essere distribuite nei mercati Apple e Android. Ci sono già molte app in quei mercati costruiti con Phone Gap Build e altri prodotti simili, e il 99% delle persone (compresa la maggior parte degli sviluppatori) non può dire la differenza.

Ovviamente non tenterai di creare Angry Birds in questo modo (anche se, con Canvas suppongo di poter provare), funziona meravigliosamente bene con i tipi di app di cui stai parlando.

Non credermi sulla parola. PhoneGap ha fatto il giro del circuito PodCast, essendo stato di recente su Hanselminutes , DotNetRocks e Tablet Show . Inoltre, ne ho scritto in un recente post di blog .

    
risposta data 07.03.2012 - 17:20
fonte
13

view product information and create orders

Suona come roba ben dentro la capacità di HTML 5 (e le tecnologie correlate di solito menzionate nello stesso respiro). Scrivi una ricca applicazione Web e immediatamente supporti qualsiasi dispositivo con un browser .

    
risposta data 07.03.2012 - 15:57
fonte
4

Consiglierei di svilupparlo come app Web MVC. Ciò ti consentirebbe di eseguirlo sulla maggior parte dei dispositivi da un desktop a uno smartphone, purché lo progettassi bene. HTML5 potrebbe funzionare ma dipenderà dai tipi di dispositivi / browser che dovrai supportare. Sarebbe bello se riuscissi a farla franca con l'utilizzo. Assicurati di averlo progettato in modo da poter adattare parti di esso come backend WCF a un'app Metro in futuro.

    
risposta data 07.03.2012 - 16:03
fonte
3

Se vuoi sfruttare le conoscenze .NET esistenti, dovresti optare per un approccio SOA e mettere il maggior numero di funzionalità possibile in un servizio web (SOAP o REST, scegli quello che ti si addice meglio). In questo modo hai solo bisogno di una piccola app client sul dispositivo, che chiama solo la funzionalità del servizio web e visualizza i risultati. Questo dovrebbe essere molto più facile da sviluppare rispetto a un client in piena regola che implementa la logica di business, indipendentemente dal cliente scelto.

Inoltre consente di aggiungere in seguito il supporto per dispositivi diversi, tutto ciò di cui hai bisogno è una piccola app client per il nuovo dispositivo.

Per scegliere un dispositivo, vedo due criteri:

  1. Scegli quello che il tuo attuale cliente preferisce (se chiedono un'app per tablet, ci hanno pensato un po ')
  2. Scegli quello che è più probabile che venga accettato anche da altri clienti. Questo potrebbe benissimo essere l'iPad, o forse il Kindle Fire, perché le persone li hanno già visti.

In ogni caso, non aspettare ancora i dispositivi che non sono ancora sul mercato. Ciò escluderebbe la tua opzione 2 (Windows 8 su tablet ARM).

    
risposta data 07.03.2012 - 16:52
fonte
0

Qualsiasi applicazione Windows vorrà dire che sei legato alla SM. Inoltre, Silverlight e iOS / IE 10 non vanno bene insieme. Vai per HTML 5 e JavaScript con servizi Web e / o JQuery. Strumenti di terze parti come interfaccia utente di Telerik-Kendo dovrebbero rendere la tua GUI abbastanza interessante per l'app LOB. Dot Net potrebbe avere valore solo sul lato server.

    
risposta data 08.03.2012 - 03:14
fonte
-1

L'ultimo commento dice tutto in realtà: "Dot Net poteva solo avere un valore sul lato server" - forse Microsoft avrebbe dovuto chiamarlo. Non? Oppure. Windows solo?

Non puoi nemmeno scrivere app lato client di Windows RT in .Net.

È vero che per giocare nel gioco multipiattaforma, la tua logica aziendale e i servizi dati scritti in .Net, devono vivere su un server Windows ed esporre un'API Web friendly. L'API Web ASP.Net più recente è quasi un punto di forza industriale ad aprile 2013. Ciò ti consentirà di esporre i tuoi oggetti .Net come JSON in modo che le app lato client JQuery / JS possano integrarsi facilmente.

Sul lato client, non è possibile utilizzare .Net. Devi scrivere tutto il codice dell'interfaccia utente in HTML / CSS / JQuery e la tua logica usando JS con forse Knockout per l'associazione orientata ai dati.

Per noi sviluppatori .Net, semplicemente disegnando la nostra interfaccia utente SENZA AVERE SCRITTO MARKUP è il Nirvana di sviluppare app LOB. Chiunque abbia un lato client. Net framework che funziona bene come VS / .Net / WinForms / C # / VB.Net governerà il mondo - e NO - a mio parere Mono è da nessuna parte (nessun supporto da fornitori di componenti di terze parti) vicino a VS / .Net / WinForms.

    
risposta data 02.04.2013 - 10:31
fonte

Leggi altre domande sui tag