Purtroppo chi ha provato a sviluppare su iphone o ipod ha potuto notare (e lamentare) l’assenza di API che permettano di stampare direttamente dal dispositivo verso una stampante di rete.
E’ una mancanza secondo me grave che limita la possibilità di rendere questi dispositivi utili in scenari business.
Per ovviare al problema le soluzioni sono 2: o si scrive nell’applicazione stessa il codice per comunicare direttamente a basso livello con le stampanti(in pratica dobbiamo quasi scrivere un driver per stampanti), oppure più semplicemente ci si appoggia ad un secondo programma installato su un pc che fa da tramite tra iphone e stampante.
Nel mio caso ho pensato alla seconda soluzione, realizzando una piccola applicazione .net con le seguenti caratteristiche:
- applicazione in WPF, minimizzata nella system tray
- servizio di stampa(wcf, basic http binding), utilizzando wcf in modalità self-hosting
- servizio di broadcasting del servizio tramite Bonjour(Mono.ZeroConf)
- esecuzione della stampa utilizzando la funzione PrintVisual di WPF
In particolare l’utilizzo di una libreria per il supporto a Bonjour(che è nativo nell’sdk dell’iphone) mi ha permesso di non far configurare sull’iphone l’ip del server di stampa.
Tramite MonoTouch ho potuto usare anche lato iphone wcf, anche se per il momento è supportato solo il basic http binding e tra l’altro in modalità asincrona(il proxy l’ho generato usando il tool di silverlight, come dice la guida di monotouch.
del.icio.us Tags:
Iphone,
MonoTouch
Anche quest’anno riuscirò a partecipare come spettatore a questa conferenza.
Purtroppo, per impegni lavorativi, potrò partecipare solamente alla prima giornata, ma questo mi basta per vedere ed ascoltare quanto di nuovo propone Sharepoint 2010.
E da quello che fin’ora ho letto e visto…non vedo l’ora di poterci mettere le mani su un progetto reale…
del.icio.us Tags:
Sharepoint
Per un progetto su IPod/IPhone ormai in dirittura d’arrivo, nonostante avessi già preso dimestichezza con objective-c, abbiamo preferito utilizzare MonoTouch per dare maggiore visibilità interna al progetto anche a chi non avesse competenze su objective-c(in pratica tutti gli altri dev qui in azienda).
Programmare in C# su IPhone è stato di grandissimo aiuto, in particolare per quanto il linguaggio come sintassi ti permette di fare con poche righe di codice: generics, dlegates, linq to xml, linq to object.
Ma è proprio su Linq che ho riscontrato problemi, in particolare nel costruire query linq che utilizzassero orderby su query con join, piuttosto che in query con più di 2 join.
Visto il poco tempo, non ho approfondito, ma l’errore era dovuto al tentativo di utilizzare jit per risolvere quelle query. E il jit non è permesso su IPOD/IPHONE.
La cosa curiosa e alquanto seccante è che il problema si verifica solamente quanto l’applicazione viene eseguita direttamente sul dispositivo, mentre sull’emulatore non ho mai riscontrato errori.
Per finire, alcune query linq sull’emulatore sono veloci, mentre sul dispositivo sono inspiegabilmente lente.
del.icio.us Tags:
MonoTouch,
IPhone,
.NET,
C#