Am de gând să stochez toate setările de configurare în secțiunea app.config a aplicației (folosind clasa ConfigurationManager.AppSettings
). Pe măsură ce utilizatorul modifică setările utilizând interfața de utilizare a aplicației (făcând clic pe casete de selectare, selectând butoane radio etc.), intenționez să scriu acele modificări în AppSettings
. În același timp, în timp ce programul se execută, intenționez să accesez constant codul AppSettings
dintr-un proces care va procesa în mod constant date. Modificările aduse setărilor prin interfața utilizator trebuie să afecteze procesarea datelor în timp real, motiv pentru care procesul va accesa în mod constant AppSettings
în mod constant.
Este o idee bună în ceea ce privește performanța? Folosind AppSettings
se presupune că este "calea cea bună" pentru a stoca și a accesa setările de configurare atunci când scrieți aplicații .Net, dar mă tem că această metodă nu a fost destinată încărcării constante (cel puțin setările fiind citite constant).
Dacă cineva are experiență în acest sens, aș aprecia foarte mult contribuția.
Update: I should probably clarify a few points.
Aceasta nu este o aplicație web, astfel încât conectarea unei baze de date cu aplicația ar putea fi depășită doar pentru stocarea setărilor de configurare. Aceasta este o aplicație Windows Forms.
Conform documentației MSDN, ConfigurationManager
este pentru stocarea nu numai a setărilor nivelului de aplicație, ci și a setărilor de utilizator. (Este deosebit de important dacă, de exemplu, aplicația este instalată ca o aplicație parțială de încredere.)
Update 2: I accepted lomaxx's answer because Properties
does indeed look like a good solution, without having to add any additional layers to my application (such as a database). When using Properties, it already does all the caching that others suggested. This means any changes and subsequent reads are all done in memory, making it extremely fast. Properties only writes the changes to disk when you explicitly tell it to. This means I can make changes to the config settings on-the-fly at run time and then only do a final save out to disk when the program exits.
Doar pentru a verifica că ar fi de fapt capabil să se ocupe de sarcina de care am nevoie, am făcut unele teste pe laptop-ul meu și a fost în măsură să facă 750.000 citiri și 7500 scrie pe secundă, folosind Proprietăți. Este atât de mult peste și dincolo de ceea ce cererea mea vreodată se apropie chiar de necesitatea că mă simt foarte sigur în utilizarea proprietăților fără a afecta performanța.