-
Notifications
You must be signed in to change notification settings - Fork 486
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Configuration cleanup #378
Conversation
Playing devils advocate. Why do we even need the interfaces? Let's make configuration static and remove the interfaces entirely if we are going to make the breaking change? |
What does that give us? |
I like the possibility to have different configuration sources. By default, White provides the one from the App.config. But someone might want to use configurations in a textfile or a database or dynamically generated. |
Static access to a class of a certain interface without exactly knowing the class. |
I added an alternative version (less interfaces) with RepositoryConfiguration. |
Any feedback on the last commit (except the test failures)? |
Looks ok from my point of view. |
So you prefer the one in WebBrowserConfiguration? One downside there is that each implementation of IWebBrowserConfiguration has to set it's own default values and have it's own implementation of how it handles the values of the settings. |
it's a question of how much flexibility do you want to provide. |
I think the flexibility we need is in how the configuration values are read and not how to get the values once they are read. That's why I'd currently prefer the 2nd version (from the RepositoryConfiguration). |
This is superseeded with #380 |
The configuration has interfaces but almost everywhere are the concrete classes being used.
I'd like to remove all the singletons from the configuration classes and propose to use a Locator where the concrete class can be overwritten.
In this PR in it's current state you see this implementend with the WebBrowserConfiguration.
Please give me feedback on what you think before I do the same with ScreenObjecs configuration and Core und UIItems configuration.