Sobre implementação de um "Custom Conflict Resolver"

Não é exigido que os alunos implementem um custom conflict resolver.

Devem apenas utilizar os custom conflict resolvers pré-definidos no SQL Server.

Erro de INTEGRITY durante synchronize em Merge Replication

Esse erro ocorre sob a forma de uma excepção quando se obtém uma snapshot filtrada da BD do servidor SQL Server.

Acontece normalmente quando existe um filtro (tipicamente com vários joins encadeados) sobre 2 tabelas com uma relação de chave estrangeira. Se o filtro estiver mal definido, pode acontecer o caso em que o filtro deixa passar registos da tabela com a chave estrangeira que apontam para registos da tabela apontada que são (incorrectamente) filtrados.

Ou seja, o snapshot que chegaria ao cliente violaria a integridade referencial.

Comunicação entre PDAs na fase 2

Devido à utilização da ligação por ActiveSync através de DMA para comunicação entre o Device Emulator e o computador host e para acesso à Internet, não é atribuído um endereço IP ao PDA emulado impossibilitando assim a comunicação directa entre duas instâncias distintas do Device Emulator, tanto no mesmo computador como em computadores distintos.

Recomenda-se assim a execução simultânea de duas instâncias da mesma aplicação na mesma instância do Device Emulator, utilizando o nome reservado "localhost" ou o endereço IP 127.0.0.1 para identificação da máquina, por uma questão de simplicidade.

A execução simultânea de duas instâncias da mesma aplicação na mesma instância do Device Emulator pode ser conseguida abrindo duas vezes a mesma solução do Visual Studio 2005, o que irá lançar duas instâncias distintas do Visual Studio 2005. Em cada instância do Visual Studio 2005 aberta inicia-se a execução da aplicação e indica-se em ambas a emulação do mesmo tipo de dispositivo. Apesar de poderem ser lançadas várias instâncias do Device Emulator no mesmo computador, para cada tipo de dispositivo só se pode lançar uma única instância do Device Emulator. Isto tem como resultado a execução das duas instâncias da aplicação na mesma instância do Device Emulator.

Alternativamente, em vez de abrir duas instâncias do Visual Studio 2005 pode-se lançar uma única instância do Visual Studio 2005, abrindo uma solução com dois projectos idênticos (com o mesmo código) e configurando as propriedades da solução para permitir a execução simultânea dos dois projectos. Mais uma vez, indica-se que se pretende a execução das duas instâncias no mesmo tipo de dispositivo.

Para alternar entre as duas instâncias da aplicação no Device Emulator, é necessário ir ao painel "Settings" do dispositivo, secção "System", categoria "Memory", opção "Running Programs". Tem-se assim acesso à lista das aplicações que estão em execução no momento, podendo-se activar uma aplicação em particular seleccionando-a nessa lista e premindo o botão "Activate".

Para simplificar e acelerar o desenvolvimento durante a fase 2, a aplicação pode ser compilada e executada como sendo uma Windows Application normal, bastando no fim confirmar se a aplicação funciona como previsto quando compilada como Device Application. Visto que o .NET CompactFramework oferece um subconjunto das funcionalidades da .NET Framework completa, oferecendo as mesmas classes e as mesmas interfaces de programação, não é necessário proceder a quaisquer modificações ao código fonte para a recompilação da Device Application como Windows Application.