Como fazer uma (tela) de recursos acessíveis a apenas um usuário de cada vez em um aplicativo .NET distribuído?

votos
1

Eu tenho um aplicativo Windows Forms com base servidor cliente que precisa de um administrador única tela. A funcionalidade administrador precisa ser implementado de tal forma que, em determinado momento apenas um administrador pode acessar essa tela. O Windows Forms fala aplicativo cliente para o servidor usando Remoting. E do lado do servidor é distribuído em várias máquinas.

Publicado 09/12/2008 em 21:26
fonte usuário
Em outras línguas...                            


2 respostas

votos
3

Isso pode ser feito mais facilmente através da utilização de uma tabela DB. Normalmente, a DB já é tolerante a falhas e é um recurso seguro para uso em um cenário de bloqueio compartilhado. Basta ter uma tabela de bloqueio que contém algumas informações sobre o recurso bloqueado, quem o tem, quando, etc.

Você também pode usar um dos vários "servidores do Estado" no mercado para armazenar o estado de bloqueio. Esta é a introdução de um ponto de falha, porém, a menos que você investir em uma das mais recentes tecnologias estaduais distribuídos.

No entanto, você está realmente se preparando para outras questões. Você vai precisar de uma tela para permitir forçando um desbloqueio, vendo que tem o bloqueio, etc. Você é melhor fora olhando por esse bloqueio é realmente necessário. É uma tecnologia ou negócio requisito? Você pode mais facilmente e de forma limpa implementar um cenário de atualização de dados pessimistas que iria melhorar a experiência do usuário.

Respondeu 09/12/2008 em 21:31
fonte usuário

votos
0

Você precisa manter um membro estático no servidor que indica se a janela está atualmente em uso. Certifique-se de que é thread-safe usando o lock () função quando definir o valor. Você pode então verificar que o valor antes de mostrar o ecrã de administração.

Na medida em que o lado do servidor está em causa, você menciona que existe em múltiplos PCs. É este uma carga tipo equilibrado de topolgy que funcionam como um servidor virtual? Se assim você pode precisar para manter o valor em um banco de dados. Pense nisso da mesma forma que ASP.Net persistir estado da sessão . I pode existir no servidor, mas se houver um farm de servidores que podem ser movidos para SQL Server para utilização por todos os servidores.

Respondeu 09/12/2008 em 21:33
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more