Pessoal, estou escrendo aqui para explicar como eu pensei em fazer com o projeto integrador.
Seguindo os preceitos de usar camadas numa descrição de baixo para cima:
[Persistência] -> [Controle] -> [WebService] -> [Interface com o Usuário]
Teremos então:
[Banco] -> SQLServer 2005: Nice e Eliane estão fazendo mudanças na estrutura do banco para se adequar às necessidades delas. Acredito que vá funcionar para todos, mas estou esperando essa mudança (de acara achei muito valiosa as alterações).
[Controle] -> Classes em C#: Fiz o básico nas classes que eu criei com o banco que tínhamos até aqui. Listar dados, inserir dado, alterar dado e excluir dados. Claro que em todos os casos vamos precisar de mais que isso para fazermos nossos casos de uso, mas pelo menos isso já está feito de exemplo.
[WebService] -> Serviço em C#: Estou implementando apenas um Webservice para servir de exemplo. Sofri prá burro tentando usar os dados no consumidor do webservice, mas agora à noite consegui receber os dados e manipular sem problemas. Esse era meu maior problema, mas agora está sanado.
[Interface web com o usuario] -> ASP.Net com C#: Fiz um template seguindo o padrão que Eliane desenhou e implementou em html com css. Desse template criei uma página principal.Master que serve de modelo para todas as páginas que a gente precise usar. Depois, quando formos implementar a segurança do sistema, vamos criar outra página master com restrição de acesso para as páginas que precisarmos proibir acessos. Aí é só trocar o master das páginas que a gente precisar.
Bom, finalmente, vamos entender como a coisa funciona:
1 - Criei uma Solução com o Visual Studio e depois, dentro dessa solução, criei um projeto ‘class library’ que chamei de modelo.
2 - Na mesma solução, criei outro projeto ‘class library’ que chamei de Controle.
3 - Na mesma solução, criei um outro projeto ‘webservice’ e chamei de WebService.
4 - Finalmente criei outro projeto na mesma solução para um website dinâmico.
Assim, a solução ficou com essa árvore de diretórios:

No projeto Modelo eu criei as entidades com os Gets e Sets normais de qualquer atributo de uma classe. Vejam o modelo de Nivel:

Observem que criei duas classes no mesmo arquivo: uma class nivel e outra classe Niveis. Niveis é somente uma coleção de Nivel, ok?
Agora, eu criei a mesma class nivel no Projeto Controle para conter as regras de negócio, o controle da classe e as formas de salvar os dados no banco de dados. Vejam como ficou a classe dentro do projeto Controle:

Primeira coisa que a gente observa é que o controle herda do modelo e assim a gente tem todos os métodos contidos no modelo. No início da classe eu criei uma string que vai funcionar em toda classe para acessar o banco de dados. Observe que ela não contém a string de conexão, mas uma referência para um registro no arquivo de configurações do projeto. Assim, eu nem preciso recompilar o projeto caso queira trocar o mesmo de banco de dados. Basta ir no XML de configurações do projeto e alterar a linha do arquivo que traz essa informação.
Depois eu declaro as ações necessárias ao CRUD. As outras ações necessárias podem ser acrescentadas criando novos métodos nessa classe de controle.
No WebService eu crio aquilo que eu quero que os clientes (programas que vão acessar o webservice) precisem para funcionar. Eu posso criar um webservice só para todo o sistema, mas é interessante que a gente publique cada caso de uso em um webservice diferente até porque aí a gente pode modificar somente o webservice que a gente quiser sem interferir nos demais.
Pronto, até aqui a gente fez a cozinha do sistema. Tudo bonito e funcional mas sem cara para o cliente.
Agora eu crio no projeto ComcursoConsumo um webform (eu usei o nome do caso de uso) para consumir o webservice. Nas referências desse projeto eu adiciono uma ‘web reference’. Observe para não tentar usar uma ‘reference’ que não seja web, porque não vai funcionar direito.

Escolha a primeira opção que aparece na janela seguinte. Ela diz: “WebServices in this solution’

Com isso o próprio visual studio executa o webservice, ler os parâmetros do serviço e seta todas as situações para você. Fica fácil depois porque vc só tem que escolher os métodos que quer usar e dar um nome para a referência.

Finalmente clique em Add reference (depois de dar um nome mais fácil de entender que ‘localhost’ ) e pronto. Seu webservice já está referenciado na sua aplicação consumidora.
Ainda não acabou. Vamos ao formulário que vai chamar o webservice, consumir o serviço e finalmente mostrar os dados do webservice na página.
Primeiro, vamos criar uma nova página seguindo o principal.Master. Clique com o botão direito no arquivo ‘principal.Master’ e em seguida em ‘add content page’ :

O Visual Studio já cria a página com os elementos colocados e travados, você só tem que cuidar de fazer o conteúdo. E esse vai ser feito pelo webservice, legal, não?
Vá arrastando os controles da ToolBox e colocando no Content Holder (não se preocupe que você não vai conseguir soltar em outro canto mesmo). Eu coloquei 3 textbox e um botão porque meu caso de uso precisa de 3 parâmetros para funcionar. Ficou assim:

Depois eu troquei o Text de cada um para refletir o que deveria ser escrito em cada um dos 3 campos e troquei o text do botão para ficar mais amigável. Abaixo desses controles, eu inseri uma GridView. Ficou assim:

Agora vem a programação propriamente dita. Dê dois cliques no botão ‘Criar Relatório’ e ele vai abrir o ‘Code Behind’ que vai capturar o evento de click do botão. Nesse evento o site vai solicitar ao webservice os dados que eu programar e colocá-los no gridview. Assim:

Ei, mas que nome esquisito é esse? ComcursosConsumo.RelatorioAnalitico.LerRelatorio ???
Foi que eu criei o Projeto com o Nome de ComcursosConsumo, depois fiz a referência ao webService chamar-se de RelatorioAnalitico e finalmente fiz o método remoto se chamar de LerRelatorio. explicado? Então pronto.

Agora é só definir que o arquivo ‘LerRelatorioAnalitico.aspx’ é o arquivo inicial do projeto ‘Comcursosconsumo’ e setar o projeto como Projeto inicial da solução:

Agora é botar o bicho para rodar e testar. Boa sorte. o código disso tudo?
Aqui. O Projeto Completo