Domanda

Abbiamo iniziato a costruire Cross platform Android/iOS apps, avendo costruito esclusivamente in monotono prima.Stiamo valutando MonoDroid.

Le nostre app devono consumare JSON e vorremmo usare ServiceStack.Xamarin ha un ramo di ServiceStack che stiamo usando - https://github.com/xamarin/servicestack .

Vorremmo avere un progetto comune responsabile per ottenere e pubblicare JSON.Servicestack di Xamarin ha different DLLs for Android and iOS.Come abbiamo un single project e usiamo Servicestack per ottenere il nostro JSON?

Siamo aperti ad altre opzioni per ottenere JSON in un modo unificato?

È stato utile?

Soluzione

In grande e grande, gestito * .dll's compilato per il monotouch che non ha una dipendenza dai tipi specifici del monotouch sono compatibili con Mono per progetti Android.

ServiceStack è un grande esempio di questo.L'ho usato personalmente per più progetti attraverso le offerte quadro mobili Xamarin.

Come regola generale tendo a incapsulare tutte le invocazioni ai miei servizi Web utilizzando una classe parziale con metodi Async, come FooProjectRestClient.E poi se c'è mai qualche tipo di segmentazione che deve verificarsi può accadere in una classe condivisa utilizzando #SEF DEFS.

Altri suggerimenti

Il motivo per cui ci sono monotouch e Mono per le librerie specifiche per Android è spesso a causa del profilo (più piccolo, Silverlight-Like) disponibile (ad es. Le cose che dipendono dalle nuove funzionalità FX4.0 necessarie ritagliare). Sono spesso lo stesso codice ri-compilato con SILVERLIGHT (o MONOTOUCH, MONODROID) definito.

Il motivo del monotouch Solo Librairies specifici è generalmente perché il suo ambiente (dispositivi iOS) non consente JIT'ing. Quindi non ci sono generazioni di codice (ad es. System.Reflection.Emit) o codice di caricamento dinamicamente (in basso) ... tuttavia è spesso possibile fornire (meno performanti) workarounds o saltare alcune funzionalità e mantenere una versione speciale della libreria per monotouch.

Ora torna ad avere un assieme / progetto Single . Il gruppo speciale Monotouch Assembly (Generalmente lo stesso codice ri-compilato con MONOTOUCH Defined) è ancora un assieme Valid .NET e Spesso può essere utilizzato in Mono per Android, Mono o .Net (una volta ricompilato, anche con MONOTOUCH). È definitivamente non ottimale ma è qualcosa che puoi provare.

Un altro sta avendo gli stessi progetti (ad es. MyLib), tra diverse soluzioni (ad es. Monotoouchapp, M4androidapp) e utilizzano configurazioni speciali (proprio come c'è un iPhone | Debug One) per impostare definte diverse (ad es. MONOTOUCH su iPhone * | * ). Che può permetterti di mantenere la migliore implementazione delle caratteristiche in ciascuna piattaforme (ad esempio nel caso in cui la stessa funzione sia implementata in modo diverso).

Proverei prima la prima (configurazione) successivamente, quindi condividendo l'assemblea speciale Monoutouch e infine (se davvero non funziona) cerca altre alternative.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top