Abertura e Fechamento de Conexão

Boa tarde,

Estou desenvolvendo uma aplicação Desktop em C# e estou com uma duvida.
Atualmente para cada operação no banco que eu executo (ORACLE) eu abro e fecho a conexão.

Minha duvida é a seguinte: Essa minha forma de abrir e fechar a conexão a cada query executada é muito custosa pra aplicação ? É melhor eu abrir uma conexão e só fecha-la quando o usuário sair da minha aplicação ?

Obrigado

Aplicação desktop client/server rodando em rede interna não faz tao mal manter a conexão aberta e vai ser mais rápido para o usuário. A nao ser que exista limitação de conexões no servidor de banco de dados. Ai no caso mantenha a conexao aberta somente durante a açao do usuario.

Com certeza aplicação desktop o melhor e fazer um único fechamento ao sair da aplicação considerando que a conexão de estar aberta enquanto utilize a aplicação.Veja como abstração do mundo real cito o exemplo que ao tomarmos banho deixamos o chuveiro aberto enquanto estivermos o utilizando, agora tem quem abre o chuveiro e antes de se ensaboar desliga o chuveiro e abre somente ao se enxaguar de novo o que depende de cada um mas na minha opinião mantenha a conexão aberta até não precisar mais dela ou seja ao finalizar o aplicativo.

Eu não manteria a conexão aberta. Use um pool de conexões. Existem vários open sources por ai. É o melhor custo x benefício entre manter conexões ociosas e arcar com o custo de ficar abrindo conexões a todo momento.