Index: /branches/ClientUserManagement/HeuristicLab.Clients.Access.Views/3.3/ClientViews/AdminClientView.Designer.cs
===================================================================
--- /branches/ClientUserManagement/HeuristicLab.Clients.Access.Views/3.3/ClientViews/AdminClientView.Designer.cs	(revision 7555)
+++ /branches/ClientUserManagement/HeuristicLab.Clients.Access.Views/3.3/ClientViews/AdminClientView.Designer.cs	(revision 7555)
@@ -0,0 +1,140 @@
+﻿namespace HeuristicLab.Clients.Access {
+  partial class AdminClientView {
+    /// <summary> 
+    /// Required designer variable.
+    /// </summary>
+    private System.ComponentModel.IContainer components = null;
+
+    /// <summary> 
+    /// Clean up any resources being used.
+    /// </summary>
+    /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+    protected override void Dispose(bool disposing) {
+      if (disposing && (components != null)) {
+        components.Dispose();
+      }
+      base.Dispose(disposing);
+    }
+
+    #region Component Designer generated code
+
+    /// <summary> 
+    /// Required method for Designer support - do not modify 
+    /// the contents of this method with the code editor.
+    /// </summary>
+    private void InitializeComponent() {
+      this.label12 = new System.Windows.Forms.Label();
+      this.txtCountry = new System.Windows.Forms.TextBox();
+      this.SuspendLayout();
+      // 
+      // txtName
+      // 
+      this.txtName.Size = new System.Drawing.Size(411, 20);
+      // 
+      // txtDescription
+      // 
+      this.txtDescription.Size = new System.Drawing.Size(410, 20);
+      // 
+      // txtVersion
+      // 
+      this.txtVersion.Size = new System.Drawing.Size(410, 20);
+      // 
+      // txtTimestamp
+      // 
+      this.txtTimestamp.Size = new System.Drawing.Size(411, 20);
+      // 
+      // txtMemory
+      // 
+      this.txtMemory.Size = new System.Drawing.Size(411, 20);
+      // 
+      // txtNumberOfCores
+      // 
+      this.txtNumberOfCores.Size = new System.Drawing.Size(411, 20);
+      // 
+      // txtClientType
+      // 
+      this.txtClientType.Size = new System.Drawing.Size(410, 20);
+      // 
+      // txtClientConfiguration
+      // 
+      this.txtClientConfiguration.Size = new System.Drawing.Size(411, 20);
+      // 
+      // txtProcessor
+      // 
+      this.txtProcessor.Size = new System.Drawing.Size(410, 20);
+      // 
+      // txtOS
+      // 
+      this.txtOS.Size = new System.Drawing.Size(410, 20);
+      // 
+      // txtPerformanceValue
+      // 
+      this.txtPerformanceValue.Size = new System.Drawing.Size(411, 20);
+      // 
+      // txtId
+      // 
+      this.txtId.Size = new System.Drawing.Size(410, 20);
+      // 
+      // label12
+      // 
+      this.label12.AutoSize = true;
+      this.label12.Location = new System.Drawing.Point(3, 318);
+      this.label12.Name = "label12";
+      this.label12.Size = new System.Drawing.Size(46, 13);
+      this.label12.TabIndex = 11;
+      this.label12.Text = "Country:";
+      // 
+      // txtCountry
+      // 
+      this.txtCountry.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+                  | System.Windows.Forms.AnchorStyles.Right)));
+      this.txtCountry.Location = new System.Drawing.Point(111, 315);
+      this.txtCountry.Name = "txtCountry";
+      this.txtCountry.Size = new System.Drawing.Size(410, 20);
+      this.txtCountry.TabIndex = 22;
+      // 
+      // AdminClientView
+      // 
+      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.Controls.Add(this.txtCountry);
+      this.Controls.Add(this.label12);
+      this.Name = "AdminClientView";
+      this.Size = new System.Drawing.Size(524, 341);
+      this.Controls.SetChildIndex(this.label1, 0);
+      this.Controls.SetChildIndex(this.label2, 0);
+      this.Controls.SetChildIndex(this.label3, 0);
+      this.Controls.SetChildIndex(this.label4, 0);
+      this.Controls.SetChildIndex(this.label5, 0);
+      this.Controls.SetChildIndex(this.label6, 0);
+      this.Controls.SetChildIndex(this.label7, 0);
+      this.Controls.SetChildIndex(this.label8, 0);
+      this.Controls.SetChildIndex(this.label9, 0);
+      this.Controls.SetChildIndex(this.label10, 0);
+      this.Controls.SetChildIndex(this.label11, 0);
+      this.Controls.SetChildIndex(this.txtName, 0);
+      this.Controls.SetChildIndex(this.txtDescription, 0);
+      this.Controls.SetChildIndex(this.txtVersion, 0);
+      this.Controls.SetChildIndex(this.txtTimestamp, 0);
+      this.Controls.SetChildIndex(this.txtMemory, 0);
+      this.Controls.SetChildIndex(this.txtNumberOfCores, 0);
+      this.Controls.SetChildIndex(this.txtClientType, 0);
+      this.Controls.SetChildIndex(this.txtClientConfiguration, 0);
+      this.Controls.SetChildIndex(this.txtProcessor, 0);
+      this.Controls.SetChildIndex(this.txtOS, 0);
+      this.Controls.SetChildIndex(this.txtPerformanceValue, 0);
+      this.Controls.SetChildIndex(this.label13, 0);
+      this.Controls.SetChildIndex(this.txtId, 0);
+      this.Controls.SetChildIndex(this.label12, 0);
+      this.Controls.SetChildIndex(this.txtCountry, 0);
+      this.ResumeLayout(false);
+      this.PerformLayout();
+
+    }
+
+    #endregion
+
+    private System.Windows.Forms.Label label12;
+    private System.Windows.Forms.TextBox txtCountry;
+  }
+}
Index: /branches/ClientUserManagement/HeuristicLab.Clients.Access.Views/3.3/ClientViews/AdminClientView.cs
===================================================================
--- /branches/ClientUserManagement/HeuristicLab.Clients.Access.Views/3.3/ClientViews/AdminClientView.cs	(revision 7555)
+++ /branches/ClientUserManagement/HeuristicLab.Clients.Access.Views/3.3/ClientViews/AdminClientView.cs	(revision 7555)
@@ -0,0 +1,49 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2012 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 HeuristicLab.MainForm;
+
+namespace HeuristicLab.Clients.Access {
+  [View("Extended Client View")]
+  [Content(typeof(Client), false)]
+  public partial class AdminClientView : ClientView {
+    public new Client Content {
+      get { return (Client)base.Content; }
+      set { base.Content = value; }
+    }
+
+    public AdminClientView() {
+      InitializeComponent();
+    }
+
+    protected override void OnContentChanged() {
+      base.OnContentChanged();
+
+      if (Content == null) {
+        txtCountry.Text = string.Empty;
+      } else {
+        if (Content.Country != null) {
+          txtCountry.Text = Content.Country.Name;
+        }
+      }
+    }
+  }
+}
Index: /branches/ClientUserManagement/HeuristicLab.Clients.Access.Views/3.3/ClientViews/ClientInformationDialog.Designer.cs
===================================================================
--- /branches/ClientUserManagement/HeuristicLab.Clients.Access.Views/3.3/ClientViews/ClientInformationDialog.Designer.cs	(revision 7555)
+++ /branches/ClientUserManagement/HeuristicLab.Clients.Access.Views/3.3/ClientViews/ClientInformationDialog.Designer.cs	(revision 7555)
@@ -0,0 +1,63 @@
+﻿namespace HeuristicLab.Clients.Access {
+  partial class ClientInformationDialog {
+    /// <summary>
+    /// Required designer variable.
+    /// </summary>
+    private System.ComponentModel.IContainer components = null;
+
+    /// <summary>
+    /// Clean up any resources being used.
+    /// </summary>
+    /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+    protected override void Dispose(bool disposing) {
+      if (disposing && (components != null)) {
+        components.Dispose();
+      }
+      base.Dispose(disposing);
+    }
+
+    #region Windows Form Designer generated code
+
+    /// <summary>
+    /// Required method for Designer support - do not modify
+    /// the contents of this method with the code editor.
+    /// </summary>
+    private void InitializeComponent() {
+      this.clientView = new HeuristicLab.Clients.Access.ClientView();
+      this.SuspendLayout();
+      // 
+      // clientView
+      // 
+      this.clientView.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+                  | System.Windows.Forms.AnchorStyles.Right)));
+      this.clientView.Caption = "Client View";
+      this.clientView.Content = null;
+      this.clientView.Location = new System.Drawing.Point(12, 12);
+      this.clientView.Name = "clientView";
+      this.clientView.ReadOnly = false;
+      this.clientView.Size = new System.Drawing.Size(528, 452);
+      this.clientView.TabIndex = 0;
+      // 
+      // ClientInformationDialog
+      // 
+      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.ClientSize = new System.Drawing.Size(552, 345);
+      this.Controls.Add(this.clientView);
+      this.MaximizeBox = false;
+      this.MinimizeBox = false;
+      this.Name = "ClientInformationDialog";
+      this.ShowIcon = false;
+      this.ShowInTaskbar = false;
+      this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
+      this.Text = "Client Information";
+      this.TopMost = true;
+      this.ResumeLayout(false);
+
+    }
+
+    #endregion
+
+    private ClientView clientView;
+  }
+}
Index: /branches/ClientUserManagement/HeuristicLab.Clients.Access.Views/3.3/ClientViews/ClientInformationDialog.cs
===================================================================
--- /branches/ClientUserManagement/HeuristicLab.Clients.Access.Views/3.3/ClientViews/ClientInformationDialog.cs	(revision 7555)
+++ /branches/ClientUserManagement/HeuristicLab.Clients.Access.Views/3.3/ClientViews/ClientInformationDialog.cs	(revision 7555)
@@ -0,0 +1,36 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2012 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.Windows.Forms;
+
+namespace HeuristicLab.Clients.Access {
+  public partial class ClientInformationDialog : Form {
+    public ClientInformationDialog() {
+      InitializeComponent();
+    }
+
+    protected override void OnLoad(System.EventArgs e) {
+      base.OnLoad(e);
+
+      clientView.Content = ClientInformation.Instance.ClientInfo;
+    }
+  }
+}
Index: /branches/ClientUserManagement/HeuristicLab.Clients.Access.Views/3.3/ClientViews/ClientRegistrationDialog.Designer.cs
===================================================================
--- /branches/ClientUserManagement/HeuristicLab.Clients.Access.Views/3.3/ClientViews/ClientRegistrationDialog.Designer.cs	(revision 7555)
+++ /branches/ClientUserManagement/HeuristicLab.Clients.Access.Views/3.3/ClientViews/ClientRegistrationDialog.Designer.cs	(revision 7555)
@@ -0,0 +1,130 @@
+﻿namespace HeuristicLab.Clients.Access {
+  partial class ClientRegistrationDialog {
+    /// <summary>
+    /// Required designer variable.
+    /// </summary>
+    private System.ComponentModel.IContainer components = null;
+
+    /// <summary>
+    /// Clean up any resources being used.
+    /// </summary>
+    /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+    protected override void Dispose(bool disposing) {
+      if (disposing && (components != null)) {
+        components.Dispose();
+      }
+      base.Dispose(disposing);
+    }
+
+    #region Windows Form Designer generated code
+
+    /// <summary>
+    /// Required method for Designer support - do not modify
+    /// the contents of this method with the code editor.
+    /// </summary>
+    private void InitializeComponent() {
+      this.btnCollectInformation = new System.Windows.Forms.Button();
+      this.richTextBox1 = new System.Windows.Forms.RichTextBox();
+      this.clientView = new HeuristicLab.Clients.Access.ClientView();
+      this.progressBar = new System.Windows.Forms.ProgressBar();
+      this.btnRegisterClient = new System.Windows.Forms.Button();
+      this.btnCancel = new System.Windows.Forms.Button();
+      this.SuspendLayout();
+      // 
+      // btnCollectInformation
+      // 
+      this.btnCollectInformation.Location = new System.Drawing.Point(12, 114);
+      this.btnCollectInformation.Name = "btnCollectInformation";
+      this.btnCollectInformation.Size = new System.Drawing.Size(111, 23);
+      this.btnCollectInformation.TabIndex = 1;
+      this.btnCollectInformation.Text = "Collect information";
+      this.btnCollectInformation.UseVisualStyleBackColor = true;
+      this.btnCollectInformation.Click += new System.EventHandler(this.btnCollectInformation_Click);
+      // 
+      // richTextBox1
+      // 
+      this.richTextBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+                  | System.Windows.Forms.AnchorStyles.Right)));
+      this.richTextBox1.Location = new System.Drawing.Point(12, 12);
+      this.richTextBox1.Name = "richTextBox1";
+      this.richTextBox1.Size = new System.Drawing.Size(638, 96);
+      this.richTextBox1.TabIndex = 2;
+      this.richTextBox1.Text = "";
+      // 
+      // clientView
+      // 
+      this.clientView.Caption = "Client View";
+      this.clientView.Content = null;
+      this.clientView.Location = new System.Drawing.Point(12, 143);
+      this.clientView.Name = "clientView";
+      this.clientView.ReadOnly = false;
+      this.clientView.Size = new System.Drawing.Size(638, 340);
+      this.clientView.TabIndex = 3;
+      // 
+      // progressBar
+      // 
+      this.progressBar.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+                  | System.Windows.Forms.AnchorStyles.Right)));
+      this.progressBar.Location = new System.Drawing.Point(130, 114);
+      this.progressBar.Name = "progressBar";
+      this.progressBar.Size = new System.Drawing.Size(520, 23);
+      this.progressBar.Style = System.Windows.Forms.ProgressBarStyle.Continuous;
+      this.progressBar.TabIndex = 4;
+      this.progressBar.Visible = false;
+      // 
+      // btnRegisterClient
+      // 
+      this.btnRegisterClient.Enabled = false;
+      this.btnRegisterClient.Location = new System.Drawing.Point(12, 516);
+      this.btnRegisterClient.Name = "btnRegisterClient";
+      this.btnRegisterClient.Size = new System.Drawing.Size(88, 23);
+      this.btnRegisterClient.TabIndex = 5;
+      this.btnRegisterClient.Text = "Register client";
+      this.btnRegisterClient.UseVisualStyleBackColor = true;
+      this.btnRegisterClient.Click += new System.EventHandler(this.btnRegisterClient_Click);
+      // 
+      // btnCancel
+      // 
+      this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
+      this.btnCancel.Location = new System.Drawing.Point(574, 516);
+      this.btnCancel.Name = "btnCancel";
+      this.btnCancel.Size = new System.Drawing.Size(75, 23);
+      this.btnCancel.TabIndex = 6;
+      this.btnCancel.Text = "Close";
+      this.btnCancel.UseVisualStyleBackColor = true;
+      // 
+      // ClientRegistrationDialog
+      // 
+      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.CancelButton = this.btnCancel;
+      this.ClientSize = new System.Drawing.Size(662, 552);
+      this.Controls.Add(this.btnCancel);
+      this.Controls.Add(this.btnRegisterClient);
+      this.Controls.Add(this.progressBar);
+      this.Controls.Add(this.clientView);
+      this.Controls.Add(this.richTextBox1);
+      this.Controls.Add(this.btnCollectInformation);
+      this.MaximizeBox = false;
+      this.MinimizeBox = false;
+      this.Name = "ClientRegistrationDialog";
+      this.ShowIcon = false;
+      this.ShowInTaskbar = false;
+      this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
+      this.Text = "Client Registration";
+      this.TopMost = true;
+      this.ResumeLayout(false);
+
+    }
+
+    #endregion
+
+    private System.Windows.Forms.Button btnCollectInformation;
+    private System.Windows.Forms.RichTextBox richTextBox1;
+    private ClientView clientView;
+    private System.Windows.Forms.ProgressBar progressBar;
+    private System.Windows.Forms.Button btnRegisterClient;
+    private System.Windows.Forms.Button btnCancel;
+
+  }
+}
Index: /branches/ClientUserManagement/HeuristicLab.Clients.Access.Views/3.3/ClientViews/ClientRegistrationDialog.cs
===================================================================
--- /branches/ClientUserManagement/HeuristicLab.Clients.Access.Views/3.3/ClientViews/ClientRegistrationDialog.cs	(revision 7555)
+++ /branches/ClientUserManagement/HeuristicLab.Clients.Access.Views/3.3/ClientViews/ClientRegistrationDialog.cs	(revision 7555)
@@ -0,0 +1,102 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2012 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.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace HeuristicLab.Clients.Access {
+  public partial class ClientRegistrationDialog : Form {
+    public ClientRegistrationDialog() {
+      InitializeComponent();
+    }
+
+    private void btnCollectInformation_Click(object sender, EventArgs e) {
+      progressBar.Visible = true;
+      progressBar.Style = ProgressBarStyle.Marquee;
+      btnCollectInformation.Enabled = false;
+      btnRegisterClient.Enabled = false;
+
+      Task<Client> task = Task.Factory.StartNew<Client>(ClientInformationUtils.CollectClientInformation);
+      task.ContinueWith(c => DisplayContent(c.Result));
+    }
+
+    private void DisplayContent(Client client) {
+      if (!this.Disposing) {
+        if (this.InvokeRequired) {
+          Invoke(new Action<Client>(DisplayContent), client);
+        } else {
+          clientView.Content = client;
+          progressBar.Visible = false;
+          btnCollectInformation.Enabled = true;
+          btnRegisterClient.Enabled = true;
+        }
+      }
+    }
+
+    private void AddClient() {
+      AccessClient.CallAccessService(x => x.AddClient(clientView.Content));
+    }
+
+    private void RefreshClientInformation(Task task) {
+      ClientInformation.Instance.Refresh();
+    }
+
+    private void btnRegisterClient_Click(object sender, EventArgs e) {
+      progressBar.Visible = true;
+      btnRegisterClient.Enabled = false;
+      btnCollectInformation.Enabled = false;
+      btnCancel.Enabled = false;
+
+      Task task = Task.Factory.StartNew(AddClient);
+      task.ContinueWith(RefreshClientInformation, TaskContinuationOptions.NotOnFaulted);
+      task.ContinueWith(FinishRegistration, TaskContinuationOptions.NotOnFaulted);
+      task.ContinueWith(HandleRegistrationError, TaskContinuationOptions.OnlyOnFaulted);
+    }
+
+    private void FinishRegistration(Task task) {
+      if (!this.Disposing) {
+        if (this.InvokeRequired) {
+          Invoke(new Action<Task>(FinishRegistration), task);
+        } else {
+          progressBar.Visible = false;
+          btnCollectInformation.Enabled = true;
+          btnCancel.Enabled = true;
+          MessageBox.Show("Your HeuristicLab client has been registered successfully.", "HeuristicLab Registration", MessageBoxButtons.OK, MessageBoxIcon.Information);
+        }
+      }
+    }
+
+    private void HandleRegistrationError(Task task) {
+      if (!this.Disposing) {
+        if (this.InvokeRequired) {
+          Invoke(new Action<Task>(HandleRegistrationError), task);
+        } else {
+          progressBar.Visible = false;
+          btnRegisterClient.Enabled = true;
+          btnCollectInformation.Enabled = true;
+          btnCancel.Enabled = true;
+          PluginInfrastructure.ErrorHandling.ShowErrorDialog(task.Exception);
+        }
+      }
+    }
+  }
+}
Index: /branches/ClientUserManagement/HeuristicLab.Clients.Access.Views/3.3/ClientViews/ClientView.Designer.cs
===================================================================
--- /branches/ClientUserManagement/HeuristicLab.Clients.Access.Views/3.3/ClientViews/ClientView.Designer.cs	(revision 7555)
+++ /branches/ClientUserManagement/HeuristicLab.Clients.Access.Views/3.3/ClientViews/ClientView.Designer.cs	(revision 7555)
@@ -0,0 +1,331 @@
+﻿namespace HeuristicLab.Clients.Access {
+  partial class ClientView {
+    /// <summary> 
+    /// Required designer variable.
+    /// </summary>
+    private System.ComponentModel.IContainer components = null;
+
+    /// <summary> 
+    /// Clean up any resources being used.
+    /// </summary>
+    /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+    protected override void Dispose(bool disposing) {
+      if (disposing && (components != null)) {
+        components.Dispose();
+      }
+      base.Dispose(disposing);
+    }
+
+    #region Component Designer generated code
+
+    /// <summary> 
+    /// Required method for Designer support - do not modify 
+    /// the contents of this method with the code editor.
+    /// </summary>
+    private void InitializeComponent() {
+      this.label1 = new System.Windows.Forms.Label();
+      this.label2 = new System.Windows.Forms.Label();
+      this.label3 = new System.Windows.Forms.Label();
+      this.label4 = new System.Windows.Forms.Label();
+      this.label5 = new System.Windows.Forms.Label();
+      this.label6 = new System.Windows.Forms.Label();
+      this.label7 = new System.Windows.Forms.Label();
+      this.label8 = new System.Windows.Forms.Label();
+      this.label9 = new System.Windows.Forms.Label();
+      this.label10 = new System.Windows.Forms.Label();
+      this.label11 = new System.Windows.Forms.Label();
+      this.txtName = new System.Windows.Forms.TextBox();
+      this.txtDescription = new System.Windows.Forms.TextBox();
+      this.txtVersion = new System.Windows.Forms.TextBox();
+      this.txtTimestamp = new System.Windows.Forms.TextBox();
+      this.txtMemory = new System.Windows.Forms.TextBox();
+      this.txtNumberOfCores = new System.Windows.Forms.TextBox();
+      this.txtClientType = new System.Windows.Forms.TextBox();
+      this.txtClientConfiguration = new System.Windows.Forms.TextBox();
+      this.txtProcessor = new System.Windows.Forms.TextBox();
+      this.txtOS = new System.Windows.Forms.TextBox();
+      this.txtPerformanceValue = new System.Windows.Forms.TextBox();
+      this.label13 = new System.Windows.Forms.Label();
+      this.txtId = new System.Windows.Forms.TextBox();
+      this.SuspendLayout();
+      // 
+      // label1
+      // 
+      this.label1.AutoSize = true;
+      this.label1.Location = new System.Drawing.Point(3, 6);
+      this.label1.Name = "label1";
+      this.label1.Size = new System.Drawing.Size(38, 13);
+      this.label1.TabIndex = 0;
+      this.label1.Text = "Name:";
+      // 
+      // label2
+      // 
+      this.label2.AutoSize = true;
+      this.label2.Location = new System.Drawing.Point(3, 32);
+      this.label2.Name = "label2";
+      this.label2.Size = new System.Drawing.Size(63, 13);
+      this.label2.TabIndex = 1;
+      this.label2.Text = "Description:";
+      // 
+      // label3
+      // 
+      this.label3.AutoSize = true;
+      this.label3.Location = new System.Drawing.Point(3, 58);
+      this.label3.Name = "label3";
+      this.label3.Size = new System.Drawing.Size(62, 13);
+      this.label3.TabIndex = 2;
+      this.label3.Text = "HL Version:";
+      // 
+      // label4
+      // 
+      this.label4.AutoSize = true;
+      this.label4.Location = new System.Drawing.Point(3, 84);
+      this.label4.Name = "label4";
+      this.label4.Size = new System.Drawing.Size(47, 13);
+      this.label4.TabIndex = 3;
+      this.label4.Text = "Memory:";
+      // 
+      // label5
+      // 
+      this.label5.AutoSize = true;
+      this.label5.Location = new System.Drawing.Point(3, 110);
+      this.label5.Name = "label5";
+      this.label5.Size = new System.Drawing.Size(61, 13);
+      this.label5.TabIndex = 4;
+      this.label5.Text = "Timestamp:";
+      // 
+      // label6
+      // 
+      this.label6.AutoSize = true;
+      this.label6.Location = new System.Drawing.Point(3, 136);
+      this.label6.Name = "label6";
+      this.label6.Size = new System.Drawing.Size(62, 13);
+      this.label6.TabIndex = 5;
+      this.label6.Text = "CPU Cores:";
+      // 
+      // label7
+      // 
+      this.label7.AutoSize = true;
+      this.label7.Location = new System.Drawing.Point(3, 162);
+      this.label7.Name = "label7";
+      this.label7.Size = new System.Drawing.Size(57, 13);
+      this.label7.TabIndex = 6;
+      this.label7.Text = "Processor:";
+      // 
+      // label8
+      // 
+      this.label8.AutoSize = true;
+      this.label8.Location = new System.Drawing.Point(3, 188);
+      this.label8.Name = "label8";
+      this.label8.Size = new System.Drawing.Size(36, 13);
+      this.label8.TabIndex = 7;
+      this.label8.Text = "Client:";
+      // 
+      // label9
+      // 
+      this.label9.AutoSize = true;
+      this.label9.Location = new System.Drawing.Point(3, 214);
+      this.label9.Name = "label9";
+      this.label9.Size = new System.Drawing.Size(63, 13);
+      this.label9.TabIndex = 8;
+      this.label9.Text = "OS Version:";
+      // 
+      // label10
+      // 
+      this.label10.AutoSize = true;
+      this.label10.Location = new System.Drawing.Point(3, 240);
+      this.label10.Name = "label10";
+      this.label10.Size = new System.Drawing.Size(101, 13);
+      this.label10.TabIndex = 9;
+      this.label10.Text = "Client Configuration:";
+      // 
+      // label11
+      // 
+      this.label11.AutoSize = true;
+      this.label11.Location = new System.Drawing.Point(3, 266);
+      this.label11.Name = "label11";
+      this.label11.Size = new System.Drawing.Size(100, 13);
+      this.label11.TabIndex = 10;
+      this.label11.Text = "Performance Value:";
+      // 
+      // txtName
+      // 
+      this.txtName.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+                  | System.Windows.Forms.AnchorStyles.Right)));
+      this.txtName.Location = new System.Drawing.Point(110, 3);
+      this.txtName.Name = "txtName";
+      this.txtName.Size = new System.Drawing.Size(265, 20);
+      this.txtName.TabIndex = 12;
+      // 
+      // txtDescription
+      // 
+      this.txtDescription.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+                  | System.Windows.Forms.AnchorStyles.Right)));
+      this.txtDescription.Location = new System.Drawing.Point(111, 29);
+      this.txtDescription.Name = "txtDescription";
+      this.txtDescription.Size = new System.Drawing.Size(264, 20);
+      this.txtDescription.TabIndex = 13;
+      // 
+      // txtVersion
+      // 
+      this.txtVersion.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+                  | System.Windows.Forms.AnchorStyles.Right)));
+      this.txtVersion.Location = new System.Drawing.Point(111, 55);
+      this.txtVersion.Name = "txtVersion";
+      this.txtVersion.Size = new System.Drawing.Size(264, 20);
+      this.txtVersion.TabIndex = 14;
+      // 
+      // txtTimestamp
+      // 
+      this.txtTimestamp.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+                  | System.Windows.Forms.AnchorStyles.Right)));
+      this.txtTimestamp.Location = new System.Drawing.Point(110, 107);
+      this.txtTimestamp.Name = "txtTimestamp";
+      this.txtTimestamp.Size = new System.Drawing.Size(265, 20);
+      this.txtTimestamp.TabIndex = 15;
+      // 
+      // txtMemory
+      // 
+      this.txtMemory.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+                  | System.Windows.Forms.AnchorStyles.Right)));
+      this.txtMemory.Location = new System.Drawing.Point(110, 81);
+      this.txtMemory.Name = "txtMemory";
+      this.txtMemory.Size = new System.Drawing.Size(265, 20);
+      this.txtMemory.TabIndex = 16;
+      // 
+      // txtNumberOfCores
+      // 
+      this.txtNumberOfCores.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+                  | System.Windows.Forms.AnchorStyles.Right)));
+      this.txtNumberOfCores.Location = new System.Drawing.Point(110, 133);
+      this.txtNumberOfCores.Name = "txtNumberOfCores";
+      this.txtNumberOfCores.Size = new System.Drawing.Size(265, 20);
+      this.txtNumberOfCores.TabIndex = 17;
+      // 
+      // txtClientType
+      // 
+      this.txtClientType.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+                  | System.Windows.Forms.AnchorStyles.Right)));
+      this.txtClientType.Location = new System.Drawing.Point(111, 185);
+      this.txtClientType.Name = "txtClientType";
+      this.txtClientType.Size = new System.Drawing.Size(264, 20);
+      this.txtClientType.TabIndex = 18;
+      // 
+      // txtClientConfiguration
+      // 
+      this.txtClientConfiguration.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+                  | System.Windows.Forms.AnchorStyles.Right)));
+      this.txtClientConfiguration.Location = new System.Drawing.Point(110, 237);
+      this.txtClientConfiguration.Name = "txtClientConfiguration";
+      this.txtClientConfiguration.Size = new System.Drawing.Size(265, 20);
+      this.txtClientConfiguration.TabIndex = 19;
+      // 
+      // txtProcessor
+      // 
+      this.txtProcessor.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+                  | System.Windows.Forms.AnchorStyles.Right)));
+      this.txtProcessor.Location = new System.Drawing.Point(111, 159);
+      this.txtProcessor.Name = "txtProcessor";
+      this.txtProcessor.Size = new System.Drawing.Size(264, 20);
+      this.txtProcessor.TabIndex = 20;
+      // 
+      // txtOS
+      // 
+      this.txtOS.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+                  | System.Windows.Forms.AnchorStyles.Right)));
+      this.txtOS.Location = new System.Drawing.Point(111, 211);
+      this.txtOS.Name = "txtOS";
+      this.txtOS.Size = new System.Drawing.Size(264, 20);
+      this.txtOS.TabIndex = 21;
+      // 
+      // txtPerformanceValue
+      // 
+      this.txtPerformanceValue.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+                  | System.Windows.Forms.AnchorStyles.Right)));
+      this.txtPerformanceValue.Location = new System.Drawing.Point(110, 263);
+      this.txtPerformanceValue.Name = "txtPerformanceValue";
+      this.txtPerformanceValue.Size = new System.Drawing.Size(265, 20);
+      this.txtPerformanceValue.TabIndex = 23;
+      // 
+      // label13
+      // 
+      this.label13.AutoSize = true;
+      this.label13.Location = new System.Drawing.Point(3, 292);
+      this.label13.Name = "label13";
+      this.label13.Size = new System.Drawing.Size(48, 13);
+      this.label13.TabIndex = 24;
+      this.label13.Text = "Client Id:";
+      // 
+      // txtId
+      // 
+      this.txtId.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+                  | System.Windows.Forms.AnchorStyles.Right)));
+      this.txtId.Location = new System.Drawing.Point(111, 289);
+      this.txtId.Name = "txtId";
+      this.txtId.Size = new System.Drawing.Size(264, 20);
+      this.txtId.TabIndex = 25;
+      // 
+      // ClientView
+      // 
+      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.Controls.Add(this.txtId);
+      this.Controls.Add(this.label13);
+      this.Controls.Add(this.txtPerformanceValue);
+      this.Controls.Add(this.txtOS);
+      this.Controls.Add(this.txtProcessor);
+      this.Controls.Add(this.txtClientConfiguration);
+      this.Controls.Add(this.txtClientType);
+      this.Controls.Add(this.txtNumberOfCores);
+      this.Controls.Add(this.txtMemory);
+      this.Controls.Add(this.txtTimestamp);
+      this.Controls.Add(this.txtVersion);
+      this.Controls.Add(this.txtDescription);
+      this.Controls.Add(this.txtName);
+      this.Controls.Add(this.label11);
+      this.Controls.Add(this.label10);
+      this.Controls.Add(this.label9);
+      this.Controls.Add(this.label8);
+      this.Controls.Add(this.label7);
+      this.Controls.Add(this.label6);
+      this.Controls.Add(this.label5);
+      this.Controls.Add(this.label4);
+      this.Controls.Add(this.label3);
+      this.Controls.Add(this.label2);
+      this.Controls.Add(this.label1);
+      this.Name = "ClientView";
+      this.Size = new System.Drawing.Size(378, 315);
+      this.ResumeLayout(false);
+      this.PerformLayout();
+
+    }
+
+    #endregion
+
+    protected System.Windows.Forms.Label label1;
+    protected System.Windows.Forms.Label label2;
+    protected System.Windows.Forms.Label label3;
+    protected System.Windows.Forms.Label label4;
+    protected System.Windows.Forms.Label label5;
+    protected System.Windows.Forms.Label label6;
+    protected System.Windows.Forms.Label label7;
+    protected System.Windows.Forms.Label label8;
+    protected System.Windows.Forms.Label label9;
+    protected System.Windows.Forms.Label label10;
+    protected System.Windows.Forms.Label label11;
+    protected System.Windows.Forms.TextBox txtName;
+    protected System.Windows.Forms.TextBox txtDescription;
+    protected System.Windows.Forms.TextBox txtVersion;
+    protected System.Windows.Forms.TextBox txtTimestamp;
+    protected System.Windows.Forms.TextBox txtMemory;
+    protected System.Windows.Forms.TextBox txtNumberOfCores;
+    protected System.Windows.Forms.TextBox txtClientType;
+    protected System.Windows.Forms.TextBox txtClientConfiguration;
+    protected System.Windows.Forms.TextBox txtProcessor;
+    protected System.Windows.Forms.TextBox txtOS;
+    protected System.Windows.Forms.TextBox txtPerformanceValue;
+    protected System.Windows.Forms.Label label13;
+    protected System.Windows.Forms.TextBox txtId;
+
+  }
+}
Index: /branches/ClientUserManagement/HeuristicLab.Clients.Access.Views/3.3/ClientViews/ClientView.cs
===================================================================
--- /branches/ClientUserManagement/HeuristicLab.Clients.Access.Views/3.3/ClientViews/ClientView.cs	(revision 7555)
+++ /branches/ClientUserManagement/HeuristicLab.Clients.Access.Views/3.3/ClientViews/ClientView.cs	(revision 7555)
@@ -0,0 +1,76 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2012 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 HeuristicLab.Core.Views;
+using HeuristicLab.MainForm;
+
+namespace HeuristicLab.Clients.Access {
+  [View("Client View")]
+  [Content(typeof(Client), true)]
+  public partial class ClientView : ItemView {
+    public new Client Content {
+      get { return (Client)base.Content; }
+      set { base.Content = value; }
+    }
+
+    public ClientView() {
+      InitializeComponent();
+    }
+
+    protected override void OnContentChanged() {
+      base.OnContentChanged();
+
+      if (Content == null) {
+        txtClientConfiguration.Text = string.Empty;
+        txtClientType.Text = string.Empty;
+        txtDescription.Text = string.Empty;
+        txtMemory.Text = string.Empty;
+        txtName.Text = string.Empty;
+        txtNumberOfCores.Text = string.Empty;
+        txtPerformanceValue.Text = string.Empty;
+        txtProcessor.Text = string.Empty;
+        txtTimestamp.Text = string.Empty;
+        txtVersion.Text = string.Empty;
+        txtId.Text = string.Empty;
+        txtOS.Text = string.Empty;
+      } else {
+        if (Content.ClientConfiguration != null) {
+          txtClientConfiguration.Text = Content.ClientConfiguration.Description; //??
+        }
+        if (Content.ClientType != null) {
+          txtClientType.Text = Content.ClientType.Name;
+        }
+        if (Content.OperatingSystem != null) {
+          txtOS.Text = Content.OperatingSystem.Name;
+        }
+        txtDescription.Text = Content.Description;
+        txtMemory.Text = Content.MemorySize.ToString();
+        txtName.Text = Content.Name;
+        txtNumberOfCores.Text = Content.NumberOfCores.ToString();
+        txtPerformanceValue.Text = Content.PerformanceValue.ToString();
+        txtProcessor.Text = Content.ProcessorType;
+        txtTimestamp.Text = Content.Timestamp.ToShortDateString();
+        txtVersion.Text = Content.HeuristicLabVersion;
+        txtId.Text = Content.Id.ToString();
+      }
+    }
+  }
+}
Index: /branches/ClientUserManagement/HeuristicLab.Clients.Access.Views/3.3/HeuristicLab.Clients.Access.Views-3.3.csproj
===================================================================
--- /branches/ClientUserManagement/HeuristicLab.Clients.Access.Views/3.3/HeuristicLab.Clients.Access.Views-3.3.csproj	(revision 7555)
+++ /branches/ClientUserManagement/HeuristicLab.Clients.Access.Views/3.3/HeuristicLab.Clients.Access.Views-3.3.csproj	(revision 7555)
@@ -0,0 +1,197 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProductVersion>8.0.30703</ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{FE856595-64CD-46DA-9CD2-FFF3E6B0D4F2}</ProjectGuid>
+    <OutputType>Library</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>HeuristicLab.Clients.Access.Views</RootNamespace>
+    <AssemblyName>HeuristicLab.Clients.Access.Views-3.3</AssemblyName>
+    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>..\..\..\..\trunk\sources\bin\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>..\..\..\..\trunk\sources\bin\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup>
+    <SignAssembly>true</SignAssembly>
+  </PropertyGroup>
+  <PropertyGroup>
+    <AssemblyOriginatorKeyFile>HeuristicLab.snk</AssemblyOriginatorKeyFile>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="HeuristicLab.Algorithms.Benchmarks-3.3">
+      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Algorithms.Benchmarks-3.3.dll</HintPath>
+      <Private>False</Private>
+    </Reference>
+    <Reference Include="HeuristicLab.Clients.Common-3.3">
+      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Clients.Common-3.3.dll</HintPath>
+      <Private>False</Private>
+    </Reference>
+    <Reference Include="HeuristicLab.Collections-3.3">
+      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Collections-3.3.dll</HintPath>
+      <Private>False</Private>
+    </Reference>
+    <Reference Include="HeuristicLab.Common-3.3">
+      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Common-3.3.dll</HintPath>
+      <Private>False</Private>
+    </Reference>
+    <Reference Include="HeuristicLab.Common.Resources-3.3">
+      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Common.Resources-3.3.dll</HintPath>
+      <Private>False</Private>
+    </Reference>
+    <Reference Include="HeuristicLab.Core-3.3">
+      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Core-3.3.dll</HintPath>
+      <Private>False</Private>
+    </Reference>
+    <Reference Include="HeuristicLab.Core.Views-3.3">
+      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Core.Views-3.3.dll</HintPath>
+      <Private>False</Private>
+    </Reference>
+    <Reference Include="HeuristicLab.Data-3.3">
+      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Data-3.3.dll</HintPath>
+      <Private>False</Private>
+    </Reference>
+    <Reference Include="HeuristicLab.MainForm-3.3">
+      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.MainForm-3.3.dll</HintPath>
+      <Private>False</Private>
+    </Reference>
+    <Reference Include="HeuristicLab.MainForm.WindowsForms-3.3">
+      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.MainForm.WindowsForms-3.3.dll</HintPath>
+      <Private>False</Private>
+    </Reference>
+    <Reference Include="HeuristicLab.Optimization-3.3">
+      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Optimization-3.3.dll</HintPath>
+      <Private>False</Private>
+    </Reference>
+    <Reference Include="HeuristicLab.Optimizer-3.3">
+      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Optimizer-3.3.dll</HintPath>
+      <Private>False</Private>
+    </Reference>
+    <Reference Include="HeuristicLab.Persistence-3.3">
+      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Persistence-3.3.dll</HintPath>
+      <Private>False</Private>
+    </Reference>
+    <Reference Include="HeuristicLab.PluginInfrastructure-3.3">
+      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.PluginInfrastructure-3.3.dll</HintPath>
+      <Private>False</Private>
+    </Reference>
+    <Reference Include="System" />
+    <Reference Include="System.Core" />
+    <Reference Include="System.Drawing" />
+    <Reference Include="System.Runtime.Serialization" />
+    <Reference Include="System.Windows.Forms" />
+    <Reference Include="System.Xml.Linq" />
+    <Reference Include="System.Data.DataSetExtensions" />
+    <Reference Include="Microsoft.CSharp" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="ClientViews\AdminClientView.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="ClientViews\AdminClientView.Designer.cs">
+      <DependentUpon>AdminClientView.cs</DependentUpon>
+    </Compile>
+    <Compile Include="ClientViews\ClientInformationDialog.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="ClientViews\ClientInformationDialog.Designer.cs">
+      <DependentUpon>ClientInformationDialog.cs</DependentUpon>
+    </Compile>
+    <Compile Include="ClientViews\ClientRegistrationDialog.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="ClientViews\ClientRegistrationDialog.Designer.cs">
+      <DependentUpon>ClientRegistrationDialog.cs</DependentUpon>
+    </Compile>
+    <Compile Include="ClientViews\ClientView.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="ClientViews\ClientView.Designer.cs">
+      <DependentUpon>ClientView.cs</DependentUpon>
+    </Compile>
+    <Compile Include="MenuItems\ClientInfoMenuItem.cs" />
+    <Compile Include="Plugin.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+    <Compile Include="UserViews\LightweightUserGroupSelectionDialog.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="UserViews\LightweightUserGroupSelectionDialog.Designer.cs">
+      <DependentUpon>LightweightUserGroupSelectionDialog.cs</DependentUpon>
+    </Compile>
+    <Compile Include="UserViews\LightweightUserGroupSelectionView.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="UserViews\LightweightUserGroupSelectionView.Designer.cs">
+      <DependentUpon>LightweightUserGroupSelectionView.cs</DependentUpon>
+    </Compile>
+    <Compile Include="UserViews\LightweightUserView.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="UserViews\LightweightUserView.Designer.cs">
+      <DependentUpon>LightweightUserView.cs</DependentUpon>
+    </Compile>
+    <Compile Include="UserViews\RefreshableLightweightUserView.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="UserViews\RefreshableLightweightUserView.Designer.cs">
+      <DependentUpon>RefreshableLightweightUserView.cs</DependentUpon>
+    </Compile>
+    <Compile Include="UserViews\RefreshableView.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="UserViews\RefreshableView.Designer.cs">
+      <DependentUpon>RefreshableView.cs</DependentUpon>
+    </Compile>
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="HeuristicLab.snk" />
+    <None Include="Plugin.cs.frame" />
+    <None Include="Properties\AssemblyInfo.cs.frame" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\..\HeuristicLab.Clients.Access\3.3\HeuristicLab.Clients.Access-3.3.csproj">
+      <Project>{494F87F4-0F25-4D33-A382-10CDB2174D48}</Project>
+      <Name>HeuristicLab.Clients.Access-3.3</Name>
+    </ProjectReference>
+  </ItemGroup>
+  <ItemGroup />
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+  <PropertyGroup>
+    <PreBuildEvent>set Path=%25Path%25;$(ProjectDir);$(SolutionDir)
+set ProjectDir=$(ProjectDir)
+set SolutionDir=$(SolutionDir)
+set Outdir=$(Outdir)
+call PreBuildEvent.cmd</PreBuildEvent>
+  </PropertyGroup>
+  <PropertyGroup>
+    <PostBuildEvent>
+    </PostBuildEvent>
+  </PropertyGroup>
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
+       Other similar extension points exist, see Microsoft.Common.targets.
+  <Target Name="BeforeBuild">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
+</Project>
Index: /branches/ClientUserManagement/HeuristicLab.Clients.Access.Views/3.3/MenuItems/ClientInfoMenuItem.cs
===================================================================
--- /branches/ClientUserManagement/HeuristicLab.Clients.Access.Views/3.3/MenuItems/ClientInfoMenuItem.cs	(revision 7555)
+++ /branches/ClientUserManagement/HeuristicLab.Clients.Access.Views/3.3/MenuItems/ClientInfoMenuItem.cs	(revision 7555)
@@ -0,0 +1,48 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2012 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.Collections.Generic;
+using HeuristicLab.Optimizer;
+
+namespace HeuristicLab.Clients.Access {
+  public class ClientInfoMenuItem : HeuristicLab.MainForm.WindowsForms.MenuItem, IOptimizerUserInterfaceItemProvider {
+    public override string Name {
+      get { return "&Client Information"; }
+    }
+    public override IEnumerable<string> Structure {
+      get { return new string[] { "&Services", "&Access" }; }
+    }
+    public override void Execute() {
+      if (ClientInformation.Instance.ClientExists) {
+        using (ClientInformationDialog dialog = new ClientInformationDialog()) {
+          dialog.ShowDialog();
+        }
+      } else {
+        using (ClientRegistrationDialog regDialog = new ClientRegistrationDialog()) {
+          regDialog.ShowDialog();
+        }
+      }
+    }
+    public override int Position {
+      get { return 10000; }
+    }
+  }
+}
Index: /branches/ClientUserManagement/HeuristicLab.Clients.Access.Views/3.3/Plugin.cs.frame
===================================================================
--- /branches/ClientUserManagement/HeuristicLab.Clients.Access.Views/3.3/Plugin.cs.frame	(revision 7555)
+++ /branches/ClientUserManagement/HeuristicLab.Clients.Access.Views/3.3/Plugin.cs.frame	(revision 7555)
@@ -0,0 +1,46 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2012 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 HeuristicLab.PluginInfrastructure;
+
+namespace HeuristicLab.Clients.Access {
+  /// <summary>
+  /// Plugin class for HeuristicLab.Clients.Access.Views plugin.
+  /// </summary>
+  [Plugin("HeuristicLab.Clients.Access.Views", "3.3.6.$WCREV$")]
+  [PluginFile("HeuristicLab.Clients.Access.Views-3.3.dll", PluginFileType.Assembly)]  
+  [PluginDependency("HeuristicLab.Clients.Common", "3.3")]
+  [PluginDependency("HeuristicLab.Algorithms.Benchmarks", "3.3")]
+  [PluginDependency("HeuristicLab.Optimization", "3.3")]
+  [PluginDependency("HeuristicLab.Collections", "3.3")]
+  [PluginDependency("HeuristicLab.Optimizer", "3.3")]
+  [PluginDependency("HeuristicLab.Common", "3.3")]
+  [PluginDependency("HeuristicLab.Common.Resources", "3.3")]
+  [PluginDependency("HeuristicLab.Core", "3.3")]
+  [PluginDependency("HeuristicLab.Core.Views", "3.3")]
+  [PluginDependency("HeuristicLab.Data", "3.3")]
+  [PluginDependency("HeuristicLab.MainForm", "3.3")]
+  [PluginDependency("HeuristicLab.MainForm.WindowsForms", "3.3")]  
+  [PluginDependency("HeuristicLab.Clients.Access", "3.3")]
+  [PluginDependency("HeuristicLab.Persistence", "3.3")]
+  public class HeuristicLabClientsAccessPlugin : PluginBase {
+  }
+}
Index: /branches/ClientUserManagement/HeuristicLab.Clients.Access.Views/3.3/Properties/AssemblyInfo.cs.frame
===================================================================
--- /branches/ClientUserManagement/HeuristicLab.Clients.Access.Views/3.3/Properties/AssemblyInfo.cs.frame	(revision 7555)
+++ /branches/ClientUserManagement/HeuristicLab.Clients.Access.Views/3.3/Properties/AssemblyInfo.cs.frame	(revision 7555)
@@ -0,0 +1,57 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2012 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.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following 
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("HeuristicLab.Services.Access.Views")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("HeuristicLab")]
+[assembly: AssemblyCopyright("(c) 2002-2012 HEAL")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible 
+// to COM components.  If you need to access a type in this assembly from 
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("7032d7ba-4799-4708-803d-9f6cb3feed35")]
+
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version 
+//      Build Number
+//      Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers 
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("3.3.0.0")]
+[assembly: AssemblyFileVersion("3.3.6.$WCREV$")]
Index: /branches/ClientUserManagement/HeuristicLab.Clients.Access.Views/3.3/UserViews/LightweightUserGroupSelectionDialog.Designer.cs
===================================================================
--- /branches/ClientUserManagement/HeuristicLab.Clients.Access.Views/3.3/UserViews/LightweightUserGroupSelectionDialog.Designer.cs	(revision 7555)
+++ /branches/ClientUserManagement/HeuristicLab.Clients.Access.Views/3.3/UserViews/LightweightUserGroupSelectionDialog.Designer.cs	(revision 7555)
@@ -0,0 +1,90 @@
+﻿namespace HeuristicLab.Clients.Access.Views {
+  partial class LightweightUserGroupSelectionDialog {
+    /// <summary>
+    /// Required designer variable.
+    /// </summary>
+    private System.ComponentModel.IContainer components = null;
+
+    /// <summary>
+    /// Clean up any resources being used.
+    /// </summary>
+    /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+    protected override void Dispose(bool disposing) {
+      if (disposing && (components != null)) {
+        components.Dispose();
+      }
+      base.Dispose(disposing);
+    }
+
+    #region Windows Form Designer generated code
+
+    /// <summary>
+    /// Required method for Designer support - do not modify
+    /// the contents of this method with the code editor.
+    /// </summary>
+    private void InitializeComponent() {
+      this.OkButton = new System.Windows.Forms.Button();
+      this.CancelButton = new System.Windows.Forms.Button();
+      this.lightweightUserGroupSelectionView = new HeuristicLab.Clients.Access.Views.LightweightUserGroupSelectionView();
+      this.SuspendLayout();
+      // 
+      // OkButton
+      // 
+      this.OkButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+      this.OkButton.Location = new System.Drawing.Point(374, 290);
+      this.OkButton.Name = "OkButton";
+      this.OkButton.Size = new System.Drawing.Size(75, 23);
+      this.OkButton.TabIndex = 1;
+      this.OkButton.Text = "OK";
+      this.OkButton.UseVisualStyleBackColor = true;
+      this.OkButton.Click += new System.EventHandler(this.OkButton_Click);
+      // 
+      // CancelButton
+      // 
+      this.CancelButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+      this.CancelButton.DialogResult = System.Windows.Forms.DialogResult.Cancel;
+      this.CancelButton.Location = new System.Drawing.Point(455, 290);
+      this.CancelButton.Name = "CancelButton";
+      this.CancelButton.Size = new System.Drawing.Size(75, 23);
+      this.CancelButton.TabIndex = 2;
+      this.CancelButton.Text = "Cancel";
+      this.CancelButton.UseVisualStyleBackColor = true;
+      // 
+      // lightweightUserGroupSelectionView
+      // 
+      this.lightweightUserGroupSelectionView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+                  | System.Windows.Forms.AnchorStyles.Left)
+                  | System.Windows.Forms.AnchorStyles.Right)));
+      this.lightweightUserGroupSelectionView.Location = new System.Drawing.Point(12, 12);
+      this.lightweightUserGroupSelectionView.Name = "lightweightUserGroupSelectionView";
+      this.lightweightUserGroupSelectionView.Size = new System.Drawing.Size(518, 272);
+      this.lightweightUserGroupSelectionView.TabIndex = 0;
+      // 
+      // LightweightUserGroupSelectionDialog
+      // 
+      this.AcceptButton = this.OkButton;
+      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.ClientSize = new System.Drawing.Size(542, 325);
+      this.Controls.Add(this.CancelButton);
+      this.Controls.Add(this.OkButton);
+      this.Controls.Add(this.lightweightUserGroupSelectionView);
+      this.MaximizeBox = false;
+      this.MinimizeBox = false;
+      this.Name = "LightweightUserGroupSelectionDialog";
+      this.ShowIcon = false;
+      this.ShowInTaskbar = false;
+      this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
+      this.Text = "Select users and groups";
+      this.TopMost = true;
+      this.ResumeLayout(false);
+
+    }
+
+    #endregion
+
+    private LightweightUserGroupSelectionView lightweightUserGroupSelectionView;
+    private System.Windows.Forms.Button OkButton;
+    private System.Windows.Forms.Button CancelButton;
+  }
+}
Index: /branches/ClientUserManagement/HeuristicLab.Clients.Access.Views/3.3/UserViews/LightweightUserGroupSelectionDialog.cs
===================================================================
--- /branches/ClientUserManagement/HeuristicLab.Clients.Access.Views/3.3/UserViews/LightweightUserGroupSelectionDialog.cs	(revision 7555)
+++ /branches/ClientUserManagement/HeuristicLab.Clients.Access.Views/3.3/UserViews/LightweightUserGroupSelectionDialog.cs	(revision 7555)
@@ -0,0 +1,44 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2012 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.Windows.Forms;
+using HeuristicLab.Core;
+
+namespace HeuristicLab.Clients.Access.Views {
+  public partial class LightweightUserGroupSelectionDialog : Form {
+    private ItemList<UserGroupBase> selectedUsersAndGroups;
+    public ItemList<UserGroupBase> SelectedUsersAndGroups {
+      get {
+        return selectedUsersAndGroups;
+      }
+    }
+
+    public LightweightUserGroupSelectionDialog() {
+      InitializeComponent();
+    }
+
+    private void OkButton_Click(object sender, System.EventArgs e) {
+      selectedUsersAndGroups = lightweightUserGroupSelectionView.GetSelectedItems();
+      this.DialogResult = System.Windows.Forms.DialogResult.OK;
+      Close();
+    }
+  }
+}
Index: /branches/ClientUserManagement/HeuristicLab.Clients.Access.Views/3.3/UserViews/LightweightUserGroupSelectionView.Designer.cs
===================================================================
--- /branches/ClientUserManagement/HeuristicLab.Clients.Access.Views/3.3/UserViews/LightweightUserGroupSelectionView.Designer.cs	(revision 7555)
+++ /branches/ClientUserManagement/HeuristicLab.Clients.Access.Views/3.3/UserViews/LightweightUserGroupSelectionView.Designer.cs	(revision 7555)
@@ -0,0 +1,94 @@
+﻿namespace HeuristicLab.Clients.Access.Views {
+  partial class LightweightUserGroupSelectionView {
+    /// <summary> 
+    /// Required designer variable.
+    /// </summary>
+    private System.ComponentModel.IContainer components = null;
+
+    /// <summary> 
+    /// Clean up any resources being used.
+    /// </summary>
+    /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+    protected override void Dispose(bool disposing) {
+      if (disposing && (components != null)) {
+        components.Dispose();
+      }
+      base.Dispose(disposing);
+    }
+
+    #region Component Designer generated code
+
+    /// <summary> 
+    /// Required method for Designer support - do not modify 
+    /// the contents of this method with the code editor.
+    /// </summary>
+    private void InitializeComponent() {
+      this.components = new System.ComponentModel.Container();
+      System.Windows.Forms.ListViewGroup listViewGroup1 = new System.Windows.Forms.ListViewGroup("Groups", System.Windows.Forms.HorizontalAlignment.Left);
+      System.Windows.Forms.ListViewGroup listViewGroup2 = new System.Windows.Forms.ListViewGroup("Users", System.Windows.Forms.HorizontalAlignment.Left);
+      this.itemsListView = new System.Windows.Forms.ListView();
+      this.nameColumnHeader = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+      this.detailsColumnHeader = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+      this.imageList = new System.Windows.Forms.ImageList(this.components);
+      this.SuspendLayout();
+      // 
+      // itemsListView
+      // 
+      this.itemsListView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+                  | System.Windows.Forms.AnchorStyles.Left)
+                  | System.Windows.Forms.AnchorStyles.Right)));
+      this.itemsListView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
+            this.nameColumnHeader,
+            this.detailsColumnHeader});
+      this.itemsListView.FullRowSelect = true;
+      listViewGroup1.Header = "Groups";
+      listViewGroup1.Name = "groupsListViewGroup";
+      listViewGroup2.Header = "Users";
+      listViewGroup2.Name = "usersListViewGroup";
+      this.itemsListView.Groups.AddRange(new System.Windows.Forms.ListViewGroup[] {
+            listViewGroup1,
+            listViewGroup2});
+      this.itemsListView.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.None;
+      this.itemsListView.HideSelection = false;
+      this.itemsListView.Location = new System.Drawing.Point(3, 3);
+      this.itemsListView.Name = "itemsListView";
+      this.itemsListView.Size = new System.Drawing.Size(446, 308);
+      this.itemsListView.SmallImageList = this.imageList;
+      this.itemsListView.TabIndex = 0;
+      this.itemsListView.UseCompatibleStateImageBehavior = false;
+      this.itemsListView.View = System.Windows.Forms.View.Details;
+      // 
+      // nameColumnHeader
+      // 
+      this.nameColumnHeader.Text = "Name";
+      // 
+      // detailsColumnHeader
+      // 
+      this.detailsColumnHeader.Text = "Details";
+      // 
+      // imageList
+      // 
+      this.imageList.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit;
+      this.imageList.ImageSize = new System.Drawing.Size(16, 16);
+      this.imageList.TransparentColor = System.Drawing.Color.Transparent;
+      // 
+      // LightweightUserGroupSelectionView
+      // 
+      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.Controls.Add(this.itemsListView);
+      this.Name = "LightweightUserGroupSelectionView";
+      this.Size = new System.Drawing.Size(452, 314);
+      this.Load += new System.EventHandler(this.LightweightUserGroupSelectionView_Load);
+      this.ResumeLayout(false);
+
+    }
+
+    #endregion
+
+    private System.Windows.Forms.ListView itemsListView;
+    private System.Windows.Forms.ImageList imageList;
+    private System.Windows.Forms.ColumnHeader nameColumnHeader;
+    private System.Windows.Forms.ColumnHeader detailsColumnHeader;
+  }
+}
Index: /branches/ClientUserManagement/HeuristicLab.Clients.Access.Views/3.3/UserViews/LightweightUserGroupSelectionView.cs
===================================================================
--- /branches/ClientUserManagement/HeuristicLab.Clients.Access.Views/3.3/UserViews/LightweightUserGroupSelectionView.cs	(revision 7555)
+++ /branches/ClientUserManagement/HeuristicLab.Clients.Access.Views/3.3/UserViews/LightweightUserGroupSelectionView.cs	(revision 7555)
@@ -0,0 +1,98 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2012 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.Windows.Forms;
+using HeuristicLab.Core;
+using HeuristicLab.PluginInfrastructure;
+
+namespace HeuristicLab.Clients.Access.Views {
+  public sealed partial class LightweightUserGroupSelectionView : UserControl {
+    public LightweightUserGroupSelectionView() {
+      InitializeComponent();
+    }
+
+    public ItemList<UserGroupBase> GetSelectedItems() {
+      ItemList<UserGroupBase> result = new ItemList<UserGroupBase>();
+
+      foreach (var item in itemsListView.SelectedItems) {
+        UserGroupBase ugb = ((ListViewItem)item).Tag as UserGroupBase;
+        if (ugb != null) {
+          result.Add(ugb);
+        }
+      }
+      return result;
+    }
+
+    private void LightweightUserGroupSelectionView_Load(object sender, EventArgs e) {
+      if (!this.DesignMode && AccessClient.Instance.UsersAndGroups == null) {
+        AccessClient.Instance.Refreshing += new EventHandler(Instance_Refreshing);
+        AccessClient.Instance.Refreshed += new EventHandler(Instance_Refreshed);
+        AccessClient.Instance.RefreshAsync(new Action<Exception>((Exception ex) => ErrorHandling.ShowErrorDialog(this, "Refresh failed.", ex)));
+        AccessClient.Instance.Refreshing -= new EventHandler(Instance_Refreshing);
+        AccessClient.Instance.Refreshed -= new EventHandler(Instance_Refreshed);
+      }
+
+      if (AccessClient.Instance.UsersAndGroups != null) {
+        AccessClient.Instance.UsersAndGroups.ForEach(x => AddListViewItem(CreateListViewItem(x)));
+
+        foreach (ColumnHeader c in this.itemsListView.Columns) {
+          c.AutoResize(ColumnHeaderAutoResizeStyle.ColumnContent);
+        }
+      }
+    }
+
+    void Instance_Refreshed(object sender, EventArgs e) {
+      //TODO: show loading bar
+      if (AccessClient.Instance.UsersAndGroups != null)
+        this.itemsListView.Enabled = true;
+    }
+
+    void Instance_Refreshing(object sender, EventArgs e) {
+      this.itemsListView.Enabled = false;
+    }
+
+    private ListViewItem CreateListViewItem(UserGroupBase item) {
+      ListViewItem listViewItem = new ListViewItem();
+
+      listViewItem.Text = item.ToString();
+      itemsListView.SmallImageList.Images.Add(item.ItemImage);
+      listViewItem.ImageIndex = itemsListView.SmallImageList.Images.Count - 1;
+      listViewItem.Tag = item;
+      if (item is UserGroup) {
+        listViewItem.SubItems.Insert(0, new ListViewItem.ListViewSubItem(listViewItem, item.ToString()));
+        listViewItem.SubItems.Insert(1, new ListViewItem.ListViewSubItem(listViewItem, string.Empty));
+        listViewItem.Group = itemsListView.Groups[0];
+      } else if (item is LightweightUser) {
+        var lu = item as LightweightUser;
+        listViewItem.SubItems.Insert(0, new ListViewItem.ListViewSubItem(listViewItem, lu.UserName));
+        listViewItem.SubItems.Insert(1, new ListViewItem.ListViewSubItem(listViewItem, lu.FullName));
+        listViewItem.Group = itemsListView.Groups[1];
+      }
+
+      return listViewItem;
+    }
+
+    private void AddListViewItem(ListViewItem listViewItem) {
+      itemsListView.Items.Add(listViewItem);
+    }
+  }
+}
Index: /branches/ClientUserManagement/HeuristicLab.Clients.Access.Views/3.3/UserViews/LightweightUserView.Designer.cs
===================================================================
--- /branches/ClientUserManagement/HeuristicLab.Clients.Access.Views/3.3/UserViews/LightweightUserView.Designer.cs	(revision 7555)
+++ /branches/ClientUserManagement/HeuristicLab.Clients.Access.Views/3.3/UserViews/LightweightUserView.Designer.cs	(revision 7555)
@@ -0,0 +1,41 @@
+﻿namespace HeuristicLab.Clients.Access.Views {
+  partial class LightweightUserView {
+    /// <summary> 
+    /// Required designer variable.
+    /// </summary>
+    private System.ComponentModel.IContainer components = null;
+
+    /// <summary> 
+    /// Clean up any resources being used.
+    /// </summary>
+    /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+    protected override void Dispose(bool disposing) {
+      if (disposing && (components != null)) {
+        components.Dispose();
+      }
+      base.Dispose(disposing);
+    }
+
+    #region Component Designer generated code
+
+    /// <summary> 
+    /// Required method for Designer support - do not modify 
+    /// the contents of this method with the code editor.
+    /// </summary>
+    private void InitializeComponent() {
+      this.SuspendLayout();
+      // 
+      // LightweightUserView
+      // 
+      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.Name = "LightweightUserView";
+      this.Size = new System.Drawing.Size(538, 235);
+      this.ResumeLayout(false);
+
+    }
+
+    #endregion
+
+  }
+}
Index: /branches/ClientUserManagement/HeuristicLab.Clients.Access.Views/3.3/UserViews/LightweightUserView.cs
===================================================================
--- /branches/ClientUserManagement/HeuristicLab.Clients.Access.Views/3.3/UserViews/LightweightUserView.cs	(revision 7555)
+++ /branches/ClientUserManagement/HeuristicLab.Clients.Access.Views/3.3/UserViews/LightweightUserView.cs	(revision 7555)
@@ -0,0 +1,74 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2012 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.Windows.Forms;
+using HeuristicLab.Core;
+using HeuristicLab.Core.Views;
+using HeuristicLab.MainForm;
+using HeuristicLab.MainForm.WindowsForms;
+
+namespace HeuristicLab.Clients.Access.Views {
+  [View("LightweightUser View")]
+  [Content(typeof(ItemList<UserGroupBase>), true)]
+  public partial class LightweightUserView : ItemListView<UserGroupBase> {
+    public LightweightUserView() {
+      InitializeComponent();
+      this.showDetailsCheckBox.Checked = false;
+      this.itemsGroupBox.Text = "Users and Groups";
+    }
+
+    protected override void addButton_Click(object sender, System.EventArgs e) {
+      using (LightweightUserGroupSelectionDialog dlg = new LightweightUserGroupSelectionDialog()) {
+        DialogResult res = dlg.ShowDialog(this);
+        if (res == DialogResult.OK) {
+          dlg.SelectedUsersAndGroups.ForEach(x => {
+            if (!Content.Contains(x)) {
+              Content.Add(x);
+              OnSelectedUsersChanged();
+            }
+          });
+        }
+      }
+    }
+
+    protected override void removeButton_Click(object sender, EventArgs e) {
+      base.removeButton_Click(sender, e);
+      OnSelectedUsersChanged();
+    }
+
+    protected override void SetEnabledStateOfControls() {
+      base.SetEnabledStateOfControls();
+      this.showDetailsCheckBox.Enabled = false;
+    }
+
+    public event EventHandler SelectedUsersChanged;
+    protected virtual void OnSelectedUsersChanged() {
+      if (InvokeRequired)
+        Invoke((MethodInvoker)OnSelectedUsersChanged);
+      else {
+        EventHandler handler = SelectedUsersChanged;
+        if (handler != null)
+          handler(this, EventArgs.Empty);
+      }
+    }
+  }
+}
Index: /branches/ClientUserManagement/HeuristicLab.Clients.Access.Views/3.3/UserViews/RefreshableLightweightUserView.Designer.cs
===================================================================
--- /branches/ClientUserManagement/HeuristicLab.Clients.Access.Views/3.3/UserViews/RefreshableLightweightUserView.Designer.cs	(revision 7555)
+++ /branches/ClientUserManagement/HeuristicLab.Clients.Access.Views/3.3/UserViews/RefreshableLightweightUserView.Designer.cs	(revision 7555)
@@ -0,0 +1,59 @@
+﻿namespace HeuristicLab.Clients.Access.Views {
+  partial class RefreshableLightweightUserView {
+    /// <summary> 
+    /// Required designer variable.
+    /// </summary>
+    private System.ComponentModel.IContainer components = null;
+
+    /// <summary> 
+    /// Clean up any resources being used.
+    /// </summary>
+    /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+    protected override void Dispose(bool disposing) {
+      if (disposing && (components != null)) {
+        components.Dispose();
+      }
+      base.Dispose(disposing);
+    }
+
+    #region Component Designer generated code
+
+    /// <summary> 
+    /// Required method for Designer support - do not modify 
+    /// the contents of this method with the code editor.
+    /// </summary>
+    private void InitializeComponent() {
+      this.lightweightUserView = new HeuristicLab.Clients.Access.Views.LightweightUserView();
+      this.SuspendLayout();
+      // 
+      // lightweightUserView
+      // 
+      this.lightweightUserView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+                  | System.Windows.Forms.AnchorStyles.Left)
+                  | System.Windows.Forms.AnchorStyles.Right)));
+      this.lightweightUserView.Caption = "LightweightUser View";
+      this.lightweightUserView.Content = null;
+      this.lightweightUserView.Location = new System.Drawing.Point(3, 33);
+      this.lightweightUserView.Name = "lightweightUserView";
+      this.lightweightUserView.ReadOnly = false;
+      this.lightweightUserView.Size = new System.Drawing.Size(500, 218);
+      this.lightweightUserView.TabIndex = 2;
+      this.lightweightUserView.SelectedUsersChanged += new System.EventHandler(this.lightweightUserView_SelectedUsersChanged);
+      // 
+      // RefreshableLightweightUserView
+      // 
+      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.Controls.Add(this.lightweightUserView);
+      this.Name = "RefreshableLightweightUserView";
+      this.Controls.SetChildIndex(this.lightweightUserView, 0);
+      this.Controls.SetChildIndex(this.refreshButton, 0);
+      this.ResumeLayout(false);
+
+    }
+
+    #endregion
+
+    private LightweightUserView lightweightUserView;
+  }
+}
Index: /branches/ClientUserManagement/HeuristicLab.Clients.Access.Views/3.3/UserViews/RefreshableLightweightUserView.cs
===================================================================
--- /branches/ClientUserManagement/HeuristicLab.Clients.Access.Views/3.3/UserViews/RefreshableLightweightUserView.cs	(revision 7555)
+++ /branches/ClientUserManagement/HeuristicLab.Clients.Access.Views/3.3/UserViews/RefreshableLightweightUserView.cs	(revision 7555)
@@ -0,0 +1,87 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2012 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 System.Linq;
+using System.Windows.Forms;
+using HeuristicLab.Core;
+using HeuristicLab.MainForm;
+using HeuristicLab.MainForm.WindowsForms;
+using HeuristicLab.PluginInfrastructure;
+
+namespace HeuristicLab.Clients.Access.Views {
+  [View("RefreshableLightweightUser View")]
+  [Content(typeof(AccessClient), false)]
+  public partial class RefreshableLightweightUserView : RefreshableView {
+    public RefreshableLightweightUserView() {
+      InitializeComponent();
+    }
+
+    //set an action like a webservice call to retrieve the users which should be marked as checked           
+    public Func<List<Guid>> FetchSelectedUsers { get; set; }
+    private List<Guid> selectedUsers;
+
+    protected override void RefreshData() {
+      Action completeRefreshAction = new Action(delegate {
+        selectedUsers = FetchSelectedUsers();
+        Content.Refresh();
+      });
+
+      Content.ExecuteActionAsync(completeRefreshAction, new Action<Exception>((Exception ex) => ErrorHandling.ShowErrorDialog(this, "Refresh failed.", ex)));
+    }
+
+    protected override void Content_Refreshing(object sender, EventArgs e) {
+      base.Content_Refreshing(sender, e);
+      lightweightUserView.Content = null;
+    }
+
+    protected override void Content_Refreshed(object sender, EventArgs e) {
+      base.Content_Refreshed(sender, e);
+
+      lightweightUserView.Content = new ItemList<UserGroupBase>(Content.UsersAndGroups.Where(x => selectedUsers.Contains(x.Id)));
+    }
+
+    protected override void SetEnabledStateOfControls() {
+      base.SetEnabledStateOfControls();
+      refreshButton.Enabled = FetchSelectedUsers != null;
+    }
+
+    public IItemList<UserGroupBase> GetCheckedUsers() {
+      return (lightweightUserView.Content == null) ? null : lightweightUserView.Content;
+    }
+
+    public event EventHandler SelectedUsersChanged;
+    protected virtual void OnSelectedUsersChanged() {
+      if (InvokeRequired)
+        Invoke((MethodInvoker)OnSelectedUsersChanged);
+      else {
+        EventHandler handler = SelectedUsersChanged;
+        if (handler != null)
+          handler(this, EventArgs.Empty);
+      }
+    }
+
+    private void lightweightUserView_SelectedUsersChanged(object sender, EventArgs e) {
+      OnSelectedUsersChanged();
+    }
+  }
+}
Index: /branches/ClientUserManagement/HeuristicLab.Clients.Access.Views/3.3/UserViews/RefreshableView.Designer.cs
===================================================================
--- /branches/ClientUserManagement/HeuristicLab.Clients.Access.Views/3.3/UserViews/RefreshableView.Designer.cs	(revision 7555)
+++ /branches/ClientUserManagement/HeuristicLab.Clients.Access.Views/3.3/UserViews/RefreshableView.Designer.cs	(revision 7555)
@@ -0,0 +1,55 @@
+﻿namespace HeuristicLab.Clients.Access.Views {
+  partial class RefreshableView {
+    /// <summary> 
+    /// Required designer variable.
+    /// </summary>
+    private System.ComponentModel.IContainer components = null;
+
+    /// <summary> 
+    /// Clean up any resources being used.
+    /// </summary>
+    /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+    protected override void Dispose(bool disposing) {
+      if (disposing && (components != null)) {
+        components.Dispose();
+      }
+      base.Dispose(disposing);
+    }
+
+    #region Component Designer generated code
+
+    /// <summary> 
+    /// Required method for Designer support - do not modify 
+    /// the contents of this method with the code editor.
+    /// </summary>
+    private void InitializeComponent() {
+      System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(RefreshableView));
+      this.refreshButton = new System.Windows.Forms.Button();
+      this.SuspendLayout();
+      // 
+      // refreshButton
+      // 
+      this.refreshButton.Image = HeuristicLab.Common.Resources.VSImageLibrary.Refresh;
+      this.refreshButton.Location = new System.Drawing.Point(3, 3);
+      this.refreshButton.Name = "refreshButton";
+      this.refreshButton.Size = new System.Drawing.Size(24, 24);
+      this.refreshButton.TabIndex = 1;
+      this.refreshButton.UseVisualStyleBackColor = true;
+      this.refreshButton.Click += new System.EventHandler(this.refreshButton_Click);
+      // 
+      // RefreshableView
+      // 
+      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.Controls.Add(this.refreshButton);
+      this.Name = "RefreshableView";
+      this.Size = new System.Drawing.Size(506, 254);
+      this.ResumeLayout(false);
+
+    }
+
+    #endregion
+
+    protected System.Windows.Forms.Button refreshButton;
+  }
+}
Index: /branches/ClientUserManagement/HeuristicLab.Clients.Access.Views/3.3/UserViews/RefreshableView.cs
===================================================================
--- /branches/ClientUserManagement/HeuristicLab.Clients.Access.Views/3.3/UserViews/RefreshableView.cs	(revision 7555)
+++ /branches/ClientUserManagement/HeuristicLab.Clients.Access.Views/3.3/UserViews/RefreshableView.cs	(revision 7555)
@@ -0,0 +1,80 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2012 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.Windows.Forms;
+using HeuristicLab.MainForm;
+using HeuristicLab.MainForm.WindowsForms;
+
+namespace HeuristicLab.Clients.Access.Views {
+  [View("Refreshable View")]
+  [Content(typeof(AccessClient), true)]
+  public partial class RefreshableView : AsynchronousContentView {
+    public new AccessClient Content {
+      get { return (AccessClient)base.Content; }
+      set { base.Content = value; }
+    }
+    public RefreshableView() {
+      InitializeComponent();
+    }
+
+    protected override void DeregisterContentEvents() {
+      Content.Refreshing -= new EventHandler(Content_Refreshing);
+      Content.Refreshed -= new EventHandler(Content_Refreshed);
+      base.DeregisterContentEvents();
+    }
+
+    protected override void RegisterContentEvents() {
+      base.RegisterContentEvents();
+      Content.Refreshing += new EventHandler(Content_Refreshing);
+      Content.Refreshed += new EventHandler(Content_Refreshed);
+    }
+
+    protected override void SetEnabledStateOfControls() {
+      base.SetEnabledStateOfControls();
+      refreshButton.Enabled = Content != null;
+    }
+
+    protected virtual void Content_Refreshing(object sender, EventArgs e) {
+      if (InvokeRequired) {
+        Invoke(new EventHandler(Content_Refreshing), sender, e);
+      } else {
+        Cursor = Cursors.AppStarting;
+        refreshButton.Enabled = false;
+      }
+    }
+
+    protected virtual void Content_Refreshed(object sender, EventArgs e) {
+      if (InvokeRequired) {
+        Invoke(new EventHandler(Content_Refreshed), sender, e);
+      } else {
+        Cursor = Cursors.Default;
+        refreshButton.Enabled = true;
+      }
+    }
+
+    protected virtual void RefreshData() { }
+
+    protected void refreshButton_Click(object sender, System.EventArgs e) {
+      RefreshData();
+    }
+  }
+}
Index: /branches/ClientUserManagement/HeuristicLab.Clients.Access/3.3/HeuristicLab.Clients.Access-3.3.csproj
===================================================================
--- /branches/ClientUserManagement/HeuristicLab.Clients.Access/3.3/HeuristicLab.Clients.Access-3.3.csproj	(revision 7554)
+++ /branches/ClientUserManagement/HeuristicLab.Clients.Access/3.3/HeuristicLab.Clients.Access-3.3.csproj	(revision 7555)
@@ -38,5 +38,8 @@
   </PropertyGroup>
   <ItemGroup>
-    <Reference Include="HeuristicLab.Algorithms.Benchmarks-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL" />
+    <Reference Include="HeuristicLab.Algorithms.Benchmarks-3.3">
+      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Algorithms.Benchmarks-3.3.dll</HintPath>
+      <Private>False</Private>
+    </Reference>
     <Reference Include="HeuristicLab.Clients.Common-3.3">
       <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Clients.Common-3.3.dll</HintPath>
@@ -59,22 +62,12 @@
       <Private>False</Private>
     </Reference>
-    <Reference Include="HeuristicLab.Core.Views-3.3">
-      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Core.Views-3.3.dll</HintPath>
-      <Private>False</Private>
-    </Reference>
     <Reference Include="HeuristicLab.Data-3.3">
       <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Data-3.3.dll</HintPath>
       <Private>False</Private>
     </Reference>
-    <Reference Include="HeuristicLab.MainForm-3.3">
-      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.MainForm-3.3.dll</HintPath>
+    <Reference Include="HeuristicLab.Optimization-3.3">
+      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Optimization-3.3.dll</HintPath>
       <Private>False</Private>
     </Reference>
-    <Reference Include="HeuristicLab.MainForm.WindowsForms-3.3">
-      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.MainForm.WindowsForms-3.3.dll</HintPath>
-      <Private>False</Private>
-    </Reference>
-    <Reference Include="HeuristicLab.Optimization-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL" />
-    <Reference Include="HeuristicLab.Optimizer-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL" />
     <Reference Include="HeuristicLab.Persistence-3.3">
       <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Persistence-3.3.dll</HintPath>
@@ -102,29 +95,4 @@
     <Compile Include="ClientInformation.cs" />
     <Compile Include="ClientInformationUtils.cs" />
-    <Compile Include="ClientViews\ClientInformationDialog.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Include="ClientViews\ClientInformationDialog.Designer.cs">
-      <DependentUpon>ClientInformationDialog.cs</DependentUpon>
-    </Compile>
-    <Compile Include="ClientViews\ClientRegistrationDialog.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Include="ClientViews\ClientRegistrationDialog.Designer.cs">
-      <DependentUpon>ClientRegistrationDialog.cs</DependentUpon>
-    </Compile>
-    <Compile Include="ClientViews\ClientView.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Include="ClientViews\ClientView.Designer.cs">
-      <DependentUpon>ClientView.cs</DependentUpon>
-    </Compile>
-    <Compile Include="ClientViews\AdminClientView.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Include="ClientViews\AdminClientView.Designer.cs">
-      <DependentUpon>AdminClientView.cs</DependentUpon>
-    </Compile>
-    <Compile Include="MenuItems\ClientInfoMenuItem.cs" />
     <Compile Include="Plugin.cs" />
     <Compile Include="Properties\AssemblyInfo.cs" />
@@ -144,34 +112,4 @@
     </Compile>
     <Compile Include="UserInformation.cs" />
-    <Compile Include="Views\LightweightUserGroupSelectionDialog.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Include="Views\LightweightUserGroupSelectionDialog.Designer.cs">
-      <DependentUpon>LightweightUserGroupSelectionDialog.cs</DependentUpon>
-    </Compile>
-    <Compile Include="Views\LightweightUserGroupSelectionView.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Include="Views\LightweightUserGroupSelectionView.Designer.cs">
-      <DependentUpon>LightweightUserGroupSelectionView.cs</DependentUpon>
-    </Compile>
-    <Compile Include="Views\LightweightUserView.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Include="Views\LightweightUserView.Designer.cs">
-      <DependentUpon>LightweightUserView.cs</DependentUpon>
-    </Compile>
-    <Compile Include="Views\RefreshableLightweightUserView.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Include="Views\RefreshableLightweightUserView.Designer.cs">
-      <DependentUpon>RefreshableLightweightUserView.cs</DependentUpon>
-    </Compile>
-    <Compile Include="Views\RefreshableView.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Include="Views\RefreshableView.Designer.cs">
-      <DependentUpon>RefreshableView.cs</DependentUpon>
-    </Compile>
   </ItemGroup>
   <ItemGroup>
Index: /branches/ClientUserManagement/HeuristicLab.Clients.Access/3.3/Plugin.cs.frame
===================================================================
--- /branches/ClientUserManagement/HeuristicLab.Clients.Access/3.3/Plugin.cs.frame	(revision 7554)
+++ /branches/ClientUserManagement/HeuristicLab.Clients.Access/3.3/Plugin.cs.frame	(revision 7555)
@@ -32,12 +32,8 @@
   [PluginDependency("HeuristicLab.Optimization", "3.3")]
   [PluginDependency("HeuristicLab.Collections", "3.3")]
-  [PluginDependency("HeuristicLab.Optimizer", "3.3")]
   [PluginDependency("HeuristicLab.Common", "3.3")]
   [PluginDependency("HeuristicLab.Common.Resources", "3.3")]
   [PluginDependency("HeuristicLab.Core", "3.3")]
-  [PluginDependency("HeuristicLab.Core.Views", "3.3")]
   [PluginDependency("HeuristicLab.Data", "3.3")]
-  [PluginDependency("HeuristicLab.MainForm", "3.3")]
-  [PluginDependency("HeuristicLab.MainForm.WindowsForms", "3.3")]  
   [PluginDependency("HeuristicLab.Persistence", "3.3")]
   public class HeuristicLabClientsAccessPlugin : PluginBase {
Index: /branches/ClientUserManagement/HeuristicLab.Services.Access.sln
===================================================================
--- /branches/ClientUserManagement/HeuristicLab.Services.Access.sln	(revision 7554)
+++ /branches/ClientUserManagement/HeuristicLab.Services.Access.sln	(revision 7555)
@@ -19,4 +19,6 @@
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Services.Access-3.3.Tests", "HeuristicLab.Services.Access-3.3.Tests\HeuristicLab.Services.Access-3.3.Tests.csproj", "{70C5A73A-148C-45A2-938F-F8F6DAA80A02}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Clients.Access.Views-3.3", "HeuristicLab.Clients.Access.Views\3.3\HeuristicLab.Clients.Access.Views-3.3.csproj", "{FE856595-64CD-46DA-9CD2-FFF3E6B0D4F2}"
 EndProject
 Global
@@ -83,4 +85,14 @@
 		{70C5A73A-148C-45A2-938F-F8F6DAA80A02}.Release|Mixed Platforms.Build.0 = Release|Any CPU
 		{70C5A73A-148C-45A2-938F-F8F6DAA80A02}.Release|x86.ActiveCfg = Release|Any CPU
+		{FE856595-64CD-46DA-9CD2-FFF3E6B0D4F2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{FE856595-64CD-46DA-9CD2-FFF3E6B0D4F2}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{FE856595-64CD-46DA-9CD2-FFF3E6B0D4F2}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+		{FE856595-64CD-46DA-9CD2-FFF3E6B0D4F2}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+		{FE856595-64CD-46DA-9CD2-FFF3E6B0D4F2}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{FE856595-64CD-46DA-9CD2-FFF3E6B0D4F2}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{FE856595-64CD-46DA-9CD2-FFF3E6B0D4F2}.Release|Any CPU.Build.0 = Release|Any CPU
+		{FE856595-64CD-46DA-9CD2-FFF3E6B0D4F2}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+		{FE856595-64CD-46DA-9CD2-FFF3E6B0D4F2}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+		{FE856595-64CD-46DA-9CD2-FFF3E6B0D4F2}.Release|x86.ActiveCfg = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
