Fala pessoal!
Onde trabalho, está havendo a migração de diversas aplicações para um web-farm.
As sessões passaram a ser gerenciadas por um servidor SQL Server.
O problema como sempre, é o legado!
Para aqueles casos mais simples do uso de sessão, armazenar strings, retornos e etc, o código permanecerá intocável. O problema começa quando em algumas situações pontuais, foram armazenados objetos List<typed> ou semelhantes, da qual não são serializáveis,
nas sessões.
Estou pensando em um meio de refatorar, num estilo meio DRY, tudo isso.
A maioria das listas armazenadas na sessão, são entidades e demais collections resultantes de consultas ao Entity Framework. Sinceramente não consegui descobrir se existe algum pulo no gato sobre isso, a única solução que me venho a mente de imediato, e
de maneira rápida, seria criar uma tabela na base de dados desse sistema legado e armazenar esses objetos - e então criar algum serviço pra remover os inativos.
Então em qualquer lugar que fizesse uso de:
Session["mLista"] = minhaLista;
Eu trocaria por:
SessaoCustomizada.AdicionaNaBaseTemporaria("mLista", minhaLista);
Tomando o devido cuidado do usuário logado, hora de inserção e etc.
Será que é uma boa alternativa, ou existem outras?
Grande abraço,
Renato Gil