View Full Version : [.NET/JAVA/Obj-C] Windows Service <-> Smartphones
astorcas
09-09-2010, 14:08
Ciao a tutti, ho bisogno di un vostro parere.
Mi è stato chiesto se era possibile sviluppare un servizio windows a cui, oltre che a una normale applicazione desktop/web o chennesò, deve potersi interfacciare a IPhone (quindi obj-c), Android (Java), e dispositivi Windows Mobile (.Net).
Dando per certo che ho carta bianca, credete che la cosa sia fattibile in tempi non biblici? Non ho mai sviluppato seriamente su dispositivi mobili e quindi chiedevo pareri ai più esperti!
Grasssie
Kralizek
09-09-2010, 14:26
crei un bel servizio WCF, lo hosti in un servizio windows ed amen (ancora meglio AppFabric o IIS7)
per l'iphone, dipende cosa devi fare. io dovevo presentare dei dati sotto forma di pList (che formato del caxxo). Con un po' di lavoro e di aiuto da un mvp sui forum ufficiali, mi sono scritto un'implementazione dell'XmlObjectSerializer e la uso per serializzare il tutto in formato plist.
Per farti capire, con l'aiuto degli endpoint ho ottenuto questo:
Xml (http://www.educations.com/webservices/mobilesearch.svc/xml/getcities/271/42), Json (http://www.educations.com/webservices/mobilesearch.svc/json/getcities/271/42), iPhone (http://www.educations.com/webservices/mobilesearch.svc/iphone/getcities/271/42).
Al momento tutto si basa su diversi webHttpBinding ma nulla mi vieta di aggiungere un basicHttpBinding o un wsHttpBinding o qualsiasi altro binding io voglia utilizzare =)
Se cerchi sui forum ufficiali, ci dovrebbe ancora essere il mio topic.
tomminno
09-09-2010, 14:36
crei un bel servizio WCF, lo hosti in un servizio windows ed amen (ancora meglio AppFabric o IIS7)
Oddio quanto a compatibilità universale WCF non è che sia granchè, il più delle volte tocca rintanarsi nel BasicHttpBinding per evitare problemi e anche lì potrebbero nascere problemi.
Per esperienza personale per un webservice universalmente accessibile andrei su un tradizionale ASP.NET.
astorcas
09-09-2010, 15:43
Ok, in effetti ero orientato verso qualcosa tipo WSE. Ma mi chiedevo, per quanto riguarda l'iphone, la distribuzione di un software deve per forza passare da mamma Apple e l'AppStore? E con Android come funzionano le cose?
banryu79
09-09-2010, 15:49
Ok, in effetti ero orientato verso qualcosa tipo WSE. Ma mi chiedevo, per quanto riguarda l'iphone, la distribuzione di un software deve per forza passare da mamma Apple e l'AppStore? E con Android come funzionano le cose?
Mi intrometto solo per segnalarti che c'è una discussione (i cui ultimi interventi risalgono a due-tre giorni fa) che potrebbe interessarti -> link (http://www.hwupgrade.it/forum/showthread.php?t=2191997)
astorcas
09-09-2010, 16:00
Mi intrometto solo per segnalarti che c'è una discussione (i cui ultimi interventi risalgono a due-tre giorni fa) che potrebbe interessarti -> link (http://www.hwupgrade.it/forum/showthread.php?t=2191997)
Conosco la discussione, lì si parla di scelta di piattaforma. Io la scelta l'ho già fatta: tutte quante! :)
tomminno
09-09-2010, 16:21
Ok, in effetti ero orientato verso qualcosa tipo WSE. Ma mi chiedevo, per quanto riguarda l'iphone, la distribuzione di un software deve per forza passare da mamma Apple e l'AppStore? E con Android come funzionano le cose?
Scordati WSE che non è assolutamente standard.
Addirittura non è più supportato da Microsoft.
Puoi richiamare un webservice WSE solo con un client WSE e oltretutto solo se server e client adottano la stessa versione di WSE.
Infine WSE non è integrato in VS2008, devi andare a crearti un plugin di Visual Studio per abilitare la possibilità di creare un webservice (o un client) WSE.
Non ho idea di come sia messo il supporto a VS2010.
astorcas
09-09-2010, 16:25
Scordati WSE che non è assolutamente standard.
Addirittura non è più supportato da Microsoft.
Puoi richiamare un webservice WSE solo con un client WSE e oltretutto solo se server e client adottano la stessa versione di WSE.
Infine WSE non è integrato in VS2008, devi andare a crearti un plugin di Visual Studio per abilitare la possibilità di creare un webservice (o un client) WSE.
Non ho idea di come sia messo il supporto a VS2010.
ehm non so da dove l'ho tirato fuori WSE.... saranno secoli che non lo nomino! Intendevo WCF ovviamente
tomminno
09-09-2010, 16:46
ehm non so da dove l'ho tirato fuori WSE.... saranno secoli che non lo nomino! Intendevo WCF ovviamente
:stordita:
Ah ok, per l'appunto WSE era una vecchia estensione ai webservice ASP.Net che aggiungeva funzioni di sicurezza.
Comunque per WCF devi limitarti al BasicHttpBinding altrimenti sarà praticamente impossibile connettersi da iPhone e quasi sicuramente anche da Android.
Kralizek
09-09-2010, 20:00
Oddio quanto a compatibilità universale WCF non è che sia granchè, il più delle volte tocca rintanarsi nel BasicHttpBinding per evitare problemi e anche lì potrebbero nascere problemi.
Per esperienza personale per un webservice universalmente accessibile andrei su un tradizionale ASP.NET.
ma se il wsHttpBinding è l'unica implementazione completa dello stack ws-*... o.O
cioè, ms fa parte del consorzio di sviluppo di ws-* e vuoi vedere che non riescono ad attenersi allo standard?
io ti posso solo dire che combatto tutti i giorni con servizi wcf multi canale, con condivisione di porta, compressioni e autenticazione tramite certificato il tutto tramite binding net.tcp..... quindi tu immagina come vedo di buon occhio wcf
Ad ogni modo per me con un basichttpbinding vai tranquillo, certo le prestazioni non sono quelle del net.tcp ma di certo con il net.tcp non vai da nessuna parte....
Kralizek
10-09-2010, 22:16
io ti posso solo dire che combatto tutti i giorni con servizi wcf multi canale, con condivisione di porta, compressioni e autenticazione tramite certificato il tutto tramite binding net.tcp..... quindi tu immagina come vedo di buon occhio wcf
Ad ogni modo per me con un basichttpbinding vai tranquillo, certo le prestazioni non sono quelle del net.tcp ma di certo con il net.tcp non vai da nessuna parte....
vabbè ma net.tcp non è nient'altro che la cara vecchia socket tcp che è ad un livello più basso di ws-*.
tomminno
10-09-2010, 22:46
io ti posso solo dire che combatto tutti i giorni con servizi wcf multi canale, con condivisione di porta, compressioni e autenticazione tramite certificato il tutto tramite binding net.tcp..... quindi tu immagina come vedo di buon occhio wcf
Ad ogni modo per me con un basichttpbinding vai tranquillo, certo le prestazioni non sono quelle del net.tcp ma di certo con il net.tcp non vai da nessuna parte....
Peccato che NetTcpBinding non sia interoperabile in quanto ci vuole .NET anche sul client.
Peccato che NetTcpBinding non sia interoperabile in quanto ci vuole .NET anche sul client.
Ma sai leggere? ho scritto subito che con il net.tcp non vai da nessuna parte.....
vabbè ma net.tcp non è nient'altro che la cara vecchia socket tcp che è ad un livello più basso di ws-*.
vero ma.... non c'è paragone.... qundo hai a che fare con grafi di oggetti complessi, con milioni di entità che vanno avanti e indietro non c'è niente di meglio che il vecchio socket tcp, o wcf net.tcp di oggi.... non c'è protocollo appoggiato sul web che gli vada vicino....
Kralizek
11-09-2010, 10:24
:stordita:
Ah ok, per l'appunto WSE era una vecchia estensione ai webservice ASP.Net che aggiungeva funzioni di sicurezza.
Comunque per WCF devi limitarti al BasicHttpBinding altrimenti sarà praticamente impossibile connettersi da iPhone e quasi sicuramente anche da Android.
che io sappia l'iphone non ha supporto nativo ai web services. noi, come puoi vedere sopra, abbiamo risolto con un webHttpBinding e con un endpoint che è associato ad un serializzatore personalizzato.
astorcas
13-09-2010, 15:13
che io sappia l'iphone non ha supporto nativo ai web services. noi, come puoi vedere sopra, abbiamo risolto con un webHttpBinding e con un endpoint che è associato ad un serializzatore personalizzato.
e io ti ho rubato l'idea, pari pari :)
Grazie, sembra che la strada sia quella giusta!
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.