public MigAzForm() { InitializeComponent(); _logProvider = new FileLogProvider(); _logProvider.OnMessage += _logProvider_OnMessage; _statusProvider = new UIStatusProvider(this.toolStripStatusLabel1); _appSettingsProvider = new AppSettingsProvider(); _AzureEnvironments = AzureEnvironment.GetAzureEnvironments(); _AzureRetriever = new AzureRetriever(_logProvider, _statusProvider); _TargetAzureContext = new AzureContext(_AzureRetriever, _appSettingsProvider.GetTargetSettings(), app.Default.LoginPromptBehavior); _AzureGenerator = new AzureGenerator(_logProvider, _statusProvider); if (app.Default.UserDefinedAzureEnvironments != null && app.Default.UserDefinedAzureEnvironments != String.Empty) { _UserDefinedAzureEnvironments = JsonConvert.DeserializeObject <List <AzureEnvironment> >(app.Default.UserDefinedAzureEnvironments); } targetAzureContextViewer.Bind(_TargetAzureContext, _AzureRetriever, _AzureEnvironments, ref _UserDefinedAzureEnvironments); propertyPanel1.Clear(); splitContainer2.SplitterDistance = this.Height / 2; splitContainer3.SplitterDistance = splitContainer3.Width / 2; splitContainer4.SplitterDistance = 45; lblLastOutputRefresh.Text = String.Empty; txtDestinationFolder.Text = AppDomain.CurrentDomain.BaseDirectory; // Future thought, do away with the "Set"s and consolidate to a Bind? this.targetTreeView1.LogProvider = this.LogProvider; this.targetTreeView1.StatusProvider = this.StatusProvider; this.targetTreeView1.ImageList = this.imageList1; this.targetTreeView1.TargetSettings = _appSettingsProvider.GetTargetSettings(); this.propertyPanel1.TargetTreeView = targetTreeView1; this.propertyPanel1.PropertyChanged += PropertyPanel1_PropertyChanged; AlertIfNewVersionAvailable(); }