Ho un'applicazione winforms che si connette a un singolo database sql server 2012 ed è eseguita in molti PC di un'azienda.
Sto riscontrando diversi problemi con alcune transazioni all'interno dell'applicazione, deadlock e timeout, quindi l'idea del refattore mi viene in mente.
In realtà l'app utilizza l'oggetto DbConnection (l'app inizia con Framework 2.0 e di recente è stata aggiornata a Framework 3.5 ma il livello di accesso ai dati non è stato modificato) per eseguire le chiamate sql al database e in Program.cs la connessione è aperto e fino a quando l'utente non chiude l'app mantenuta aperta.
Quali sono le mie opzioni per refactoring questa app?
- Entity Framework? = > Con questo devo dire che il database SQL non ha chiavi estranee
- Riforma il livello di accesso ai dati per utilizzare una connessione più efficiente? Forse usando TransactionScope?
- L'app sempre connessa è efficiente?