Oui et non.
Cela dépend de l'architecture de votre application. Nous supposerons que vous construisez une application à n-tier, puisque la grande majorité des applications de nos jours ont tendance à suivre ce modèle.
La validation dans l'interface utilisateur est conçue pour fournir une rétroaction immédiate à l'utilisateur final du système afin d'empêcher l'exécution de la fonctionnalité dans les niveaux inférieurs en premier lieu avec des entrées non valides. Par exemple, vous ne voulez même pas essayer de contacter le serveur Active Directory sans un nom d'utilisateur et un mot de passe pour tenter l'authentification. La validation à ce stade vous permet d'économiser du temps de traitement lors de l'instanciation d'un objet, de sa configuration et d'un aller-retour inutile sur le serveur pour apprendre quelque chose que vous pourriez facilement déterminer grâce à une simple inspection des données.
La validation dans vos bibliothèques de classes est une autre histoire. Ici, vous validez les règles métier.Bien que l'on puisse soutenir que la validation dans l'interface utilisateur et la validation dans les bibliothèques de classes sont les mêmes, j'aurais tendance à ne pas être d'accord. La validation des règles métier a tendance à être beaucoup plus complexe. Vos règles dans ce cas peuvent être plus nuancées et peuvent détecter des éléments qui ne peuvent pas être glanés via l'interface utilisateur. Par exemple, vous pouvez appliquer une règle qui stipule que l'utilisateur peut exécuter une méthode uniquement après que toutes les propriétés d'une classe ont été correctement initialisées et uniquement si l'utilisateur est membre d'un groupe d'utilisateurs spécifique. Ou, vous pouvez spécifier qu'un objet ne peut être modifié que s'il n'a pas été modifié depuis vingt-quatre heures. Ou, vous pouvez simplement spécifier qu'une valeur de chaîne ne peut pas être nulle ou vide. Dans mon esprit, cependant, un logiciel correctement conçu utilise un mécanisme commun pour appliquer DRY (si possible) à la fois de l'interface utilisateur et de la bibliothèque de classes. Dans la plupart des cas, c'est possible. (Dans de nombreux cas, le code est si trivial, ça ne vaut pas la peine.)
Ainsi, en effet, par ex. une vérification de chaîne vide n'est pas une règle métier, c'est une règle de validation. Une règle métier doit être plus concernée par la vérification, il est logique de faire une action, pas que les données sont valides pour effectuer une action? – user9659
Une chaîne vide est à la fois une vérification d'interface utilisateur et une validation de règle métier. Si le client a JavaScript désactivé, la validation côté client ne se déclenchera jamais. Cela ne signifie pas que vous ne vérifierez jamais la présence d'une chaîne vide car vos règles métier doivent gérer ce cas dans le moteur de règles. Comme l'a dit MikeHofer, la validation de l'interface utilisateur consiste à fournir une rétroaction immédiate au client. – azamsharp