Controlando o acesso ao TableAdapter

Com o novo TableAdapter ficou muito simples criar aplicações de acesso a dados, até mesmo em camadas.

Porém quando criamos um TableAdapter dentro de uma ClassLibrary, em geral desejamos que a ClassLibrary forneça para o client a DataTable gerada, não o TableAdapter.

Porém na configuração default o tableAdapter fica visivel ao client, permitindo que o client faça vinculos diretos com o TableAdapter e desta forma acesse o banco sem passar pelas regras de negócio.

Felizmente a solução para isso é bem simples: Basta, dentro do dataSet, alterar a propriedade Modifiers do TableAdapter para Friend ao invés de Public. A dataTable permanece como Public, o TableAdapter vira Friend. Isso impede o TableAdapter de ser acessado fora de nossa classLibrary.