Pergunta

Eu vou (espero) estar assumindo um grande projeto para migrar uma empresa aplicação do Visual FoxPro para C # 3.0 no .NET 3.5. Eu sei que esta aplicação tem um grande número de configurações que têm um impacto sobre tudo, desde configurações multi-user / multi-site para propriedades do relatório. Há pelo menos 150 configurações diferentes que estão atualmente no escopo global.

As definições são actualmente apenas armazenado como bits em banco de dados do aplicativo, o que impede que sejam alteradas a nível de usuário, uma vez que todas as instâncias compartilham o mesmo banco de dados.

A minha pergunta é, você sabe de alguma maneira de lidar com o armazenamento dessas configurações que lhes permitam ser alterado por usuário, sem sacrificar o desempenho? Seria também precisam ser armazenados de uma forma que permite que os valores sejam alterados enquanto o aplicativo é executado. Alguma idéia seria apreciada.

Foi útil?

Solução

arquivo

Os Settings.Settings padrão Acredito ofertas que você esta funcionalidade, incluindo a aplicação ou variáveis ??com escopo do usuário. Embora eu não estou 100% certo se as mudanças são apanhados sem reiniciar o aplicativo.

Veja aqui para mais informações: MSDN: Usando configurações em C #

Outras dicas

Se você quer ir "empresa", você pode tentar ter uma tabela de definições de configuração, emparelhado com mesa de um usuário configurações.

As definições de configuração teria o PK definido por uma coluna de domínio (para configurações de interface do usuário, configurações de conexão, configurações de idioma e assim por diante ...), e um identificador de configuração. A terceira coluna define o valor padrão / global.

As configurações do usuário teria o conjunto PK a definição definições PK + ID de usuário e uma coluna de valor de ajuste, varchar (x).

Se a aplicação é a linguagem consciente, colunas ID de idioma deve ser adicionado a ambas as tabelas.

Saving usuário alterações na tabela de configurações de usuário deve ser trivial. Ser notificado quando a mudança configurações globais é um pouco mais complicado.

EDIT: uma coisa a ter em mente é a de sempre fallback a algum padrão:. Configuração de idioma global / default

Adicionar um campo de usuário para a tabela no banco de dados do aplicativo que armazena as configurações e, em seguida, adicione o usuário atual como um parâmetro para todas as chamadas de leitura / gravação para esta tabela.

Você pode ter que trabalhar através logicamente para os itens que são dados / aplicação específica vs específica do usuário. Em VFP (FoxPro), as tabelas e suas respectivas chaves primárias são, obviamente, o mesmo, independentemente do usuário. Outras coisas, como valores padrão pode ser personalizada por cada usuário, contas, acesso, capacidade de adicionar / editar / apagar, etc.

HTH

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top