Thanks for the answer. So, as far as I understand, as long as 1 is true (classes have a default constructor) and we don't care about a performance hit necessarily, we could live with using the constructor instantiation also on the full .net framework. For us the main reason is that we share the codebase between some Silverlight and WPF apps. Since in Silverlight the constructor is called, we have logic there. If we were to move it to OnLoad() then in case we instantiate the objects ourselves, we'd have to additionally call OnLoad() which is not really feasible. Do you think that this makes sense?