![]() |
António Roberto Software |
|
Linguagens de Programação
2
|
3º ano da
Licenciatura em Informática de Gestão
|
Aula de 12 de Outubro de 2004
Apresentação e discussão da solução do exercício da aula anterior.
Exercício
Objectivos
criação de DLL Assemblies
Divisão de uma aplicação em blocos (Assemblies)
manutenção do paradigma Cliente-Servidor
o servidor TurmaServer num Assembly DLL
o cliente ClienteTurma num Assembly EXE
referência a Assemblies Dll
Distinção entre aplicações monolíticas e aplicações divididas em blocos
Haverá ainda tempo para alargar a funcionalidade do cliente
com a inclusão da listagem dos alunos
Crie uma pasta (ex: C:\LP2\Outubro12) que servirá de base aos dois projectos. Faça o download da solução WinRegistoAlunos (os ficheiros fonte serão necessários para este exercício).
1º Projecto
Crie um novo projecto do tipo Class Library com o nome TurmaServer
Elimine a classe Class1.vb da janela Solution Explorer
Copie para a directoria do novo projecto os ficheiros Aluno.vb, Turma.vb, AlunoArrayList.vb e TurmaServer.vb, que fazem parte da solução WinRegistoAlunos
Adicione os quatro ficheiros mencionados no ponto anterior ao novo projecto através de Project / Add Existing Item ...
Altere o namespace do projecto para LP2
seleccione o projecto TurmaServer na janela Solution Explorer. Clique no botão direito do rato, e escolha a opção Properties do menu de contexto
na janela TurmaServer Property Pages, substitua na caixa Root namespace TurmaServer por LP2
Faça Rebuild Solution (o projecto é compilado sem erros)
Feche o projecto
Repare que na directoria bin do novo projecto a existência do ficheiro TurmaServer.dll
2º Projecto
Crie um novo projecto do tipo Windows Application com o nome ClienteTurma
Elimine a classe Form1.vb da janela Solution Explorer
Copie para a directoria do novo projecto os ficheiros CliTurma.vb, CliTurma.resx e App.Config, que fazem parte da solução WinRegistoAlunos
Adicione os primeiros dois ficheiros mencionados no ponto anterior ao novo projecto através de Project / Add Existing Item ...
Adicione o ficheiro App.Config ao novo projecto através de Project / Add Existing Item (seleccione a opção Web Files na caixa Files of Type da janela Add Existing Item)
Adicione uma referência para o Assembly TurmaServer.dll
Faça Project / Add Reference
Na janela Add Reference, seleccione o separador .NET
Clique no botão Browse
Navegue até à directoria Bin do projecto TurmaServer
Seleccione o ficheiro TurmaServer.dll e clique no botão Open, seguido de um clique no botão OK
Abra a janela Object Browser com View / Other Windows / Object Browser
Observe o namespace LP e as classes nele contidas(os seus métodos e as suas propriedades)
Faça Rebuild Solution (a compilação dá 4 erros)
Elimine os primeiros três erros acrescentando a linha Imports LP2
Fala duplo-clique no 4º erro e escolha para Startut Object o ClienteTurma.CliTurma
Execute o programa. Insira alguns alunos. Feche o Projecto
Repare na directoria bin do novo projecto. Observe os seguintes ficheiros:
TurmaServer.dll o ficheiro TurmaServer.dll foi copiado da directoria original para a directoria destino
LP2.xml
ClienteTurma.exe.config o ficheiro de configuração
A palavra Friend (afinação do TurmaServer)
Se observar o Object Browser do projecto ClienteTurma, a classe Turma está acessível, sendo por isso possível instanciar objectos da classe Turma, e usar as suas propriedades. É possível construir objectos da classe Aluno utilizando o construtor sem parâmetros. Também é possível instanciar objectos da classe ArrayList, e utilizar o método Add e a propriedade Item.
É possível controlar o acesso, às entidades externas a um Assembly, a diversos elementos de programação de um Assembly através da palavra Friend.
Antes de aplicar a palavra Friend (Object Browser de ClienteTurma)
Abra o projecto TurmaServer
Para estas alterações terem efeito no projecto ClienteTurma:
Depois de aplicar a palavra Friend (Object Browser de ClienteTurma)

Nota: Para visualizar no Object Browser as alterações efectuadas no TurmaServer, terá de fechar o projecto e tornar a abri-lo.
Estenda a funcionalidade do ClienteTurma
Ver solução do exercício da aula seguinte.Alargue a funcionalidade do cliente, com a inclusão da listagem dos alunos.