Práticas recomendadas para LINQ to SQL Web Application

Na minha experiência em criar aplicativos da web, sempre usei uma abordagem de n camadas. Um DAL que obtém dados do banco de dados e preenche os objetos, e o BLL que obtém objetos do DAL e executa qualquer lógica comercial necessária neles, e o site que obtém os dados de exibição do BLL. Recentemente, comecei a aprender o LINQ e a maioria dos exemplos mostra as consultas que ocorrem diretamente nos códigos por trás dos aplicativos da Web (é possível que eu tenha visto apenas exemplos excessivamente simplificados). Nas arquiteturas de n camadas, isso sempre foi visto como um grande não-não.
Estou um pouco inseguro sobre como arquitetar um novo aplicativo Web. Eu tenho usado o Server Explorer e o designer de dbml no VS2008 para criar os relacionamentos de dbml e objeto. Parece-me um pouco incerto se o dbml seria considerado a camada DAL, se o site deveria chamar métodos dentro de um BLL, o que faria as consultas LINQ etc.
Quais são algumas das práticas recomendadas de arquitetura geral ou abordagens para criar uma solução de aplicativo da Web usando LINQ to SQL?

questionAnswers(2)

yourAnswerToTheQuestion