Recentemente è stata discussa (con i miei colleghi) sull'opportunità o meno di eseguire controlli sui computer client per verificare la presenza di software specifico, all'interno di una piattaforma web, principalmente perché abbiamo alcuni requisiti per determinate azioni dell'utente e per aiutare diagnosticare alcuni problemi che potremmo registrare indipendentemente dal fatto che avessero effettivamente quel software. Su un PC degli utenti presso un'azienda interna, questo sembra abbastanza semplice visto che molte aziende avranno lo stesso software su ciascuna macchina, ma questo è su macchine client esterne all'azienda.
Come sarebbe client side tramite un'interfaccia web (costruita usando ASP.NET) suppongo che userò JavaScript per fare le ricerche, tuttavia mi viene in mente che ci sono potenziali pit-falls con questo, vale a dire :
-
Un utente può avere un software simile a quello che dici è un requisito, ad es. Apri Office invece di MS Office
-
Un utente potrebbe aver installato il software in una posizione diversa rispetto all'area predefinita
-
Un'enorme varietà di tipi di software su più sistemi operativi diversi (Windows, iOS, Android, ecc.)
-
Le versioni del software possono variare in modo da renderne conto, soprattutto perché possono essere installate in aree diverse (ad es. Visual Studio).
Ricordo anche le vecchie discussioni di molte lune fa che il controllo di cose come la versione del browser, o anche il sistema operativo, erano relativamente disapprovate e per me sembra semi-simile.
Quindi la mia domanda è la seguente:
Esiste una best practice per o contro il controllo del software su un computer client tramite un browser web? Sia per Adobe, o Word, o qualsiasi altro software che un sito Web potrebbe desiderare di avere. Idealmente, alcuni materiali di riferimento sarebbero fantastici.
A me sembra che ci siano molti aspetti negativi, e mette anche molto onere sulla pagina web per assicurare che un utente abbia il software corretto (sono convinto che in pratica una UI dovrebbe avere poco o nessun conoscenza operativa del suo sistema di back-end o qualsiasi altra cosa).
modifica solo per sottolineare, la mia domanda non è correlata all'utilizzo di JavaScript per fare ciò, è meglio fare pratica sul fatto che dovrebbe provare a fare qualche forma di controllare.