public void StartFramework() { // Register App/Web Config components if (!_registeredConfig) { RegisterAppConfig(); } if (!_registeredModuleConfig) { RegisterAllModuleConfig(); } // Execute all the initialization tasks syncronously and in sequence ComponentRegistry .Instance .ResolveAll <IApplicationInitializeTask>() .OrderBy(initTask => initTask.Sequence) .ForEach( initTask => Exceptions.ExecuteIgnoringException(initTask.Initialize) ); // Execute all the start tasks asyncronously ComponentRegistry .Instance .ResolveAll <IApplicationStartTask>() .ForEach( startTask => Lambda.ActionAsAsyncronous(startTask.Start).IgnoringExceptions().Invoke() ); StartAllModules(); }