One of the things you should be aiming for in your
application design is to reduce the coupling between the
application front-end, business code and the database, so
that changes to the database needn't impact on your main
application. You can achieve this decoupling by a number
of means such as .Net remoting, COM+ Enterprise Services,
Web Services, or even just separating your database access
code from your presentation code in separate assemblies
(or separate VS.Net projects).
Web services give the advantage that you can publish your
objects on the Internet, allowing external agents
(customers, other areas of your own business) to call your
objects. This is at the expense of performance, as web
services are significantly slower than .Net remoting, and
many orders of magnitude slower than COM+ Enterprise
Services in ASP.Net applications. I would suggest only
using Web Services if you want to make your objects
accessible outside your organisation. In this case ensure
that your applications call the business and data access
code directly (or via Enterprise Services) and you create
web service wrappers only for use by callers external to
your application or organisation.
Hope this helps.
Neil.