Index: /branches/HeuristicLab.Hive.Azure/HeuristicLab.Clients.Hive.CloudManager/3.3/HeuristicLab.Clients.Hive.CloudManager-3.3.csproj
===================================================================
--- /branches/HeuristicLab.Hive.Azure/HeuristicLab.Clients.Hive.CloudManager/3.3/HeuristicLab.Clients.Hive.CloudManager-3.3.csproj	(revision 7402)
+++ /branches/HeuristicLab.Hive.Azure/HeuristicLab.Clients.Hive.CloudManager/3.3/HeuristicLab.Clients.Hive.CloudManager-3.3.csproj	(revision 7403)
@@ -100,4 +100,10 @@
       <DependentUpon>CloudResourcesView.cs</DependentUpon>
     </Compile>
+    <Compile Include="Views\DeploymentView.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="Views\DeploymentView.Designer.cs">
+      <DependentUpon>DeploymentView.cs</DependentUpon>
+    </Compile>
     <Compile Include="Views\HiveCloudManagerView.cs">
       <SubType>UserControl</SubType>
@@ -105,4 +111,10 @@
     <Compile Include="Views\HiveCloudManagerView.Designer.cs">
       <DependentUpon>HiveCloudManagerView.cs</DependentUpon>
+    </Compile>
+    <Compile Include="Views\HostedServiceView.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="Views\HostedServiceView.Designer.cs">
+      <DependentUpon>HostedServiceView.cs</DependentUpon>
     </Compile>
     <Compile Include="Views\SubscriptionView.cs">
@@ -185,6 +197,12 @@
       <DependentUpon>CloudResourcesView.cs</DependentUpon>
     </EmbeddedResource>
+    <EmbeddedResource Include="Views\DeploymentView.resx">
+      <DependentUpon>DeploymentView.cs</DependentUpon>
+    </EmbeddedResource>
     <EmbeddedResource Include="Views\HiveCloudManagerView.resx">
       <DependentUpon>HiveCloudManagerView.cs</DependentUpon>
+    </EmbeddedResource>
+    <EmbeddedResource Include="Views\HostedServiceView.resx">
+      <DependentUpon>HostedServiceView.cs</DependentUpon>
     </EmbeddedResource>
     <EmbeddedResource Include="Views\SubscriptionView.resx">
Index: /branches/HeuristicLab.Hive.Azure/HeuristicLab.Clients.Hive.CloudManager/3.3/Views/CloudResourcesView.Designer.cs
===================================================================
--- /branches/HeuristicLab.Hive.Azure/HeuristicLab.Clients.Hive.CloudManager/3.3/Views/CloudResourcesView.Designer.cs	(revision 7402)
+++ /branches/HeuristicLab.Hive.Azure/HeuristicLab.Clients.Hive.CloudManager/3.3/Views/CloudResourcesView.Designer.cs	(revision 7403)
@@ -23,9 +23,11 @@
       this.treeCloudResources = new System.Windows.Forms.TreeView();
       this.imageListCloudResources = new System.Windows.Forms.ImageList(this.components);
-      this.subscriptionView = new HeuristicLab.Clients.Hive.CloudManager.Views.SubscriptionView();
+      this.gbDetails = new System.Windows.Forms.GroupBox();
+      this.viewHost = new HeuristicLab.MainForm.WindowsForms.ViewHost();
       ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
       this.splitContainer1.Panel1.SuspendLayout();
       this.splitContainer1.Panel2.SuspendLayout();
       this.splitContainer1.SuspendLayout();
+      this.gbDetails.SuspendLayout();
       this.SuspendLayout();
       // 
@@ -47,5 +49,5 @@
       // splitContainer1.Panel2
       // 
-      this.splitContainer1.Panel2.Controls.Add(this.subscriptionView);
+      this.splitContainer1.Panel2.Controls.Add(this.gbDetails);
       this.splitContainer1.Size = new System.Drawing.Size(804, 497);
       this.splitContainer1.SplitterDistance = 275;
@@ -119,15 +121,32 @@
       this.imageListCloudResources.TransparentColor = System.Drawing.Color.Transparent;
       // 
-      // subscriptionView
+      // gbDetails
       // 
-      this.subscriptionView.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
+      this.gbDetails.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.subscriptionView.Caption = "SubscriptionView";
-      this.subscriptionView.Content = null;
-      this.subscriptionView.Location = new System.Drawing.Point(6, 34);
-      this.subscriptionView.Name = "subscriptionView";
-      this.subscriptionView.ReadOnly = false;
-      this.subscriptionView.Size = new System.Drawing.Size(516, 207);
-      this.subscriptionView.TabIndex = 0;
+      this.gbDetails.Controls.Add(this.viewHost);
+      this.gbDetails.Location = new System.Drawing.Point(4, 34);
+      this.gbDetails.Name = "gbDetails";
+      this.gbDetails.Size = new System.Drawing.Size(518, 460);
+      this.gbDetails.TabIndex = 1;
+      this.gbDetails.TabStop = false;
+      this.gbDetails.Text = "Details";
+      // 
+      // viewHost
+      // 
+      this.viewHost.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.viewHost.Caption = "View";
+      this.viewHost.Content = null;
+      this.viewHost.Enabled = false;
+      this.viewHost.Location = new System.Drawing.Point(6, 12);
+      this.viewHost.Name = "viewHost";
+      this.viewHost.ReadOnly = false;
+      this.viewHost.Size = new System.Drawing.Size(506, 442);
+      this.viewHost.TabIndex = 0;
+      this.viewHost.ViewsLabelVisible = true;
+      this.viewHost.ViewType = null;
       // 
       // CloudResourcesView
@@ -143,4 +162,5 @@
       ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
       this.splitContainer1.ResumeLayout(false);
+      this.gbDetails.ResumeLayout(false);
       this.ResumeLayout(false);
 
@@ -157,5 +177,6 @@
     private System.Windows.Forms.Label lblRefresh;
     private System.Windows.Forms.ImageList imageListCloudResources;
-    private SubscriptionView subscriptionView;
+    private System.Windows.Forms.GroupBox gbDetails;
+    private MainForm.WindowsForms.ViewHost viewHost;
   }
 }
Index: /branches/HeuristicLab.Hive.Azure/HeuristicLab.Clients.Hive.CloudManager/3.3/Views/CloudResourcesView.cs
===================================================================
--- /branches/HeuristicLab.Hive.Azure/HeuristicLab.Clients.Hive.CloudManager/3.3/Views/CloudResourcesView.cs	(revision 7402)
+++ /branches/HeuristicLab.Hive.Azure/HeuristicLab.Clients.Hive.CloudManager/3.3/Views/CloudResourcesView.cs	(revision 7403)
@@ -99,5 +99,5 @@
       SetEnabledStateOfControls();
       if (Content == null) {
-        subscriptionView.Content = null;
+        viewHost.Content = null;
         treeCloudResources.Nodes.Clear();
       } else {
@@ -112,5 +112,5 @@
 
           foreach (HostedService s in HostedServices) {
-            if (s.SubscriptionId == sub.SubscriptionID) {
+            if (s.Subscription.SubscriptionID == sub.SubscriptionID) {
               TreeNode nodeServ = new TreeNode();
               nodeServ.Tag = s;
@@ -207,11 +207,5 @@
 
     private void treeCloudResources_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e) {
-      if (e.Node.Tag is Subscription) {
-        subscriptionView.Visible = true;
-        subscriptionView.Content = (Subscription)e.Node.Tag;
-      } else {
-        subscriptionView.Visible = false;
-
-      }
+      viewHost.Content = (IContent)e.Node.Tag;
     }
   }
Index: /branches/HeuristicLab.Hive.Azure/HeuristicLab.Clients.Hive.CloudManager/3.3/Views/DeploymentView.Designer.cs
===================================================================
--- /branches/HeuristicLab.Hive.Azure/HeuristicLab.Clients.Hive.CloudManager/3.3/Views/DeploymentView.Designer.cs	(revision 7403)
+++ /branches/HeuristicLab.Hive.Azure/HeuristicLab.Clients.Hive.CloudManager/3.3/Views/DeploymentView.Designer.cs	(revision 7403)
@@ -0,0 +1,208 @@
+﻿namespace HeuristicLab.Clients.Hive.CloudManager.Views {
+  partial class DeploymentView {
+    /// <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.txtDeploymentName = new System.Windows.Forms.TextBox();
+      this.txtDeploymentSlot = new System.Windows.Forms.TextBox();
+      this.label2 = new System.Windows.Forms.Label();
+      this.label3 = new System.Windows.Forms.Label();
+      this.txtDeploymentStatus = new System.Windows.Forms.TextBox();
+      this.label4 = new System.Windows.Forms.Label();
+      this.txtCoresUsed = new System.Windows.Forms.TextBox();
+      this.tbChangeCores = new System.Windows.Forms.TrackBar();
+      this.label5 = new System.Windows.Forms.Label();
+      this.txtInstanceSize = new System.Windows.Forms.TextBox();
+      this.label6 = new System.Windows.Forms.Label();
+      this.txtInstanceCount = new System.Windows.Forms.TextBox();
+      ((System.ComponentModel.ISupportInitialize)(this.tbChangeCores)).BeginInit();
+      this.SuspendLayout();
+      // 
+      // label1
+      // 
+      this.label1.AutoSize = true;
+      this.label1.Location = new System.Drawing.Point(3, 7);
+      this.label1.Name = "label1";
+      this.label1.Size = new System.Drawing.Size(97, 13);
+      this.label1.TabIndex = 0;
+      this.label1.Text = "Deployment Name:";
+      // 
+      // txtDeploymentName
+      // 
+      this.txtDeploymentName.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
+      this.txtDeploymentName.Location = new System.Drawing.Point(127, 4);
+      this.txtDeploymentName.Name = "txtDeploymentName";
+      this.txtDeploymentName.ReadOnly = true;
+      this.txtDeploymentName.Size = new System.Drawing.Size(379, 20);
+      this.txtDeploymentName.TabIndex = 1;
+      // 
+      // txtDeploymentSlot
+      // 
+      this.txtDeploymentSlot.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
+      this.txtDeploymentSlot.Location = new System.Drawing.Point(127, 31);
+      this.txtDeploymentSlot.Name = "txtDeploymentSlot";
+      this.txtDeploymentSlot.ReadOnly = true;
+      this.txtDeploymentSlot.Size = new System.Drawing.Size(379, 20);
+      this.txtDeploymentSlot.TabIndex = 2;
+      // 
+      // label2
+      // 
+      this.label2.AutoSize = true;
+      this.label2.Location = new System.Drawing.Point(3, 34);
+      this.label2.Name = "label2";
+      this.label2.Size = new System.Drawing.Size(87, 13);
+      this.label2.TabIndex = 3;
+      this.label2.Text = "Deployment Slot:";
+      // 
+      // label3
+      // 
+      this.label3.AutoSize = true;
+      this.label3.Location = new System.Drawing.Point(3, 61);
+      this.label3.Name = "label3";
+      this.label3.Size = new System.Drawing.Size(99, 13);
+      this.label3.TabIndex = 4;
+      this.label3.Text = "Deployment Status:";
+      // 
+      // txtDeploymentStatus
+      // 
+      this.txtDeploymentStatus.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
+      this.txtDeploymentStatus.Location = new System.Drawing.Point(127, 58);
+      this.txtDeploymentStatus.Name = "txtDeploymentStatus";
+      this.txtDeploymentStatus.ReadOnly = true;
+      this.txtDeploymentStatus.Size = new System.Drawing.Size(379, 20);
+      this.txtDeploymentStatus.TabIndex = 5;
+      // 
+      // label4
+      // 
+      this.label4.AutoSize = true;
+      this.label4.Location = new System.Drawing.Point(3, 141);
+      this.label4.Name = "label4";
+      this.label4.Size = new System.Drawing.Size(63, 13);
+      this.label4.TabIndex = 6;
+      this.label4.Text = "Cores used:";
+      // 
+      // txtCoresUsed
+      // 
+      this.txtCoresUsed.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
+      this.txtCoresUsed.Location = new System.Drawing.Point(127, 138);
+      this.txtCoresUsed.Name = "txtCoresUsed";
+      this.txtCoresUsed.ReadOnly = true;
+      this.txtCoresUsed.Size = new System.Drawing.Size(379, 20);
+      this.txtCoresUsed.TabIndex = 7;
+      // 
+      // tbChangeCores
+      // 
+      this.tbChangeCores.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
+      this.tbChangeCores.BackColor = System.Drawing.SystemColors.Window;
+      this.tbChangeCores.Location = new System.Drawing.Point(127, 164);
+      this.tbChangeCores.Name = "tbChangeCores";
+      this.tbChangeCores.Size = new System.Drawing.Size(379, 45);
+      this.tbChangeCores.TabIndex = 8;
+      this.tbChangeCores.Scroll += new System.EventHandler(this.tbChangeCores_Scroll);
+      // 
+      // label5
+      // 
+      this.label5.AutoSize = true;
+      this.label5.Location = new System.Drawing.Point(3, 88);
+      this.label5.Name = "label5";
+      this.label5.Size = new System.Drawing.Size(74, 13);
+      this.label5.TabIndex = 9;
+      this.label5.Text = "Instance Size:";
+      // 
+      // txtInstanceSize
+      // 
+      this.txtInstanceSize.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
+      this.txtInstanceSize.Location = new System.Drawing.Point(127, 85);
+      this.txtInstanceSize.Name = "txtInstanceSize";
+      this.txtInstanceSize.ReadOnly = true;
+      this.txtInstanceSize.Size = new System.Drawing.Size(379, 20);
+      this.txtInstanceSize.TabIndex = 10;
+      // 
+      // label6
+      // 
+      this.label6.AutoSize = true;
+      this.label6.Location = new System.Drawing.Point(3, 115);
+      this.label6.Name = "label6";
+      this.label6.Size = new System.Drawing.Size(82, 13);
+      this.label6.TabIndex = 11;
+      this.label6.Text = "Instance Count:";
+      // 
+      // txtInstanceCount
+      // 
+      this.txtInstanceCount.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
+      this.txtInstanceCount.Location = new System.Drawing.Point(127, 112);
+      this.txtInstanceCount.Name = "txtInstanceCount";
+      this.txtInstanceCount.ReadOnly = true;
+      this.txtInstanceCount.Size = new System.Drawing.Size(379, 20);
+      this.txtInstanceCount.TabIndex = 12;
+      // 
+      // DeploymentView
+      // 
+      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.Controls.Add(this.txtInstanceCount);
+      this.Controls.Add(this.label6);
+      this.Controls.Add(this.txtInstanceSize);
+      this.Controls.Add(this.label5);
+      this.Controls.Add(this.tbChangeCores);
+      this.Controls.Add(this.txtCoresUsed);
+      this.Controls.Add(this.label4);
+      this.Controls.Add(this.txtDeploymentStatus);
+      this.Controls.Add(this.label3);
+      this.Controls.Add(this.label2);
+      this.Controls.Add(this.txtDeploymentSlot);
+      this.Controls.Add(this.txtDeploymentName);
+      this.Controls.Add(this.label1);
+      this.Name = "DeploymentView";
+      this.Size = new System.Drawing.Size(509, 242);
+      ((System.ComponentModel.ISupportInitialize)(this.tbChangeCores)).EndInit();
+      this.ResumeLayout(false);
+      this.PerformLayout();
+
+    }
+
+    #endregion
+
+    private System.Windows.Forms.Label label1;
+    private System.Windows.Forms.TextBox txtDeploymentName;
+    private System.Windows.Forms.TextBox txtDeploymentSlot;
+    private System.Windows.Forms.Label label2;
+    private System.Windows.Forms.Label label3;
+    private System.Windows.Forms.TextBox txtDeploymentStatus;
+    private System.Windows.Forms.Label label4;
+    private System.Windows.Forms.TextBox txtCoresUsed;
+    private System.Windows.Forms.TrackBar tbChangeCores;
+    private System.Windows.Forms.Label label5;
+    private System.Windows.Forms.TextBox txtInstanceSize;
+    private System.Windows.Forms.Label label6;
+    private System.Windows.Forms.TextBox txtInstanceCount;
+  }
+}
Index: /branches/HeuristicLab.Hive.Azure/HeuristicLab.Clients.Hive.CloudManager/3.3/Views/DeploymentView.cs
===================================================================
--- /branches/HeuristicLab.Hive.Azure/HeuristicLab.Clients.Hive.CloudManager/3.3/Views/DeploymentView.cs	(revision 7403)
+++ /branches/HeuristicLab.Hive.Azure/HeuristicLab.Clients.Hive.CloudManager/3.3/Views/DeploymentView.cs	(revision 7403)
@@ -0,0 +1,68 @@
+﻿using System;
+using System.Windows.Forms;
+using HeuristicLab.Clients.Hive.CloudManager.Model;
+using HeuristicLab.Core.Views;
+using HeuristicLab.MainForm;
+
+namespace HeuristicLab.Clients.Hive.CloudManager.Views {
+  [View("DeploymentView")]
+  [Content(typeof(Deployment), IsDefaultView = true)]
+  public partial class DeploymentView : ItemView {
+    public new Deployment Content {
+      get { return (Deployment)base.Content; }
+      set { base.Content = value; }
+    }
+
+    public DeploymentView() {
+      InitializeComponent();
+    }
+
+    protected override void DeregisterContentEvents() {
+      base.DeregisterContentEvents();
+    }
+    protected override void RegisterContentEvents() {
+      base.RegisterContentEvents();
+    }
+
+    protected override void OnContentChanged() {
+      if (Content == null) {
+        txtDeploymentName.Clear();
+        txtDeploymentSlot.Clear();
+        txtDeploymentStatus.Clear();
+        txtCoresUsed.Clear();
+      } else {
+        txtDeploymentName.Text = Content.Label;
+        txtDeploymentSlot.Text = Content.DeploymentSlot;
+        txtDeploymentStatus.Text = Content.Status;
+        txtInstanceCount.Text = Content.RoleInstanceList.Count.ToString();
+        if (Content.RoleInstanceList.Count > 0) {
+          txtInstanceSize.Text = Content.RoleInstanceList[0].InstanceSize;
+        }
+
+        tbChangeCores.Minimum = 1;
+        tbChangeCores.Maximum = Content.Subscription.MaxCoreCount;
+        tbChangeCores.Value = Content.RoleInstanceList.Count;
+
+        txtCoresUsed.Text = (tbChangeCores.Value * GetCoresFromInstanceSize(txtInstanceSize.Text)).ToString();
+
+      }
+    }
+
+    private void tbChangeCores_Scroll(object sender, System.EventArgs e) {
+      int tbValue = tbChangeCores.Value;
+      int size = GetCoresFromInstanceSize(txtInstanceSize.Text);
+      txtInstanceCount.Text = tbValue.ToString();
+      int cores = tbValue * (int)size;
+      txtCoresUsed.Text = cores.ToString();
+    }
+
+    private int GetCoresFromInstanceSize(string instanceSize) {
+      HeuristicLab.Clients.Hive.CloudManager.Azure.Constants.InstanceSize size =
+       (HeuristicLab.Clients.Hive.CloudManager.Azure.Constants.InstanceSize)Enum.Parse(
+         typeof(HeuristicLab.Clients.Hive.CloudManager.Azure.Constants.InstanceSize),
+         instanceSize,
+         true);
+      return (int)size;
+    }
+  }
+}
Index: /branches/HeuristicLab.Hive.Azure/HeuristicLab.Clients.Hive.CloudManager/3.3/Views/HostedServiceView.Designer.cs
===================================================================
--- /branches/HeuristicLab.Hive.Azure/HeuristicLab.Clients.Hive.CloudManager/3.3/Views/HostedServiceView.Designer.cs	(revision 7402)
+++ /branches/HeuristicLab.Hive.Azure/HeuristicLab.Clients.Hive.CloudManager/3.3/Views/HostedServiceView.Designer.cs	(revision 7403)
@@ -40,4 +40,5 @@
       this.txtServiceName.Location = new System.Drawing.Point(86, 3);
       this.txtServiceName.Name = "txtServiceName";
+      this.txtServiceName.ReadOnly = true;
       this.txtServiceName.Size = new System.Drawing.Size(348, 20);
       this.txtServiceName.TabIndex = 0;
@@ -76,4 +77,5 @@
       this.txtUrl.Location = new System.Drawing.Point(86, 30);
       this.txtUrl.Name = "txtUrl";
+      this.txtUrl.ReadOnly = true;
       this.txtUrl.Size = new System.Drawing.Size(348, 20);
       this.txtUrl.TabIndex = 4;
@@ -85,4 +87,5 @@
       this.txtLocation.Location = new System.Drawing.Point(86, 57);
       this.txtLocation.Name = "txtLocation";
+      this.txtLocation.ReadOnly = true;
       this.txtLocation.Size = new System.Drawing.Size(348, 20);
       this.txtLocation.TabIndex = 5;
@@ -103,4 +106,5 @@
       this.txtCoresUsed.Location = new System.Drawing.Point(86, 83);
       this.txtCoresUsed.Name = "txtCoresUsed";
+      this.txtCoresUsed.ReadOnly = true;
       this.txtCoresUsed.Size = new System.Drawing.Size(348, 20);
       this.txtCoresUsed.TabIndex = 7;
