Index: trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Advanced/AvailablePluginsView.cs
===================================================================
--- trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Advanced/AvailablePluginsView.cs	(revision 4068)
+++ trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Advanced/AvailablePluginsView.cs	(revision 4482)
@@ -311,5 +311,5 @@
     }
 
-    private bool IsNewerThan(IPluginDescription plugin1, IPluginDescription plugin2) {
+    private static bool IsNewerThan(IPluginDescription plugin1, IPluginDescription plugin2) {
       // newer: build version is higher, or if build version is the same revision is higher
       if (plugin1.Version.Build < plugin2.Version.Build) return false;
Index: trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Advanced/BasicUpdateView.cs
===================================================================
--- trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Advanced/BasicUpdateView.cs	(revision 4068)
+++ trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Advanced/BasicUpdateView.cs	(revision 4482)
@@ -87,5 +87,5 @@
     }
 
-    private bool IsNewerThan(IPluginDescription plugin1, IPluginDescription plugin2) {
+    private static bool IsNewerThan(IPluginDescription plugin1, IPluginDescription plugin2) {
       // newer: build version is higher, or if build version is the same revision is higher
       if (plugin1.Version.Build < plugin2.Version.Build) return false;
Index: trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Advanced/DeploymentService/PluginDescription.cs
===================================================================
--- trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Advanced/DeploymentService/PluginDescription.cs	(revision 4068)
+++ trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Advanced/DeploymentService/PluginDescription.cs	(revision 4482)
@@ -69,9 +69,4 @@
     }
 
-    [Obsolete]
-    public DateTime BuildDate {
-      get { throw new NotImplementedException(); }
-    }
-
     /// <summary>
     /// Gets an enumerable of dependencies of the plugin
Index: trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Advanced/EditProductsView.cs
===================================================================
--- trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Advanced/EditProductsView.cs	(revision 4068)
+++ trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Advanced/EditProductsView.cs	(revision 4482)
@@ -257,5 +257,4 @@
 
         // populate plugins list view
-        ListViewItem activeItem = (ListViewItem)productsListView.SelectedItems[0];
         pluginListView.SuppressItemCheckedEvents = true;
         foreach (var plugin in plugins.OfType<IPluginDescription>()) {
Index: trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Advanced/InstallationManager.cs
===================================================================
--- trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Advanced/InstallationManager.cs	(revision 4068)
+++ trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Advanced/InstallationManager.cs	(revision 4482)
@@ -179,28 +179,28 @@
       using (ZipInputStream s = new ZipInputStream(new MemoryStream(zippedPackage))) {
         ZipEntry theEntry;
-        string tmpEntry = String.Empty;
         while ((theEntry = s.GetNextEntry()) != null) {
           string directoryName = pluginDir;
           string fileName = Path.GetFileName(theEntry.Name);
           // create directory 
-          if (directoryName != "") {
+          if (!string.IsNullOrEmpty(directoryName)) {
             Directory.CreateDirectory(directoryName);
           }
-          if (fileName != String.Empty) {
+          if (!string.IsNullOrEmpty(fileName)) {
             string fullPath = Path.Combine(directoryName, fileName);
             string fullDirPath = Path.GetDirectoryName(fullPath);
             if (!Directory.Exists(fullDirPath)) Directory.CreateDirectory(fullDirPath);
-            FileStream streamWriter = File.Create(fullPath);
-            int size = 2048;
-            byte[] data = new byte[2048];
-            while (true) {
-              size = s.Read(data, 0, data.Length);
-              if (size > 0) {
-                streamWriter.Write(data, 0, size);
-              } else {
-                break;
+            using (FileStream streamWriter = File.Create(fullPath)) {
+              int size = 2048;
+              byte[] data = new byte[2048];
+              while (true) {
+                size = s.Read(data, 0, data.Length);
+                if (size > 0) {
+                  streamWriter.Write(data, 0, size);
+                } else {
+                  break;
+                }
               }
+              streamWriter.Close();
             }
-            streamWriter.Close();
           }
         }
Index: trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Advanced/InstallationManagerConsole.cs
===================================================================
--- trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Advanced/InstallationManagerConsole.cs	(revision 4068)
+++ 	(revision )
@@ -1,111 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
- *
- * This file is part of HeuristicLab.
- *
- * HeuristicLab is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * HeuristicLab is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
- */
-#endregion
-
-using System;
-using System.Collections.Generic;
-using HeuristicLab.PluginInfrastructure.Advanced.DeploymentService;
-using HeuristicLab.PluginInfrastructure.Manager;
-
-
-namespace HeuristicLab.PluginInfrastructure.Advanced {
-  internal class InstallationManagerConsole {
-    private InstallationManager installManager;
-    private string connectionString;
-    public InstallationManagerConsole(string pluginDir) {
-
-      // get default connection string
-      using (var client = new UpdateClient()) {
-        connectionString = client.Endpoint.Address.ToString();
-      }
-
-      this.installManager = new InstallationManager(pluginDir);
-      installManager.PreInstallPlugin += new EventHandler<PluginInfrastructureCancelEventArgs>(installManager_PreInstallPlugin);
-      installManager.PreRemovePlugin += new EventHandler<PluginInfrastructureCancelEventArgs>(installManager_PreRemovePlugin);
-      installManager.PreUpdatePlugin += new EventHandler<PluginInfrastructureCancelEventArgs>(installManager_PreUpdatePlugin);
-      installManager.PluginInstalled += new EventHandler<PluginInfrastructureEventArgs>(installManager_PluginInstalled);
-      installManager.PluginRemoved += new EventHandler<PluginInfrastructureEventArgs>(installManager_PluginRemoved);
-      installManager.PluginUpdated += new EventHandler<PluginInfrastructureEventArgs>(installManager_PluginUpdated);
-    }
-
-    void installManager_PreUpdatePlugin(object sender, PluginInfrastructureCancelEventArgs e) {
-      Console.WriteLine("Following plugins are updated:");
-      foreach (var info in e.Plugins) {
-        Console.WriteLine(e);
-      }
-      if (GetUserConfirmation()) e.Cancel = false;
-      else e.Cancel = true;
-      return;
-    }
-
-    void installManager_PluginUpdated(object sender, PluginInfrastructureEventArgs e) {
-      foreach (var info in (IEnumerable<IPluginDescription>)e.Entity)
-        Console.WriteLine("Updated: {0}", info.Name);
-    }
-
-    void installManager_PreRemovePlugin(object sender, PluginInfrastructureCancelEventArgs e) {
-      Console.WriteLine("Following files are deleted:");
-      foreach (var plugin in e.Plugins) {
-        foreach (var file in plugin.Files)
-          Console.WriteLine(file);
-      }
-      if (GetUserConfirmation()) e.Cancel = false;
-      else e.Cancel = true;
-      return;
-    }
-
-    void installManager_PluginRemoved(object sender, PluginInfrastructureEventArgs e) {
-      foreach (string fileName in (IEnumerable<string>)e.Entity)
-        Console.WriteLine("Deleted: {0}", fileName);
-    }
-
-    void installManager_PreInstallPlugin(object sender, PluginInfrastructureCancelEventArgs e) {
-
-    }
-
-    void installManager_PluginInstalled(object sender, PluginInfrastructureEventArgs e) {
-
-    }
-
-    private static bool GetUserConfirmation() {
-      Console.Write("Are you sure? (Y/n)");
-      string input = Console.ReadLine().ToUpperInvariant();
-      if (string.IsNullOrEmpty(input) || input == "Y") return true;
-      else return false;
-    }
-
-    public void Show(IEnumerable<string> pluginNames) {
-      //foreach (string pluginName in pluginNames)
-      //  Console.WriteLine(installManager.GetInformation(pluginName));
-    }
-
-    public void Install(IEnumerable<string> pluginNames) {
-      //installManager.Install(connectionString, pluginNames);
-    }
-
-    public void Remove(IEnumerable<string> pluginNames) {
-      // installManager.Remove(pluginNames);
-    }
-
-    public void Update(IEnumerable<string> pluginNames) {
-      // installManager.Update(connectionString, pluginNames);
-    }
-  }
-}
Index: trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Advanced/InstallationManagerException.cs
===================================================================
--- trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Advanced/InstallationManagerException.cs	(revision 4068)
+++ trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Advanced/InstallationManagerException.cs	(revision 4482)
@@ -29,5 +29,5 @@
     public InstallationManagerException(string msg) : base(msg) { }
     public InstallationManagerException(string msg, Exception e) : base(msg, e) { }
-    public InstallationManagerException(SerializationInfo info, StreamingContext context) : base(info, context) { }
+    protected InstallationManagerException(SerializationInfo info, StreamingContext context) : base(info, context) { }
   }
 }
Index: trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Advanced/InstallationManagerForm.cs
===================================================================
--- trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Advanced/InstallationManagerForm.cs	(revision 4068)
+++ trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Advanced/InstallationManagerForm.cs	(revision 4482)
@@ -32,5 +32,4 @@
   internal partial class InstallationManagerForm : Form, IStatusView {
     private InstallationManager installationManager;
-    private PluginManager pluginManager;
     private string pluginDir;
 
@@ -40,6 +39,4 @@
       FileVersionInfo pluginInfrastructureVersion = FileVersionInfo.GetVersionInfo(GetType().Assembly.Location);
       Text = "HeuristicLab Plugin Manager " + pluginInfrastructureVersion.FileVersion;
-
-      this.pluginManager = pluginManager;
 
       pluginManager.PluginLoaded += pluginManager_PluginLoaded;
@@ -142,5 +139,7 @@
     #region button events
     private void connectionSettingsToolStripMenuItem_Click(object sender, EventArgs e) {
-      new ConnectionSetupView().ShowDialog(this);
+      using (var conSetupView = new ConnectionSetupView()) {
+        conSetupView.ShowDialog(this);
+      }
     }
     private void tabControl_SelectedIndexChanged(object sender, EventArgs e) {
@@ -157,5 +156,7 @@
         }
       }
-      return (new ConfirmationDialog("Confirm Delete", "Do you want to delete following files?", strBuilder.ToString())).ShowDialog(this) == DialogResult.OK;
+      using (var confirmationDialog = new ConfirmationDialog("Confirm Delete", "Do you want to delete following files?", strBuilder.ToString())) {
+        return (confirmationDialog.ShowDialog(this)) == DialogResult.OK;
+      }
     }
 
@@ -165,5 +166,7 @@
         strBuilder.AppendLine(plugin.ToString());
       }
-      return (new ConfirmationDialog("Confirm Update", "Do you want to update following plugins?", strBuilder.ToString())).ShowDialog(this) == DialogResult.OK;
+      using (var confirmationDialog = new ConfirmationDialog("Confirm Update", "Do you want to update following plugins?", strBuilder.ToString())) {
+        return (confirmationDialog.ShowDialog(this)) == DialogResult.OK;
+      }
     }
 
@@ -171,7 +174,8 @@
       foreach (var plugin in plugins) {
         if (!string.IsNullOrEmpty(plugin.LicenseText)) {
-          var licenseConfirmationBox = new LicenseConfirmationDialog(plugin);
-          if (licenseConfirmationBox.ShowDialog(this) != DialogResult.OK)
-            return false;
+          using (var licenseConfirmationBox = new LicenseConfirmationDialog(plugin)) {
+            if (licenseConfirmationBox.ShowDialog(this) != DialogResult.OK)
+              return false;
+          }
         }
       }
@@ -207,5 +211,5 @@
 
     public void ShowProgressIndicator(double percentProgress) {
-      if (percentProgress < 0.0 || percentProgress > 1.0) throw new ArgumentException();
+      if (percentProgress < 0.0 || percentProgress > 1.0) throw new ArgumentException("percentProgress");
       toolStripProgressBar.Visible = true;
       toolStripProgressBar.Style = ProgressBarStyle.Continuous;
@@ -224,5 +228,5 @@
 
     public void ShowMessage(string message) {
-      if (toolStripStatusLabel.Text == string.Empty)
+      if (string.IsNullOrEmpty(toolStripStatusLabel.Text))
         toolStripStatusLabel.Text = message;
       else
Index: trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Advanced/InstalledPluginsView.cs
===================================================================
--- trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Advanced/InstalledPluginsView.cs	(revision 4068)
+++ trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Advanced/InstalledPluginsView.cs	(revision 4482)
@@ -120,5 +120,5 @@
     }
 
-    private bool IsNewerThan(IPluginDescription plugin1, IPluginDescription plugin2) {
+    private static bool IsNewerThan(IPluginDescription plugin1, IPluginDescription plugin2) {
       // newer: build version is higher, or if build version is the same revision is higher
       if (plugin1.Version.Build < plugin2.Version.Build) return false;
@@ -153,5 +153,5 @@
     }
 
-    private ListViewItem CreateListViewItem(PluginDescription plugin) {
+    private static ListViewItem CreateListViewItem(PluginDescription plugin) {
       ListViewItem item = new ListViewItem(new string[] { plugin.Name, plugin.Version.ToString(), plugin.Description });
       item.Tag = plugin;
@@ -190,5 +190,4 @@
         List<ListViewItem> modifiedItems = new List<ListViewItem>();
         foreach (ListViewItem item in localPluginsListView.SelectedItems) {
-          var plugin = (IPluginDescription)item.Tag;
           modifiedItems.Add(item);
         }
Index: trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Advanced/MultiSelectListView.cs
===================================================================
--- trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Advanced/MultiSelectListView.cs	(revision 4068)
+++ trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Advanced/MultiSelectListView.cs	(revision 4482)
@@ -22,4 +22,5 @@
 using System.Linq;
 using System.Windows.Forms;
+using System;
 
 namespace HeuristicLab.PluginInfrastructure.Advanced {
@@ -43,4 +44,5 @@
     // and then one the item whose checkbox was clicked
     protected override void OnItemCheck(ItemCheckEventArgs ice) {
+      if (ice == null) throw new ArgumentNullException("ice");
       // don't change the checked state of items that were not clicked directly
       if (inhibitAutoCheck) {
Index: trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Advanced/UploadPluginsView.cs
===================================================================
--- trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Advanced/UploadPluginsView.cs	(revision 4068)
+++ trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Advanced/UploadPluginsView.cs	(revision 4482)
@@ -260,5 +260,5 @@
     }
 
-    private byte[] CreateZipPackage(IPluginDescription plugin) {
+    private static byte[] CreateZipPackage(IPluginDescription plugin) {
       using (MemoryStream stream = new MemoryStream()) {
         ZipFile zipFile = new ZipFile(stream);
