Tenho uma aplicação desktop e estou precisando implementar o padrão Session-per-request. Porém minha aplição desktop não trabalha com requisições.
Como faço para implementar algo similar em uma aplicação desktop?
OBS: Sei perfeitamente como funciona o padrão Session-per-requestem aplicações web e quero implementar algo parecido para aplicações desktop, tem alguma dica?
Para quem não sabe! Session-per-request é um padrão de projeto baseado em aplicações web Finalidade: controle as sessões abertas Beneficio: evitar que várias sessões desnecessárias sejam abertas ao mesmo tempo reduzindo o consumo de banco Funcionamento: vc faz uma requisição e abre uma sessão, ao encerrar a requisição a sessão será encerrada ou seja um sessão é aberta por resquisição, isso evita inumeras sessões abertas e reduz o consumo de banco.
Minha dúvida é: para desktop como posso implementar esse tipo de padrão?
Lembrando que existe um anti-padrão bastanti utilizado por muitos desenvolvedores é chamado de: Session-per-Operation: a cada consulta ou CRUD uma sessão é aberta e fechada, isso consulta muitos recursos de banco deixando lento e derado.
e vc como trata suas sessões? se vc for iniciante tantos faz, mas se vc for um bom desenvolvedor tem q se atentar para esse tipo de situação!
“Ao abrir um formulario vc dever iniciar uma sessão e quando for fechar a sessão tbm deve ser fechada.”
Dessa forma fica um pouco parecida como o padrao Session-per-Request, mas… ainda procuro melhorias, alguém tem alguma idéia?
att,[/quote]
Cara seguinta a tua definição, vc não pode alocar o recurso pelo tempo que a janela fica aberta, imagine uma pessoa que so faz cadastros o dia todo, vai manter somente uma tela aberta, e a conexão vai se manter sempre ali. mesmo quando essa pessoa sair para ir ao banheiro, tomar um café, e por ai vai.
Nos usamos aqui é gostamos é de utilizar com desktop uma camada EJB e manter o processamento do lado do servidor, ou seja o client (Desktop) so se preocupa em carregar e alterar a informação. o processamento em si e controle de conexões fica no EJB controlado pelo Pool.
O ideal é tentar criar um POOL de conexões caso vc não queira optar por usar um modulo EJB, para gerenciar as conexões, ou seja, se a conexão esta ativa e livre, vc usa ela, se não cria mais uma. o consumo dimiui bastante.