Las capas de un proyecto se dan de acuerdo a lo que el grupo de trabajo requiera, la definicion dice que se concibe por la necesidad de agrupar operacoiones de misma naturaleza( para disminuir el acoplamiento y aumentar la cohesion interna), esto quiere decir que encuentra su razon de ser por el hecho de que en un proyecto las operaciones a realizar se pueden separar en grupos para su mejor manipulacion( en muchos casos se presta a confucion decir capas y niveles, no es lo mismo, capas: es la forma en que esta dividida nuestra aplicacion de forma logica y niveles : es la distribucion fisica que puede ser en varios servidores ).
Las capas por lo general son:
- Capa de presentación
- Capa de negocio
- Capa de datos

Capa de presentación:
esta capa es la que se va a relacionar con el usuario ( en unas palabra la que presenta el sistema al usuario), por lo tanto tiene que ser facil de entender ( nos tiene que ir indicando que es lo que hay que hacer ), atencion !!! en esta capa hay que controlar todos los errores como ultima instancia, desde el mas especifico al mas general ( en c# Exception es el mas general), esta capa puede ser realizada en conjunto con un diseñador. El usuario tiene que creer que puede hacer de todo ( en realidad no es asi ya que nosotros tenemos todo controlado )

Capa de negocio:
esta es la capa donde se realizan todas la validaciones que el sistema requiera y hace de intermediaria entre las capas de presentacion y la capa de datos, las validaciones simples de string.Empty() y otras parecidas se realizan en la interfaz, un ej de una validacion propia del sistema es " los usuarios no pueden tener un dni repetido con otro cliente y tampoco con algun vendedor " . Muchos diran porque hacerlo aparte si se puede hacer todo en el mismo lugar, esto no solo se hace para que el trabajo en equipo sea mas facil y rentable, sino tambien para que la aplicacion no dependa de la interfaz ( el dia de mañana queremos que nuestro proyecto sea ejecutado desde un Ipod, solo modificando y adaptando la capa de interfaz de usuario saldría andando muy bien).

Capa de datos:
aquí se da el acceso a los datos de una BD , en muchos casos es necesario hacer una interfaz ( no es lo mismo que interfaz de usuario, en realidad nada que ver ) para tratar a cualquier manejador de datos de = forma y que nuestra aplicacion tampoco dependa de una BD en particular. Se colocan las conexiones, storeprocedure / consultas / vistas , etc

Para finalizar con esta explicacion muy muy corta de capas , quiero comentarles que el acceso entre ellas es:
Capa de presentación<--->Capa de negocio<---> IDatos <--->Capa de datos.
en este mismo post colocare un ej (cuando lo termine, espero que sea rapido ) muy util de capas donde podran ver claramente como es esta modalidad ( todo en ASP.NET(c#) porque es el lenguaje en el que estoy mas comodo ), podran decir " y porque no espero a tener el ej", porque quiero que tengan una simple vicion de lo que es dividir una aplicacion en capas y lo util que puede ser.

Saludos

PD: el tema da para horas de charla y muchas hojas escritas.