Devo evitare FaultException per i messaggi di errore di validazione personalizzata al client [duplicato]

-1

Lavoriamo come un team su un progetto che utilizza attualmente WCF come tra client e server.

Tutte le regole aziendali sono scritte sulle classi di gestori che vengono utilizzate dal servizio, quindi significa che nessuna regola di convalida sarà sul lato client (ad esempio il nome utente duplicato)

finora, in caso di mancata convalida della convalida del nome utente, lanciamo faultException dal servizio e usiamo tali errori. Le eccezioni possono essere utilizzate dal client per verificare perché l'operazione non è riuscita.

Ora il mio manager vuole che non dovremmo usare faultException. lui ha i seguenti punti

  1. Il lancio di eccezioni per i messaggi di convalida non è un buon approccio.
  2. Il lancio e la presa di EXCE richiedono più tempo.
  3. Ogni volta che il client deve controllare il blocco catch faultException prima di qualsiasi altro blocco catch

quindi ci ha dato l'idea di implementare i metodi di servizio con un parametro aggiuntivo che sarà il tipo di errore di classe oggetto di errore. qualsiasi regola di convalida verrà aggiunta a quel tipo di ref e il client verificherà prima tale ref e se qualche client di errore può mostrare un messaggio di convalida.

quindi le mie domande sono

  1. utilizzare veramente faultException per la convalida delle regole di business è una cattiva pratica?
  2. quali sono gli svantaggi dell'uso di varibales come parametro nei contratti di servizio?
  3. Quale sarà l'approccio migliore se un altro normalmente usa nel mondo della programmazione?
posta rahularyansharma 17.04.2015 - 10:36
fonte

1 risposta

1

what are cons of using ref varibales as parameter in service operation contracts ?

Ho scritto per la prima volta: "Il principale problema è che questo non funziona., punto, hai bisogno di un altro approccio". Sembra che non sia corretto, a patto che non lasci l'ambiente .NET, sembra funzionare. Tuttavia, i parametri ref sono considerati cattivi risultati anche nel codice normale di Microsoft. Lunga spiegazione qui . Semplicemente non è necessario avere parametri ref o out .

Mi aspetto una convalida per return come risultato. Come valore di ritorno o se sono richieste più informazioni come classe che incapsula valori di ritorno e messaggi di errore.

Se la convalida stessa non può essere elaborata (come controlli su un database ma il database non era disponibile) allora mi aspetterei davvero un'eccezione.

    
risposta data 17.04.2015 - 13:32
fonte

Leggi altre domande sui tag