I’m developing ASP.net application which use web services. There are no data base connections directly from my application — all the activities are handled using web services.
In the UI layer I can do the data customizations and validations using a few lines of Linq code. What are the drawbacks if I don’t have a business layer for my application?
Putting all your validation and business logic into its own tier is good for many reasons.
It keeps all of your business logic localized, and in one place. Future changes will be much easier as a result.
It allows you to more easily unit test your business logic. This is a big one. It’s very difficult to write automated unit tests against your business logic if this code is tightly coupled to your web page, or windows form.
It keeps your UI much slimmer.
See also: single responsibility principle (in a nutshell, your UI classes should do UI things, not business-logic things).