Ideally, users will fill the web form with necessary information and finish their job successfully. In this article we will go beyond the validation itself and explore different validation and error feedback techniques, methods and approaches. The goal of web form validation is to ensure that the user provided necessary and properly formatted information needed to successfully complete an operation.An application service method should first check (validate) input and then use it. NET Boilerplate provides a good infrastructure to automatically validate all inputs of an application for; See Disabling Validation section to disable validation if needed. NET Boilerplate supports data annotation attributes. Assume that we're developing a Task application service that is used to create a task and gets an input as shown below: Here, Description property is marked as Required. There are also many attributes (like Max Length, Min Length, Regular Expression...) in System. It also throws Abp Validation Exception if any of the input properties are invalid. NET MVC's validation but notice that an application service class is not derived from Controller, it's a plain class and can work even out of a web application. In addition to ICustom Validate, ABP also supports . You can also implement it to perform additional custom validations.
It's better to check a form first in the client and show invalid fields to the user.Server-side validation is enough to have a successful and secure form validation.For better user experience, however, you might consider using client-side validation.But, server-side validation is more critical and unavoidable. NET Boilerplate also checks if input is null and throws Abp Validation Exception if so.Server side validation is generally implemented in application services or controllers (in general, all services get data from presentation layer). See Task application service implementation: As you see, no validation code is written since ASP. So, you don't have to write null-check code (guard clause). Ioc Resolver to resolve dependencies if needed in validation progress.