al momento sto lavorando a un progetto con la seguente impostazione:
- Esiste un'applicazione proprietaria che esegue transazioni su un database Microsoft Access (che in realtà è memorizzato come file .mdb)
- L'API dell'applicazione non ha abbastanza funzionalità per i requisiti che abbiamo di fronte
- La nostra applicazione ha accesso diretto al database
Stiamo progettando un'applicazione C # che deve reagire agli eventi che non vengono attivati tramite l'API, quindi l'unico modo in cui posso pensare è di osservare il database direttamente e reagire di conseguenza agli eventi personalizzati.
Un approccio sarebbe probabilmente quello di interrogare il tempo del DB attivato e reagire, ma questo probabilmente porta a problemi di prestazioni quando il DB è grande. Preferirei apprezzare un approccio, in cui il DB stesso notifica la nostra applicazione se si verificano eventi specifici.
EDIT: l'applicazione proprietaria è uno strumento di modellazione Enterprise Architect, quindi il numero previsto di utenti concorrenti non supererà sicuramente 10 utenti e la dimensione del database non sarà superiore a 50 MB. Sarebbe probabilmente una soluzione accettabile per esternalizzare l'attività di polling in un thread separato e notificare il resto dell'applicazione per eventi?
Riguardo al numero di utenti e alle dimensioni del database, quale carico può gestire il database di MS Access?
Esiste un modello / approccio ben noto per questo tipo di problema e se non ne conosci qualcuno, come affronteresti questo problema?