Questa settimana voglio avviare un progetto di app più grande che dovrebbe gestire molti dati. L'app fornirà un forum interattivo, una libreria multimediale che consente lo streaming e un modulo attività con notifiche push.
I dati del forum e i video devono essere ospitati su un server e forniti tramite un servizio, in modo sicuro.
Dato che sono principalmente un programmatore C # e amo EntityFramework, ho deciso di creare l'app in Xamarin.Forms che ha come target netstandard2.0
con EntityFramework.Core
(avremo a malapena bisogno di una funzionalità UI speciale oltre alle cose offerte da Xamarin.Forms ). Voglio anche creare un servizio WCF che utilizza EntityFramework sul lato server. Dovrebbe gestire la pubblicazione nel forum e fornire URL video temporanei dalla libreria multimediale.
Il catalogo multimediale fornirà contenuti a pagamento, quindi abbiamo bisogno della massima sicurezza. I flussi di dati del servizio bruceranno, a causa di molti dati di trasferimento, quindi abbiamo anche bisogno delle massime prestazioni. Tuttavia, la sicurezza sulle prestazioni. Le condizioni richiedono di gestire 50k utenti attivi allo stesso tempo.
Le mie domande sono:
- Quale protocollo di trasferimento dovrei scegliere per il servizio WCF e perché?
- Il server ospiterà anche un IIS per il sito web dell'app, dovrei ospitare il servizio su IIS o dovrei creare un servizio WCF tradizionale ospitato da Windows stesso?
- Qual è il modo migliore per garantire che il servizio WCF possa essere raggiunto solo dall'app? Poiché Xamarin utilizza Mono, le persone potrebbero decompilare l'app e leggere il suo codice sorgente molto facilmente. Ho bisogno di un'autenticazione corretta che non consentirebbe a nessuno di aggirare l'app e comunicare direttamente con il nostro servizio.