Index: trunk/sources/HeuristicLab.Services.Deployment.DataAccess/3.3/CreateDeploymentServiceDatabase.sql
===================================================================
--- trunk/sources/HeuristicLab.Services.Deployment.DataAccess/3.3/CreateDeploymentServiceDatabase.sql	(revision 4256)
+++ 	(revision )
@@ -1,127 +1,0 @@
-USE [HeuristicLab.Deployment]
-GO
-/****** Object:  User [DeploymentService]    Script Date: 03/22/2010 15:57:21 ******/
-CREATE USER [DeploymentService] FOR LOGIN [SERVDEV\DeploymentService] WITH DEFAULT_SCHEMA=[dbo]
-GO
-/****** Object:  Table [dbo].[Plugin]    Script Date: 03/22/2010 15:57:25 ******/
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-CREATE TABLE [dbo].[Plugin](
-	[Id] [bigint] IDENTITY(1,1) NOT NULL,
-	[Name] [nvarchar](300) NOT NULL,
-	[Version] [nvarchar](50) NOT NULL,
-	[ContactName] [text] NULL,
-	[ContactEmail] [text] NULL,
-	[License] [text] NULL,
- CONSTRAINT [PK_Plugin] PRIMARY KEY CLUSTERED 
-(
-	[Id] ASC
-)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY],
- CONSTRAINT [IX_Plugin_NameVersion] UNIQUE NONCLUSTERED 
-(
-	[Name] ASC,
-	[Version] ASC
-)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
-) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
-GO
-/****** Object:  Table [dbo].[Product]    Script Date: 03/22/2010 15:57:25 ******/
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-CREATE TABLE [dbo].[Product](
-	[Id] [bigint] IDENTITY(1,1) NOT NULL,
-	[Name] [nvarchar](300) NOT NULL,
-	[Version] [nvarchar](50) NOT NULL,
- CONSTRAINT [PK_Product] PRIMARY KEY CLUSTERED 
-(
-	[Id] ASC
-)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY],
- CONSTRAINT [IX_Product_NameVersion] UNIQUE NONCLUSTERED 
-(
-	[Name] ASC,
-	[Version] ASC
-)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
-) ON [PRIMARY]
-GO
-/****** Object:  Table [dbo].[ProductPlugin]    Script Date: 03/22/2010 15:57:25 ******/
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-CREATE TABLE [dbo].[ProductPlugin](
-	[ProductId] [bigint] NOT NULL,
-	[PluginId] [bigint] NOT NULL,
- CONSTRAINT [PK_ProductPlugin] PRIMARY KEY CLUSTERED 
-(
-	[ProductId] ASC,
-	[PluginId] ASC
-)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
-) ON [PRIMARY]
-GO
-/****** Object:  Table [dbo].[PluginPackage]    Script Date: 03/22/2010 15:57:25 ******/
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-CREATE TABLE [dbo].[PluginPackage](
-	[PluginId] [bigint] NOT NULL,
-	[Data] [image] NOT NULL,
- CONSTRAINT [PK_PluginPackage] PRIMARY KEY CLUSTERED 
-(
-	[PluginId] ASC
-)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
-) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
-GO
-/****** Object:  Table [dbo].[Dependencies]    Script Date: 03/22/2010 15:57:25 ******/
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-CREATE TABLE [dbo].[Dependencies](
-	[PluginId] [bigint] NOT NULL,
-	[DependencyId] [bigint] NOT NULL,
- CONSTRAINT [PK_Dependencies] PRIMARY KEY CLUSTERED 
-(
-	[PluginId] ASC,
-	[DependencyId] ASC
-)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
-) ON [PRIMARY]
-GO
-/****** Object:  Check [CK_Dependencies]    Script Date: 03/22/2010 15:57:25 ******/
-ALTER TABLE [dbo].[Dependencies]  WITH CHECK ADD  CONSTRAINT [CK_Dependencies] CHECK  (([PluginId]<>[DependencyId]))
-GO
-ALTER TABLE [dbo].[Dependencies] CHECK CONSTRAINT [CK_Dependencies]
-GO
-/****** Object:  ForeignKey [FK_ProductPlugin_Plugin]    Script Date: 03/22/2010 15:57:25 ******/
-ALTER TABLE [dbo].[ProductPlugin]  WITH CHECK ADD  CONSTRAINT [FK_ProductPlugin_Plugin] FOREIGN KEY([PluginId])
-REFERENCES [dbo].[Plugin] ([Id])
-GO
-ALTER TABLE [dbo].[ProductPlugin] CHECK CONSTRAINT [FK_ProductPlugin_Plugin]
-GO
-/****** Object:  ForeignKey [FK_ProductPlugin_Product]    Script Date: 03/22/2010 15:57:25 ******/
-ALTER TABLE [dbo].[ProductPlugin]  WITH CHECK ADD  CONSTRAINT [FK_ProductPlugin_Product] FOREIGN KEY([ProductId])
-REFERENCES [dbo].[Product] ([Id])
-GO
-ALTER TABLE [dbo].[ProductPlugin] CHECK CONSTRAINT [FK_ProductPlugin_Product]
-GO
-/****** Object:  ForeignKey [FK_PluginPackage_Plugin]    Script Date: 03/22/2010 15:57:25 ******/
-ALTER TABLE [dbo].[PluginPackage]  WITH CHECK ADD  CONSTRAINT [FK_PluginPackage_Plugin] FOREIGN KEY([PluginId])
-REFERENCES [dbo].[Plugin] ([Id])
-GO
-ALTER TABLE [dbo].[PluginPackage] CHECK CONSTRAINT [FK_PluginPackage_Plugin]
-GO
-/****** Object:  ForeignKey [FK_Dependencies_Plugin]    Script Date: 03/22/2010 15:57:25 ******/
-ALTER TABLE [dbo].[Dependencies]  WITH CHECK ADD  CONSTRAINT [FK_Dependencies_Plugin] FOREIGN KEY([DependencyId])
-REFERENCES [dbo].[Plugin] ([Id])
-GO
-ALTER TABLE [dbo].[Dependencies] CHECK CONSTRAINT [FK_Dependencies_Plugin]
-GO
-/****** Object:  ForeignKey [FK_Dependencies_Plugin2]    Script Date: 03/22/2010 15:57:25 ******/
-ALTER TABLE [dbo].[Dependencies]  WITH CHECK ADD  CONSTRAINT [FK_Dependencies_Plugin2] FOREIGN KEY([PluginId])
-REFERENCES [dbo].[Plugin] ([Id])
-GO
-ALTER TABLE [dbo].[Dependencies] CHECK CONSTRAINT [FK_Dependencies_Plugin2]
-GO
Index: trunk/sources/HeuristicLab.Services.Deployment.DataAccess/3.3/Deployment.dbml
===================================================================
--- trunk/sources/HeuristicLab.Services.Deployment.DataAccess/3.3/Deployment.dbml	(revision 4494)
+++ trunk/sources/HeuristicLab.Services.Deployment.DataAccess/3.3/Deployment.dbml	(revision 4494)
@@ -0,0 +1,40 @@
+﻿<?xml version="1.0" encoding="utf-8"?><Database Name="HeuristicLab.PluginStore" Class="DeploymentDataContext" xmlns="http://schemas.microsoft.com/linqtosql/dbml/2007">
+  <Connection Mode="AppSettings" ConnectionString="Data Source=.\SQLEXPRESS;Initial Catalog=HeuristicLab.Deployment;Integrated Security=SSPI" SettingsObjectName="HeuristicLab.Services.Deployment.DataAccess.Properties.Settings" SettingsPropertyName="HeuristicLab_DeploymentConnectionString" Provider="System.Data.SqlClient" />
+  <Table Name="dbo.Dependencies" Member="Dependencies">
+    <Type Name="Dependency">
+      <Column Name="PluginId" Type="System.Int64" DbType="BigInt NOT NULL" IsPrimaryKey="true" CanBeNull="false" />
+      <Column Name="DependencyId" Type="System.Int64" DbType="BigInt NOT NULL" IsPrimaryKey="true" CanBeNull="false" />
+    </Type>
+  </Table>
+  <Table Name="dbo.ProductPlugin" Member="ProductPlugins">
+    <Type Name="ProductPlugin">
+      <Column Name="ProductId" Type="System.Int64" DbType="BigInt NOT NULL" IsPrimaryKey="true" CanBeNull="false" />
+      <Column Name="PluginId" Type="System.Int64" DbType="BigInt NOT NULL" IsPrimaryKey="true" CanBeNull="false" />
+    </Type>
+  </Table>
+  <Table Name="dbo.Plugin" Member="Plugins">
+    <Type Name="Plugin">
+      <Column Name="Id" Type="System.Int64" DbType="BigInt NOT NULL IDENTITY" IsPrimaryKey="true" IsDbGenerated="true" CanBeNull="false" />
+      <Column Name="Name" Type="System.String" DbType="NVarChar(300) NOT NULL" CanBeNull="false" />
+      <Column Name="Version" Type="System.String" DbType="NVarChar(50) NOT NULL" CanBeNull="false" />
+      <Column Name="ContactName" Type="System.String" DbType="Text" CanBeNull="true" UpdateCheck="Never" />
+      <Column Name="ContactEmail" Type="System.String" DbType="Text" CanBeNull="true" UpdateCheck="Never" />
+      <Column Name="License" Type="System.String" DbType="Text" CanBeNull="true" UpdateCheck="Never" />
+      <Association Name="Plugin_PluginPackage" Member="PluginPackage" ThisKey="Id" OtherKey="PluginId" Type="PluginPackage" Cardinality="One" />
+    </Type>
+  </Table>
+  <Table Name="dbo.PluginPackage" Member="PluginPackages">
+    <Type Name="PluginPackage">
+      <Column Name="PluginId" Type="System.Int64" DbType="BigInt NOT NULL" IsPrimaryKey="true" CanBeNull="false" />
+      <Column Name="Data" Type="System.Data.Linq.Binary" DbType="Image NOT NULL" CanBeNull="false" UpdateCheck="Never" />
+      <Association Name="Plugin_PluginPackage" Member="Plugin" ThisKey="PluginId" OtherKey="Id" Type="Plugin" IsForeignKey="true" />
+    </Type>
+  </Table>
+  <Table Name="dbo.Product" Member="Products">
+    <Type Name="Product">
+      <Column Name="Id" Type="System.Int64" DbType="BigInt NOT NULL IDENTITY" IsPrimaryKey="true" IsDbGenerated="true" CanBeNull="false" />
+      <Column Name="Name" Type="System.String" DbType="NVarChar(300) NOT NULL" CanBeNull="false" />
+      <Column Name="Version" Type="System.String" DbType="NVarChar(50) NOT NULL" CanBeNull="false" />
+    </Type>
+  </Table>
+</Database>
Index: trunk/sources/HeuristicLab.Services.Deployment.DataAccess/3.3/Deployment.dbml.layout
===================================================================
--- trunk/sources/HeuristicLab.Services.Deployment.DataAccess/3.3/Deployment.dbml.layout	(revision 4494)
+++ trunk/sources/HeuristicLab.Services.Deployment.DataAccess/3.3/Deployment.dbml.layout	(revision 4494)
@@ -0,0 +1,43 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<ordesignerObjectsDiagram dslVersion="1.0.0.0" absoluteBounds="0, 0, 11, 8.5" name="PluginStoreClasses">
+  <DataContextMoniker Name="/DeploymentDataContext" />
+  <nestedChildShapes>
+    <classShape Id="16e9d26d-f78e-4457-8cdb-0cee0835a0b6" absoluteBounds="3.5, 2, 2, 1.1939925130208335">
+      <DataClassMoniker Name="/DeploymentDataContext/Dependency" />
+      <nestedChildShapes>
+        <elementListCompartment Id="90573696-5cb0-44c5-a492-6e26800047b3" absoluteBounds="3.515, 2.46, 1.9700000000000002, 0.63399251302083326" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
+      </nestedChildShapes>
+    </classShape>
+    <classShape Id="86708203-9aa2-44f4-a85f-7fad2c542e23" absoluteBounds="3.5, 4, 2, 1.1939925130208344">
+      <DataClassMoniker Name="/DeploymentDataContext/ProductPlugin" />
+      <nestedChildShapes>
+        <elementListCompartment Id="da9607ee-b60e-44f0-8e80-704abd6dd898" absoluteBounds="3.515, 4.46, 1.9700000000000002, 0.63399251302083326" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
+      </nestedChildShapes>
+    </classShape>
+    <classShape Id="1e228e3e-9436-4cd0-b7f7-492427268001" absoluteBounds="0.75, 2.625, 2, 1.9631982421874996">
+      <DataClassMoniker Name="/DeploymentDataContext/Plugin" />
+      <nestedChildShapes>
+        <elementListCompartment Id="81f74f1f-d4d0-4dce-991e-fb10afa63eb5" absoluteBounds="0.765, 3.085, 1.9700000000000002, 1.4031982421875" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
+      </nestedChildShapes>
+    </classShape>
+    <classShape Id="d660db81-846c-4661-9a86-09567e927f9d" absoluteBounds="3.5, 6, 2, 1.1939925130208344">
+      <DataClassMoniker Name="/DeploymentDataContext/PluginPackage" />
+      <nestedChildShapes>
+        <elementListCompartment Id="31a89e0e-c915-41d6-926b-d8c0f029f27d" absoluteBounds="3.515, 6.46, 1.9700000000000002, 0.63399251302083326" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
+      </nestedChildShapes>
+    </classShape>
+    <classShape Id="55486421-017b-44b9-894d-6cc4501cda04" absoluteBounds="0.75, 5.875, 2, 1.3862939453125005">
+      <DataClassMoniker Name="/DeploymentDataContext/Product" />
+      <nestedChildShapes>
+        <elementListCompartment Id="5abad42a-034c-4331-916c-e757c0c6c777" absoluteBounds="0.765, 6.335, 1.9700000000000002, 0.8262939453125" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
+      </nestedChildShapes>
+    </classShape>
+    <associationConnector edgePoints="[(2.75 : 4.5881982421875); (3.125 : 4.9631982421875); (3.125 : 6.59699625651042); (3.5 : 6.59699625651042)]" fixedFrom="NotFixed" fixedTo="NotFixed">
+      <AssociationMoniker Name="/DeploymentDataContext/Plugin/Plugin_PluginPackage" />
+      <nodes>
+        <classShapeMoniker Id="1e228e3e-9436-4cd0-b7f7-492427268001" />
+        <classShapeMoniker Id="d660db81-846c-4661-9a86-09567e927f9d" />
+      </nodes>
+    </associationConnector>
+  </nestedChildShapes>
+</ordesignerObjectsDiagram>
Index: trunk/sources/HeuristicLab.Services.Deployment.DataAccess/3.3/Deployment.designer.cs
===================================================================
--- trunk/sources/HeuristicLab.Services.Deployment.DataAccess/3.3/Deployment.designer.cs	(revision 4494)
+++ trunk/sources/HeuristicLab.Services.Deployment.DataAccess/3.3/Deployment.designer.cs	(revision 4494)
@@ -0,0 +1,744 @@
+﻿#pragma warning disable 1591
+//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:4.0.30319.1
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace HeuristicLab.Services.Deployment.DataAccess
+{
+	using System.Data.Linq;
+	using System.Data.Linq.Mapping;
+	using System.Data;
+	using System.Collections.Generic;
+	using System.Reflection;
+	using System.Linq;
+	using System.Linq.Expressions;
+	using System.ComponentModel;
+	using System;
+	
+	
+	[global::System.Data.Linq.Mapping.DatabaseAttribute(Name="HeuristicLab.PluginStore")]
+	public partial class DeploymentDataContext : System.Data.Linq.DataContext
+	{
+		
+		private static System.Data.Linq.Mapping.MappingSource mappingSource = new AttributeMappingSource();
+		
+    #region Extensibility Method Definitions
+    partial void OnCreated();
+    partial void InsertDependency(Dependency instance);
+    partial void UpdateDependency(Dependency instance);
+    partial void DeleteDependency(Dependency instance);
+    partial void InsertProductPlugin(ProductPlugin instance);
+    partial void UpdateProductPlugin(ProductPlugin instance);
+    partial void DeleteProductPlugin(ProductPlugin instance);
+    partial void InsertPlugin(Plugin instance);
+    partial void UpdatePlugin(Plugin instance);
+    partial void DeletePlugin(Plugin instance);
+    partial void InsertPluginPackage(PluginPackage instance);
+    partial void UpdatePluginPackage(PluginPackage instance);
+    partial void DeletePluginPackage(PluginPackage instance);
+    partial void InsertProduct(Product instance);
+    partial void UpdateProduct(Product instance);
+    partial void DeleteProduct(Product instance);
+    #endregion
+		
+		public DeploymentDataContext() : 
+				base(global::HeuristicLab.Services.Deployment.DataAccess.Properties.Settings.Default.HeuristicLab_DeploymentConnectionString, mappingSource)
+		{
+			OnCreated();
+		}
+		
+		public DeploymentDataContext(string connection) : 
+				base(connection, mappingSource)
+		{
+			OnCreated();
+		}
+		
+		public DeploymentDataContext(System.Data.IDbConnection connection) : 
+				base(connection, mappingSource)
+		{
+			OnCreated();
+		}
+		
+		public DeploymentDataContext(string connection, System.Data.Linq.Mapping.MappingSource mappingSource) : 
+				base(connection, mappingSource)
+		{
+			OnCreated();
+		}
+		
+		public DeploymentDataContext(System.Data.IDbConnection connection, System.Data.Linq.Mapping.MappingSource mappingSource) : 
+				base(connection, mappingSource)
+		{
+			OnCreated();
+		}
+		
+		public System.Data.Linq.Table<Dependency> Dependencies
+		{
+			get
+			{
+				return this.GetTable<Dependency>();
+			}
+		}
+		
+		public System.Data.Linq.Table<ProductPlugin> ProductPlugins
+		{
+			get
+			{
+				return this.GetTable<ProductPlugin>();
+			}
+		}
+		
+		public System.Data.Linq.Table<Plugin> Plugins
+		{
+			get
+			{
+				return this.GetTable<Plugin>();
+			}
+		}
+		
+		public System.Data.Linq.Table<PluginPackage> PluginPackages
+		{
+			get
+			{
+				return this.GetTable<PluginPackage>();
+			}
+		}
+		
+		public System.Data.Linq.Table<Product> Products
+		{
+			get
+			{
+				return this.GetTable<Product>();
+			}
+		}
+	}
+	
+	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Dependencies")]
+	public partial class Dependency : INotifyPropertyChanging, INotifyPropertyChanged
+	{
+		
+		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
+		
+		private long _PluginId;
+		
+		private long _DependencyId;
+		
+    #region Extensibility Method Definitions
+    partial void OnLoaded();
+    partial void OnValidate(System.Data.Linq.ChangeAction action);
+    partial void OnCreated();
+    partial void OnPluginIdChanging(long value);
+    partial void OnPluginIdChanged();
+    partial void OnDependencyIdChanging(long value);
+    partial void OnDependencyIdChanged();
+    #endregion
+		
+		public Dependency()
+		{
+			OnCreated();
+		}
+		
+		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PluginId", DbType="BigInt NOT NULL", IsPrimaryKey=true)]
+		public long PluginId
+		{
+			get
+			{
+				return this._PluginId;
+			}
+			set
+			{
+				if ((this._PluginId != value))
+				{
+					this.OnPluginIdChanging(value);
+					this.SendPropertyChanging();
+					this._PluginId = value;
+					this.SendPropertyChanged("PluginId");
+					this.OnPluginIdChanged();
+				}
+			}
+		}
+		
+		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DependencyId", DbType="BigInt NOT NULL", IsPrimaryKey=true)]
+		public long DependencyId
+		{
+			get
+			{
+				return this._DependencyId;
+			}
+			set
+			{
+				if ((this._DependencyId != value))
+				{
+					this.OnDependencyIdChanging(value);
+					this.SendPropertyChanging();
+					this._DependencyId = value;
+					this.SendPropertyChanged("DependencyId");
+					this.OnDependencyIdChanged();
+				}
+			}
+		}
+		
+		public event PropertyChangingEventHandler PropertyChanging;
+		
+		public event PropertyChangedEventHandler PropertyChanged;
+		
+		protected virtual void SendPropertyChanging()
+		{
+			if ((this.PropertyChanging != null))
+			{
+				this.PropertyChanging(this, emptyChangingEventArgs);
+			}
+		}
+		
+		protected virtual void SendPropertyChanged(String propertyName)
+		{
+			if ((this.PropertyChanged != null))
+			{
+				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
+			}
+		}
+	}
+	
+	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.ProductPlugin")]
+	public partial class ProductPlugin : INotifyPropertyChanging, INotifyPropertyChanged
+	{
+		
+		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
+		
+		private long _ProductId;
+		
+		private long _PluginId;
+		
+    #region Extensibility Method Definitions
+    partial void OnLoaded();
+    partial void OnValidate(System.Data.Linq.ChangeAction action);
+    partial void OnCreated();
+    partial void OnProductIdChanging(long value);
+    partial void OnProductIdChanged();
+    partial void OnPluginIdChanging(long value);
+    partial void OnPluginIdChanged();
+    #endregion
+		
+		public ProductPlugin()
+		{
+			OnCreated();
+		}
+		
+		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProductId", DbType="BigInt NOT NULL", IsPrimaryKey=true)]
+		public long ProductId
+		{
+			get
+			{
+				return this._ProductId;
+			}
+			set
+			{
+				if ((this._ProductId != value))
+				{
+					this.OnProductIdChanging(value);
+					this.SendPropertyChanging();
+					this._ProductId = value;
+					this.SendPropertyChanged("ProductId");
+					this.OnProductIdChanged();
+				}
+			}
+		}
+		
+		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PluginId", DbType="BigInt NOT NULL", IsPrimaryKey=true)]
+		public long PluginId
+		{
+			get
+			{
+				return this._PluginId;
+			}
+			set
+			{
+				if ((this._PluginId != value))
+				{
+					this.OnPluginIdChanging(value);
+					this.SendPropertyChanging();
+					this._PluginId = value;
+					this.SendPropertyChanged("PluginId");
+					this.OnPluginIdChanged();
+				}
+			}
+		}
+		
+		public event PropertyChangingEventHandler PropertyChanging;
+		
+		public event PropertyChangedEventHandler PropertyChanged;
+		
+		protected virtual void SendPropertyChanging()
+		{
+			if ((this.PropertyChanging != null))
+			{
+				this.PropertyChanging(this, emptyChangingEventArgs);
+			}
+		}
+		
+		protected virtual void SendPropertyChanged(String propertyName)
+		{
+			if ((this.PropertyChanged != null))
+			{
+				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
+			}
+		}
+	}
+	
+	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Plugin")]
+	public partial class Plugin : INotifyPropertyChanging, INotifyPropertyChanged
+	{
+		
+		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
+		
+		private long _Id;
+		
+		private string _Name;
+		
+		private string _Version;
+		
+		private string _ContactName;
+		
+		private string _ContactEmail;
+		
+		private string _License;
+		
+		private EntityRef<PluginPackage> _PluginPackage;
+		
+    #region Extensibility Method Definitions
+    partial void OnLoaded();
+    partial void OnValidate(System.Data.Linq.ChangeAction action);
+    partial void OnCreated();
+    partial void OnIdChanging(long value);
+    partial void OnIdChanged();
+    partial void OnNameChanging(string value);
+    partial void OnNameChanged();
+    partial void OnVersionChanging(string value);
+    partial void OnVersionChanged();
+    partial void OnContactNameChanging(string value);
+    partial void OnContactNameChanged();
+    partial void OnContactEmailChanging(string value);
+    partial void OnContactEmailChanged();
+    partial void OnLicenseChanging(string value);
+    partial void OnLicenseChanged();
+    #endregion
+		
+		public Plugin()
+		{
+			this._PluginPackage = default(EntityRef<PluginPackage>);
+			OnCreated();
+		}
+		
+		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Id", AutoSync=AutoSync.OnInsert, DbType="BigInt NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
+		public long Id
+		{
+			get
+			{
+				return this._Id;
+			}
+			set
+			{
+				if ((this._Id != value))
+				{
+					this.OnIdChanging(value);
+					this.SendPropertyChanging();
+					this._Id = value;
+					this.SendPropertyChanged("Id");
+					this.OnIdChanged();
+				}
+			}
+		}
+		
+		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Name", DbType="NVarChar(300) NOT NULL", CanBeNull=false)]
+		public string Name
+		{
+			get
+			{
+				return this._Name;
+			}
+			set
+			{
+				if ((this._Name != value))
+				{
+					this.OnNameChanging(value);
+					this.SendPropertyChanging();
+					this._Name = value;
+					this.SendPropertyChanged("Name");
+					this.OnNameChanged();
+				}
+			}
+		}
+		
+		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Version", DbType="NVarChar(50) NOT NULL", CanBeNull=false)]
+		public string Version
+		{
+			get
+			{
+				return this._Version;
+			}
+			set
+			{
+				if ((this._Version != value))
+				{
+					this.OnVersionChanging(value);
+					this.SendPropertyChanging();
+					this._Version = value;
+					this.SendPropertyChanged("Version");
+					this.OnVersionChanged();
+				}
+			}
+		}
+		
+		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ContactName", DbType="Text", UpdateCheck=UpdateCheck.Never)]
+		public string ContactName
+		{
+			get
+			{
+				return this._ContactName;
+			}
+			set
+			{
+				if ((this._ContactName != value))
+				{
+					this.OnContactNameChanging(value);
+					this.SendPropertyChanging();
+					this._ContactName = value;
+					this.SendPropertyChanged("ContactName");
+					this.OnContactNameChanged();
+				}
+			}
+		}
+		
+		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ContactEmail", DbType="Text", UpdateCheck=UpdateCheck.Never)]
+		public string ContactEmail
+		{
+			get
+			{
+				return this._ContactEmail;
+			}
+			set
+			{
+				if ((this._ContactEmail != value))
+				{
+					this.OnContactEmailChanging(value);
+					this.SendPropertyChanging();
+					this._ContactEmail = value;
+					this.SendPropertyChanged("ContactEmail");
+					this.OnContactEmailChanged();
+				}
+			}
+		}
+		
+		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_License", DbType="Text", UpdateCheck=UpdateCheck.Never)]
+		public string License
+		{
+			get
+			{
+				return this._License;
+			}
+			set
+			{
+				if ((this._License != value))
+				{
+					this.OnLicenseChanging(value);
+					this.SendPropertyChanging();
+					this._License = value;
+					this.SendPropertyChanged("License");
+					this.OnLicenseChanged();
+				}
+			}
+		}
+		
+		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Plugin_PluginPackage", Storage="_PluginPackage", ThisKey="Id", OtherKey="PluginId", IsUnique=true, IsForeignKey=false)]
+		public PluginPackage PluginPackage
+		{
+			get
+			{
+				return this._PluginPackage.Entity;
+			}
+			set
+			{
+				PluginPackage previousValue = this._PluginPackage.Entity;
+				if (((previousValue != value) 
+							|| (this._PluginPackage.HasLoadedOrAssignedValue == false)))
+				{
+					this.SendPropertyChanging();
+					if ((previousValue != null))
+					{
+						this._PluginPackage.Entity = null;
+						previousValue.Plugin = null;
+					}
+					this._PluginPackage.Entity = value;
+					if ((value != null))
+					{
+						value.Plugin = this;
+					}
+					this.SendPropertyChanged("PluginPackage");
+				}
+			}
+		}
+		
+		public event PropertyChangingEventHandler PropertyChanging;
+		
+		public event PropertyChangedEventHandler PropertyChanged;
+		
+		protected virtual void SendPropertyChanging()
+		{
+			if ((this.PropertyChanging != null))
+			{
+				this.PropertyChanging(this, emptyChangingEventArgs);
+			}
+		}
+		
+		protected virtual void SendPropertyChanged(String propertyName)
+		{
+			if ((this.PropertyChanged != null))
+			{
+				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
+			}
+		}
+	}
+	
+	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.PluginPackage")]
+	public partial class PluginPackage : INotifyPropertyChanging, INotifyPropertyChanged
+	{
+		
+		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
+		
+		private long _PluginId;
+		
+		private System.Data.Linq.Binary _Data;
+		
+		private EntityRef<Plugin> _Plugin;
+		
+    #region Extensibility Method Definitions
+    partial void OnLoaded();
+    partial void OnValidate(System.Data.Linq.ChangeAction action);
+    partial void OnCreated();
+    partial void OnPluginIdChanging(long value);
+    partial void OnPluginIdChanged();
+    partial void OnDataChanging(System.Data.Linq.Binary value);
+    partial void OnDataChanged();
+    #endregion
+		
+		public PluginPackage()
+		{
+			this._Plugin = default(EntityRef<Plugin>);
+			OnCreated();
+		}
+		
+		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PluginId", DbType="BigInt NOT NULL", IsPrimaryKey=true)]
+		public long PluginId
+		{
+			get
+			{
+				return this._PluginId;
+			}
+			set
+			{
+				if ((this._PluginId != value))
+				{
+					if (this._Plugin.HasLoadedOrAssignedValue)
+					{
+						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
+					}
+					this.OnPluginIdChanging(value);
+					this.SendPropertyChanging();
+					this._PluginId = value;
+					this.SendPropertyChanged("PluginId");
+					this.OnPluginIdChanged();
+				}
+			}
+		}
+		
+		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Data", DbType="Image NOT NULL", CanBeNull=false, UpdateCheck=UpdateCheck.Never)]
+		public System.Data.Linq.Binary Data
+		{
+			get
+			{
+				return this._Data;
+			}
+			set
+			{
+				if ((this._Data != value))
+				{
+					this.OnDataChanging(value);
+					this.SendPropertyChanging();
+					this._Data = value;
+					this.SendPropertyChanged("Data");
+					this.OnDataChanged();
+				}
+			}
+		}
+		
+		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Plugin_PluginPackage", Storage="_Plugin", ThisKey="PluginId", OtherKey="Id", IsForeignKey=true)]
+		public Plugin Plugin
+		{
+			get
+			{
+				return this._Plugin.Entity;
+			}
+			set
+			{
+				Plugin previousValue = this._Plugin.Entity;
+				if (((previousValue != value) 
+							|| (this._Plugin.HasLoadedOrAssignedValue == false)))
+				{
+					this.SendPropertyChanging();
+					if ((previousValue != null))
+					{
+						this._Plugin.Entity = null;
+						previousValue.PluginPackage = null;
+					}
+					this._Plugin.Entity = value;
+					if ((value != null))
+					{
+						value.PluginPackage = this;
+						this._PluginId = value.Id;
+					}
+					else
+					{
+						this._PluginId = default(long);
+					}
+					this.SendPropertyChanged("Plugin");
+				}
+			}
+		}
+		
+		public event PropertyChangingEventHandler PropertyChanging;
+		
+		public event PropertyChangedEventHandler PropertyChanged;
+		
+		protected virtual void SendPropertyChanging()
+		{
+			if ((this.PropertyChanging != null))
+			{
+				this.PropertyChanging(this, emptyChangingEventArgs);
+			}
+		}
+		
+		protected virtual void SendPropertyChanged(String propertyName)
+		{
+			if ((this.PropertyChanged != null))
+			{
+				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
+			}
+		}
+	}
+	
+	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Product")]
+	public partial class Product : INotifyPropertyChanging, INotifyPropertyChanged
+	{
+		
+		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
+		
+		private long _Id;
+		
+		private string _Name;
+		
+		private string _Version;
+		
+    #region Extensibility Method Definitions
+    partial void OnLoaded();
+    partial void OnValidate(System.Data.Linq.ChangeAction action);
+    partial void OnCreated();
+    partial void OnIdChanging(long value);
+    partial void OnIdChanged();
+    partial void OnNameChanging(string value);
+    partial void OnNameChanged();
+    partial void OnVersionChanging(string value);
+    partial void OnVersionChanged();
+    #endregion
+		
+		public Product()
+		{
+			OnCreated();
+		}
+		
+		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Id", AutoSync=AutoSync.OnInsert, DbType="BigInt NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
+		public long Id
+		{
+			get
+			{
+				return this._Id;
+			}
+			set
+			{
+				if ((this._Id != value))
+				{
+					this.OnIdChanging(value);
+					this.SendPropertyChanging();
+					this._Id = value;
+					this.SendPropertyChanged("Id");
+					this.OnIdChanged();
+				}
+			}
+		}
+		
+		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Name", DbType="NVarChar(300) NOT NULL", CanBeNull=false)]
+		public string Name
+		{
+			get
+			{
+				return this._Name;
+			}
+			set
+			{
+				if ((this._Name != value))
+				{
+					this.OnNameChanging(value);
+					this.SendPropertyChanging();
+					this._Name = value;
+					this.SendPropertyChanged("Name");
+					this.OnNameChanged();
+				}
+			}
+		}
+		
+		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Version", DbType="NVarChar(50) NOT NULL", CanBeNull=false)]
+		public string Version
+		{
+			get
+			{
+				return this._Version;
+			}
+			set
+			{
+				if ((this._Version != value))
+				{
+					this.OnVersionChanging(value);
+					this.SendPropertyChanging();
+					this._Version = value;
+					this.SendPropertyChanged("Version");
+					this.OnVersionChanged();
+				}
+			}
+		}
+		
+		public event PropertyChangingEventHandler PropertyChanging;
+		
+		public event PropertyChangedEventHandler PropertyChanged;
+		
+		protected virtual void SendPropertyChanging()
+		{
+			if ((this.PropertyChanging != null))
+			{
+				this.PropertyChanging(this, emptyChangingEventArgs);
+			}
+		}
+		
+		protected virtual void SendPropertyChanged(String propertyName)
+		{
+			if ((this.PropertyChanged != null))
+			{
+				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
+			}
+		}
+	}
+}
+#pragma warning restore 1591
Index: trunk/sources/HeuristicLab.Services.Deployment.DataAccess/3.3/HeuristicLab.Services.Deployment.DataAccess-3.3.csproj
===================================================================
--- trunk/sources/HeuristicLab.Services.Deployment.DataAccess/3.3/HeuristicLab.Services.Deployment.DataAccess-3.3.csproj	(revision 4256)
+++ trunk/sources/HeuristicLab.Services.Deployment.DataAccess/3.3/HeuristicLab.Services.Deployment.DataAccess-3.3.csproj	(revision 4494)
@@ -112,11 +112,8 @@
   </ItemGroup>
   <ItemGroup>
-    <Compile Include="PluginStoreClasses.cs">
-      <DependentUpon>PluginStoreClasses.dbml</DependentUpon>
-    </Compile>
-    <Compile Include="PluginStoreClasses.designer.cs">
+    <Compile Include="Deployment.designer.cs">
       <AutoGen>True</AutoGen>
       <DesignTime>True</DesignTime>
-      <DependentUpon>PluginStoreClasses.dbml</DependentUpon>
+      <DependentUpon>Deployment.dbml</DependentUpon>
     </Compile>
     <Compile Include="Properties\AssemblyInfo.cs" />
@@ -128,19 +125,14 @@
   </ItemGroup>
   <ItemGroup>
-    <None Include="PluginStoreClasses.dbml">
-      <Generator>MSLinqToSQLGenerator</Generator>
-      <LastGenOutput>PluginStoreClasses.designer.cs</LastGenOutput>
-      <SubType>Designer</SubType>
-    </None>
-  </ItemGroup>
-  <ItemGroup>
     <Service Include="{3259AA49-8AA1-44D3-9025-A0B520596A8C}" />
   </ItemGroup>
   <ItemGroup>
     <None Include="app.config" />
+    <None Include="Deployment.dbml">
+      <Generator>MSLinqToSQLGenerator</Generator>
+      <LastGenOutput>Deployment.designer.cs</LastGenOutput>
+      <SubType>Designer</SubType>
+    </None>
     <None Include="HeuristicLab.snk" />
-    <None Include="PluginStoreClasses.dbml.layout">
-      <DependentUpon>PluginStoreClasses.dbml</DependentUpon>
-    </None>
     <None Include="Properties\AssemblyInfo.frame" />
     <None Include="Properties\Settings.settings">
@@ -166,4 +158,12 @@
     </BootstrapperPackage>
   </ItemGroup>
+  <ItemGroup>
+    <None Include="SQL Scripts\Initialize Deployment Database.sql" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="Deployment.dbml.layout">
+      <DependentUpon>Deployment.dbml</DependentUpon>
+    </None>
+  </ItemGroup>
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
   <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
Index: trunk/sources/HeuristicLab.Services.Deployment.DataAccess/3.3/PluginStoreClasses.cs
===================================================================
--- trunk/sources/HeuristicLab.Services.Deployment.DataAccess/3.3/PluginStoreClasses.cs	(revision 4256)
+++ 	(revision )
@@ -1,24 +1,0 @@
-#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
- *
- * This file is part of HeuristicLab.
- *
- * HeuristicLab is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * HeuristicLab is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
- */
-#endregion
-namespace HeuristicLab.Services.Deployment.DataAccess {
-  partial class PluginStoreClassesDataContext {
-  }
-}
Index: trunk/sources/HeuristicLab.Services.Deployment.DataAccess/3.3/PluginStoreClasses.dbml
===================================================================
--- trunk/sources/HeuristicLab.Services.Deployment.DataAccess/3.3/PluginStoreClasses.dbml	(revision 4256)
+++ 	(revision )
@@ -1,41 +1,0 @@
-﻿<?xml version="1.0" encoding="utf-8"?>
-<Database Name="HeuristicLab.PluginStore" Class="PluginStoreClassesDataContext" xmlns="http://schemas.microsoft.com/linqtosql/dbml/2007">
-  <Connection Mode="AppSettings" ConnectionString="Data Source=HEUREKA01\SQLEXPRESS;Initial Catalog=HeuristicLab.PluginStore;Integrated Security=True" SettingsObjectName="HeuristicLab.Services.Deployment.DataAccess.Properties.Settings" SettingsPropertyName="HeuristicLab_PluginStoreConnectionString" Provider="System.Data.SqlClient" />
-  <Table Name="dbo.Dependencies" Member="Dependencies">
-    <Type Name="Dependency">
-      <Column Name="PluginId" Type="System.Int64" DbType="BigInt NOT NULL" IsPrimaryKey="true" CanBeNull="false" />
-      <Column Name="DependencyId" Type="System.Int64" DbType="BigInt NOT NULL" IsPrimaryKey="true" CanBeNull="false" />
-    </Type>
-  </Table>
-  <Table Name="dbo.ProductPlugin" Member="ProductPlugins">
-    <Type Name="ProductPlugin">
-      <Column Name="ProductId" Type="System.Int64" DbType="BigInt NOT NULL" IsPrimaryKey="true" CanBeNull="false" />
-      <Column Name="PluginId" Type="System.Int64" DbType="BigInt NOT NULL" IsPrimaryKey="true" CanBeNull="false" />
-    </Type>
-  </Table>
-  <Table Name="dbo.Plugin" Member="Plugins">
-    <Type Name="Plugin">
-      <Column Name="Id" Type="System.Int64" DbType="BigInt NOT NULL IDENTITY" IsPrimaryKey="true" IsDbGenerated="true" CanBeNull="false" />
-      <Column Name="Name" Type="System.String" DbType="NVarChar(300) NOT NULL" CanBeNull="false" />
-      <Column Name="Version" Type="System.String" DbType="NVarChar(50) NOT NULL" CanBeNull="false" />
-      <Column Name="ContactName" Type="System.String" DbType="Text" CanBeNull="true" UpdateCheck="Never" />
-      <Column Name="ContactEmail" Type="System.String" DbType="Text" CanBeNull="true" UpdateCheck="Never" />
-      <Column Name="License" Type="System.String" DbType="Text" CanBeNull="true" UpdateCheck="Never" />
-      <Association Name="Plugin_PluginPackage" Member="PluginPackage" ThisKey="Id" OtherKey="PluginId" Type="PluginPackage" Cardinality="One" />
-    </Type>
-  </Table>
-  <Table Name="dbo.PluginPackage" Member="PluginPackages">
-    <Type Name="PluginPackage">
-      <Column Name="PluginId" Type="System.Int64" DbType="BigInt NOT NULL" IsPrimaryKey="true" CanBeNull="false" />
-      <Column Name="Data" Type="System.Data.Linq.Binary" DbType="Image NOT NULL" CanBeNull="false" UpdateCheck="Never" />
-      <Association Name="Plugin_PluginPackage" Member="Plugin" ThisKey="PluginId" OtherKey="Id" Type="Plugin" IsForeignKey="true" />
-    </Type>
-  </Table>
-  <Table Name="dbo.Product" Member="Products">
-    <Type Name="Product">
-      <Column Name="Id" Type="System.Int64" DbType="BigInt NOT NULL IDENTITY" IsPrimaryKey="true" IsDbGenerated="true" CanBeNull="false" />
-      <Column Name="Name" Type="System.String" DbType="NVarChar(300) NOT NULL" CanBeNull="false" />
-      <Column Name="Version" Type="System.String" DbType="NVarChar(50) NOT NULL" CanBeNull="false" />
-    </Type>
-  </Table>
-</Database>
Index: trunk/sources/HeuristicLab.Services.Deployment.DataAccess/3.3/PluginStoreClasses.dbml.layout
===================================================================
--- trunk/sources/HeuristicLab.Services.Deployment.DataAccess/3.3/PluginStoreClasses.dbml.layout	(revision 4256)
+++ 	(revision )
@@ -1,43 +1,0 @@
-﻿<?xml version="1.0" encoding="utf-8"?>
-<ordesignerObjectsDiagram dslVersion="1.0.0.0" absoluteBounds="0, 0, 11, 8.5" name="PluginStoreClasses">
-  <DataContextMoniker Name="/PluginStoreClassesDataContext" />
-  <nestedChildShapes>
-    <classShape Id="16e9d26d-f78e-4457-8cdb-0cee0835a0b6" absoluteBounds="3.5, 2, 2, 1.1939925130208335">
-      <DataClassMoniker Name="/PluginStoreClassesDataContext/Dependency" />
-      <nestedChildShapes>
-        <elementListCompartment Id="90573696-5cb0-44c5-a492-6e26800047b3" absoluteBounds="3.515, 2.46, 1.9700000000000002, 0.63399251302083326" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
-      </nestedChildShapes>
-    </classShape>
-    <classShape Id="86708203-9aa2-44f4-a85f-7fad2c542e23" absoluteBounds="3.5, 4, 2, 1.1939925130208344">
-      <DataClassMoniker Name="/PluginStoreClassesDataContext/ProductPlugin" />
-      <nestedChildShapes>
-        <elementListCompartment Id="da9607ee-b60e-44f0-8e80-704abd6dd898" absoluteBounds="3.515, 4.46, 1.9700000000000002, 0.63399251302083326" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
-      </nestedChildShapes>
-    </classShape>
-    <classShape Id="1e228e3e-9436-4cd0-b7f7-492427268001" absoluteBounds="0.75, 2.625, 2, 1.9631982421874996">
-      <DataClassMoniker Name="/PluginStoreClassesDataContext/Plugin" />
-      <nestedChildShapes>
-        <elementListCompartment Id="81f74f1f-d4d0-4dce-991e-fb10afa63eb5" absoluteBounds="0.765, 3.085, 1.9700000000000002, 1.4031982421875" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
-      </nestedChildShapes>
-    </classShape>
-    <classShape Id="d660db81-846c-4661-9a86-09567e927f9d" absoluteBounds="3.5, 6, 2, 1.1939925130208344">
-      <DataClassMoniker Name="/PluginStoreClassesDataContext/PluginPackage" />
-      <nestedChildShapes>
-        <elementListCompartment Id="31a89e0e-c915-41d6-926b-d8c0f029f27d" absoluteBounds="3.515, 6.46, 1.9700000000000002, 0.63399251302083326" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
-      </nestedChildShapes>
-    </classShape>
-    <classShape Id="55486421-017b-44b9-894d-6cc4501cda04" absoluteBounds="0.75, 5.875, 2, 1.3862939453125005">
-      <DataClassMoniker Name="/PluginStoreClassesDataContext/Product" />
-      <nestedChildShapes>
-        <elementListCompartment Id="5abad42a-034c-4331-916c-e757c0c6c777" absoluteBounds="0.765, 6.335, 1.9700000000000002, 0.8262939453125" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
-      </nestedChildShapes>
-    </classShape>
-    <associationConnector edgePoints="[(2.75 : 4.5881982421875); (3.125 : 4.9631982421875); (3.125 : 6.59699625651042); (3.5 : 6.59699625651042)]" fixedFrom="NotFixed" fixedTo="Algorithm">
-      <AssociationMoniker Name="/PluginStoreClassesDataContext/Plugin/Plugin_PluginPackage" />
-      <nodes>
-        <classShapeMoniker Id="1e228e3e-9436-4cd0-b7f7-492427268001" />
-        <classShapeMoniker Id="d660db81-846c-4661-9a86-09567e927f9d" />
-      </nodes>
-    </associationConnector>
-  </nestedChildShapes>
-</ordesignerObjectsDiagram>
Index: trunk/sources/HeuristicLab.Services.Deployment.DataAccess/3.3/PluginStoreClasses.designer.cs
===================================================================
--- trunk/sources/HeuristicLab.Services.Deployment.DataAccess/3.3/PluginStoreClasses.designer.cs	(revision 4256)
+++ 	(revision )
@@ -1,617 +1,0 @@
-﻿#pragma warning disable 1591
-//------------------------------------------------------------------------------
-// <auto-generated>
-//     This code was generated by a tool.
-//     Runtime Version:4.0.30319.1
-//
-//     Changes to this file may cause incorrect behavior and will be lost if
-//     the code is regenerated.
-// </auto-generated>
-//------------------------------------------------------------------------------
-
-namespace HeuristicLab.Services.Deployment.DataAccess {
-  using System;
-  using System.ComponentModel;
-  using System.Data.Linq;
-  using System.Data.Linq.Mapping;
-
-
-  [global::System.Data.Linq.Mapping.DatabaseAttribute(Name = "HeuristicLab.PluginStore")]
-  public partial class PluginStoreClassesDataContext : System.Data.Linq.DataContext {
-
-    private static System.Data.Linq.Mapping.MappingSource mappingSource = new AttributeMappingSource();
-
-    #region Extensibility Method Definitions
-    partial void OnCreated();
-    partial void InsertDependency(Dependency instance);
-    partial void UpdateDependency(Dependency instance);
-    partial void DeleteDependency(Dependency instance);
-    partial void InsertProductPlugin(ProductPlugin instance);
-    partial void UpdateProductPlugin(ProductPlugin instance);
-    partial void DeleteProductPlugin(ProductPlugin instance);
-    partial void InsertPlugin(Plugin instance);
-    partial void UpdatePlugin(Plugin instance);
-    partial void DeletePlugin(Plugin instance);
-    partial void InsertPluginPackage(PluginPackage instance);
-    partial void UpdatePluginPackage(PluginPackage instance);
-    partial void DeletePluginPackage(PluginPackage instance);
-    partial void InsertProduct(Product instance);
-    partial void UpdateProduct(Product instance);
-    partial void DeleteProduct(Product instance);
-    #endregion
-
-    public PluginStoreClassesDataContext() :
-      base(global::HeuristicLab.Services.Deployment.DataAccess.Properties.Settings.Default.HeuristicLab_PluginStoreConnectionString, mappingSource) {
-      OnCreated();
-    }
-
-    public PluginStoreClassesDataContext(string connection) :
-      base(connection, mappingSource) {
-      OnCreated();
-    }
-
-    public PluginStoreClassesDataContext(System.Data.IDbConnection connection) :
-      base(connection, mappingSource) {
-      OnCreated();
-    }
-
-    public PluginStoreClassesDataContext(string connection, System.Data.Linq.Mapping.MappingSource mappingSource) :
-      base(connection, mappingSource) {
-      OnCreated();
-    }
-
-    public PluginStoreClassesDataContext(System.Data.IDbConnection connection, System.Data.Linq.Mapping.MappingSource mappingSource) :
-      base(connection, mappingSource) {
-      OnCreated();
-    }
-
-    public System.Data.Linq.Table<Dependency> Dependencies {
-      get {
-        return this.GetTable<Dependency>();
-      }
-    }
-
-    public System.Data.Linq.Table<ProductPlugin> ProductPlugins {
-      get {
-        return this.GetTable<ProductPlugin>();
-      }
-    }
-
-    public System.Data.Linq.Table<Plugin> Plugins {
-      get {
-        return this.GetTable<Plugin>();
-      }
-    }
-
-    public System.Data.Linq.Table<PluginPackage> PluginPackages {
-      get {
-        return this.GetTable<PluginPackage>();
-      }
-    }
-
-    public System.Data.Linq.Table<Product> Products {
-      get {
-        return this.GetTable<Product>();
-      }
-    }
-  }
-
-  [global::System.Data.Linq.Mapping.TableAttribute(Name = "dbo.Dependencies")]
-  public partial class Dependency : INotifyPropertyChanging, INotifyPropertyChanged {
-
-    private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
-
-    private long _PluginId;
-
-    private long _DependencyId;
-
-    #region Extensibility Method Definitions
-    partial void OnLoaded();
-    partial void OnValidate(System.Data.Linq.ChangeAction action);
-    partial void OnCreated();
-    partial void OnPluginIdChanging(long value);
-    partial void OnPluginIdChanged();
-    partial void OnDependencyIdChanging(long value);
-    partial void OnDependencyIdChanged();
-    #endregion
-
-    public Dependency() {
-      OnCreated();
-    }
-
-    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage = "_PluginId", DbType = "BigInt NOT NULL", IsPrimaryKey = true)]
-    public long PluginId {
-      get {
-        return this._PluginId;
-      }
-      set {
-        if ((this._PluginId != value)) {
-          this.OnPluginIdChanging(value);
-          this.SendPropertyChanging();
-          this._PluginId = value;
-          this.SendPropertyChanged("PluginId");
-          this.OnPluginIdChanged();
-        }
-      }
-    }
-
-    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage = "_DependencyId", DbType = "BigInt NOT NULL", IsPrimaryKey = true)]
-    public long DependencyId {
-      get {
-        return this._DependencyId;
-      }
-      set {
-        if ((this._DependencyId != value)) {
-          this.OnDependencyIdChanging(value);
-          this.SendPropertyChanging();
-          this._DependencyId = value;
-          this.SendPropertyChanged("DependencyId");
-          this.OnDependencyIdChanged();
-        }
-      }
-    }
-
-    public event PropertyChangingEventHandler PropertyChanging;
-
-    public event PropertyChangedEventHandler PropertyChanged;
-
-    protected virtual void SendPropertyChanging() {
-      if ((this.PropertyChanging != null)) {
-        this.PropertyChanging(this, emptyChangingEventArgs);
-      }
-    }
-
-    protected virtual void SendPropertyChanged(String propertyName) {
-      if ((this.PropertyChanged != null)) {
-        this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
-      }
-    }
-  }
-
-  [global::System.Data.Linq.Mapping.TableAttribute(Name = "dbo.ProductPlugin")]
-  public partial class ProductPlugin : INotifyPropertyChanging, INotifyPropertyChanged {
-
-    private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
-
-    private long _ProductId;
-
-    private long _PluginId;
-
-    #region Extensibility Method Definitions
-    partial void OnLoaded();
-    partial void OnValidate(System.Data.Linq.ChangeAction action);
-    partial void OnCreated();
-    partial void OnProductIdChanging(long value);
-    partial void OnProductIdChanged();
-    partial void OnPluginIdChanging(long value);
-    partial void OnPluginIdChanged();
-    #endregion
-
-    public ProductPlugin() {
-      OnCreated();
-    }
-
-    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage = "_ProductId", DbType = "BigInt NOT NULL", IsPrimaryKey = true)]
-    public long ProductId {
-      get {
-        return this._ProductId;
-      }
-      set {
-        if ((this._ProductId != value)) {
-          this.OnProductIdChanging(value);
-          this.SendPropertyChanging();
-          this._ProductId = value;
-          this.SendPropertyChanged("ProductId");
-          this.OnProductIdChanged();
-        }
-      }
-    }
-
-    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage = "_PluginId", DbType = "BigInt NOT NULL", IsPrimaryKey = true)]
-    public long PluginId {
-      get {
-        return this._PluginId;
-      }
-      set {
-        if ((this._PluginId != value)) {
-          this.OnPluginIdChanging(value);
-          this.SendPropertyChanging();
-          this._PluginId = value;
-          this.SendPropertyChanged("PluginId");
-          this.OnPluginIdChanged();
-        }
-      }
-    }
-
-    public event PropertyChangingEventHandler PropertyChanging;
-
-    public event PropertyChangedEventHandler PropertyChanged;
-
-    protected virtual void SendPropertyChanging() {
-      if ((this.PropertyChanging != null)) {
-        this.PropertyChanging(this, emptyChangingEventArgs);
-      }
-    }
-
-    protected virtual void SendPropertyChanged(String propertyName) {
-      if ((this.PropertyChanged != null)) {
-        this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
-      }
-    }
-  }
-
-  [global::System.Data.Linq.Mapping.TableAttribute(Name = "dbo.Plugin")]
-  public partial class Plugin : INotifyPropertyChanging, INotifyPropertyChanged {
-
-    private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
-
-    private long _Id;
-
-    private string _Name;
-
-    private string _Version;
-
-    private string _ContactName;
-
-    private string _ContactEmail;
-
-    private string _License;
-
-    private EntityRef<PluginPackage> _PluginPackage;
-
-    #region Extensibility Method Definitions
-    partial void OnLoaded();
-    partial void OnValidate(System.Data.Linq.ChangeAction action);
-    partial void OnCreated();
-    partial void OnIdChanging(long value);
-    partial void OnIdChanged();
-    partial void OnNameChanging(string value);
-    partial void OnNameChanged();
-    partial void OnVersionChanging(string value);
-    partial void OnVersionChanged();
-    partial void OnContactNameChanging(string value);
-    partial void OnContactNameChanged();
-    partial void OnContactEmailChanging(string value);
-    partial void OnContactEmailChanged();
-    partial void OnLicenseChanging(string value);
-    partial void OnLicenseChanged();
-    #endregion
-
-    public Plugin() {
-      this._PluginPackage = default(EntityRef<PluginPackage>);
-      OnCreated();
-    }
-
-    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage = "_Id", AutoSync = AutoSync.OnInsert, DbType = "BigInt NOT NULL IDENTITY", IsPrimaryKey = true, IsDbGenerated = true)]
-    public long Id {
-      get {
-        return this._Id;
-      }
-      set {
-        if ((this._Id != value)) {
-          this.OnIdChanging(value);
-          this.SendPropertyChanging();
-          this._Id = value;
-          this.SendPropertyChanged("Id");
-          this.OnIdChanged();
-        }
-      }
-    }
-
-    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage = "_Name", DbType = "NVarChar(300) NOT NULL", CanBeNull = false)]
-    public string Name {
-      get {
-        return this._Name;
-      }
-      set {
-        if ((this._Name != value)) {
-          this.OnNameChanging(value);
-          this.SendPropertyChanging();
-          this._Name = value;
-          this.SendPropertyChanged("Name");
-          this.OnNameChanged();
-        }
-      }
-    }
-
-    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage = "_Version", DbType = "NVarChar(50) NOT NULL", CanBeNull = false)]
-    public string Version {
-      get {
-        return this._Version;
-      }
-      set {
-        if ((this._Version != value)) {
-          this.OnVersionChanging(value);
-          this.SendPropertyChanging();
-          this._Version = value;
-          this.SendPropertyChanged("Version");
-          this.OnVersionChanged();
-        }
-      }
-    }
-
-    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage = "_ContactName", DbType = "Text", UpdateCheck = UpdateCheck.Never)]
-    public string ContactName {
-      get {
-        return this._ContactName;
-      }
-      set {
-        if ((this._ContactName != value)) {
-          this.OnContactNameChanging(value);
-          this.SendPropertyChanging();
-          this._ContactName = value;
-          this.SendPropertyChanged("ContactName");
-          this.OnContactNameChanged();
-        }
-      }
-    }
-
-    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage = "_ContactEmail", DbType = "Text", UpdateCheck = UpdateCheck.Never)]
-    public string ContactEmail {
-      get {
-        return this._ContactEmail;
-      }
-      set {
-        if ((this._ContactEmail != value)) {
-          this.OnContactEmailChanging(value);
-          this.SendPropertyChanging();
-          this._ContactEmail = value;
-          this.SendPropertyChanged("ContactEmail");
-          this.OnContactEmailChanged();
-        }
-      }
-    }
-
-    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage = "_License", DbType = "Text", UpdateCheck = UpdateCheck.Never)]
-    public string License {
-      get {
-        return this._License;
-      }
-      set {
-        if ((this._License != value)) {
-          this.OnLicenseChanging(value);
-          this.SendPropertyChanging();
-          this._License = value;
-          this.SendPropertyChanged("License");
-          this.OnLicenseChanged();
-        }
-      }
-    }
-
-    [global::System.Data.Linq.Mapping.AssociationAttribute(Name = "Plugin_PluginPackage", Storage = "_PluginPackage", ThisKey = "Id", OtherKey = "PluginId", IsUnique = true, IsForeignKey = false)]
-    public PluginPackage PluginPackage {
-      get {
-        return this._PluginPackage.Entity;
-      }
-      set {
-        PluginPackage previousValue = this._PluginPackage.Entity;
-        if (((previousValue != value)
-              || (this._PluginPackage.HasLoadedOrAssignedValue == false))) {
-          this.SendPropertyChanging();
-          if ((previousValue != null)) {
-            this._PluginPackage.Entity = null;
-            previousValue.Plugin = null;
-          }
-          this._PluginPackage.Entity = value;
-          if ((value != null)) {
-            value.Plugin = this;
-          }
-          this.SendPropertyChanged("PluginPackage");
-        }
-      }
-    }
-
-    public event PropertyChangingEventHandler PropertyChanging;
-
-    public event PropertyChangedEventHandler PropertyChanged;
-
-    protected virtual void SendPropertyChanging() {
-      if ((this.PropertyChanging != null)) {
-        this.PropertyChanging(this, emptyChangingEventArgs);
-      }
-    }
-
-    protected virtual void SendPropertyChanged(String propertyName) {
-      if ((this.PropertyChanged != null)) {
-        this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
-      }
-    }
-  }
-
-  [global::System.Data.Linq.Mapping.TableAttribute(Name = "dbo.PluginPackage")]
-  public partial class PluginPackage : INotifyPropertyChanging, INotifyPropertyChanged {
-
-    private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
-
-    private long _PluginId;
-
-    private System.Data.Linq.Binary _Data;
-
-    private EntityRef<Plugin> _Plugin;
-
-    #region Extensibility Method Definitions
-    partial void OnLoaded();
-    partial void OnValidate(System.Data.Linq.ChangeAction action);
-    partial void OnCreated();
-    partial void OnPluginIdChanging(long value);
-    partial void OnPluginIdChanged();
-    partial void OnDataChanging(System.Data.Linq.Binary value);
-    partial void OnDataChanged();
-    #endregion
-
-    public PluginPackage() {
-      this._Plugin = default(EntityRef<Plugin>);
-      OnCreated();
-    }
-
-    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage = "_PluginId", DbType = "BigInt NOT NULL", IsPrimaryKey = true)]
-    public long PluginId {
-      get {
-        return this._PluginId;
-      }
-      set {
-        if ((this._PluginId != value)) {
-          if (this._Plugin.HasLoadedOrAssignedValue) {
-            throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
-          }
-          this.OnPluginIdChanging(value);
-          this.SendPropertyChanging();
-          this._PluginId = value;
-          this.SendPropertyChanged("PluginId");
-          this.OnPluginIdChanged();
-        }
-      }
-    }
-
-    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage = "_Data", DbType = "Image NOT NULL", CanBeNull = false, UpdateCheck = UpdateCheck.Never)]
-    public System.Data.Linq.Binary Data {
-      get {
-        return this._Data;
-      }
-      set {
-        if ((this._Data != value)) {
-          this.OnDataChanging(value);
-          this.SendPropertyChanging();
-          this._Data = value;
-          this.SendPropertyChanged("Data");
-          this.OnDataChanged();
-        }
-      }
-    }
-
-    [global::System.Data.Linq.Mapping.AssociationAttribute(Name = "Plugin_PluginPackage", Storage = "_Plugin", ThisKey = "PluginId", OtherKey = "Id", IsForeignKey = true)]
-    public Plugin Plugin {
-      get {
-        return this._Plugin.Entity;
-      }
-      set {
-        Plugin previousValue = this._Plugin.Entity;
-        if (((previousValue != value)
-              || (this._Plugin.HasLoadedOrAssignedValue == false))) {
-          this.SendPropertyChanging();
-          if ((previousValue != null)) {
-            this._Plugin.Entity = null;
-            previousValue.PluginPackage = null;
-          }
-          this._Plugin.Entity = value;
-          if ((value != null)) {
-            value.PluginPackage = this;
-            this._PluginId = value.Id;
-          } else {
-            this._PluginId = default(long);
-          }
-          this.SendPropertyChanged("Plugin");
-        }
-      }
-    }
-
-    public event PropertyChangingEventHandler PropertyChanging;
-
-    public event PropertyChangedEventHandler PropertyChanged;
-
-    protected virtual void SendPropertyChanging() {
-      if ((this.PropertyChanging != null)) {
-        this.PropertyChanging(this, emptyChangingEventArgs);
-      }
-    }
-
-    protected virtual void SendPropertyChanged(String propertyName) {
-      if ((this.PropertyChanged != null)) {
-        this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
-      }
-    }
-  }
-
-  [global::System.Data.Linq.Mapping.TableAttribute(Name = "dbo.Product")]
-  public partial class Product : INotifyPropertyChanging, INotifyPropertyChanged {
-
-    private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
-
-    private long _Id;
-
-    private string _Name;
-
-    private string _Version;
-
-    #region Extensibility Method Definitions
-    partial void OnLoaded();
-    partial void OnValidate(System.Data.Linq.ChangeAction action);
-    partial void OnCreated();
-    partial void OnIdChanging(long value);
-    partial void OnIdChanged();
-    partial void OnNameChanging(string value);
-    partial void OnNameChanged();
-    partial void OnVersionChanging(string value);
-    partial void OnVersionChanged();
-    #endregion
-
-    public Product() {
-      OnCreated();
-    }
-
-    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage = "_Id", AutoSync = AutoSync.OnInsert, DbType = "BigInt NOT NULL IDENTITY", IsPrimaryKey = true, IsDbGenerated = true)]
-    public long Id {
-      get {
-        return this._Id;
-      }
-      set {
-        if ((this._Id != value)) {
-          this.OnIdChanging(value);
-          this.SendPropertyChanging();
-          this._Id = value;
-          this.SendPropertyChanged("Id");
-          this.OnIdChanged();
-        }
-      }
-    }
-
-    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage = "_Name", DbType = "NVarChar(300) NOT NULL", CanBeNull = false)]
-    public string Name {
-      get {
-        return this._Name;
-      }
-      set {
-        if ((this._Name != value)) {
-          this.OnNameChanging(value);
-          this.SendPropertyChanging();
-          this._Name = value;
-          this.SendPropertyChanged("Name");
-          this.OnNameChanged();
-        }
-      }
-    }
-
-    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage = "_Version", DbType = "NVarChar(50) NOT NULL", CanBeNull = false)]
-    public string Version {
-      get {
-        return this._Version;
-      }
-      set {
-        if ((this._Version != value)) {
-          this.OnVersionChanging(value);
-          this.SendPropertyChanging();
-          this._Version = value;
-          this.SendPropertyChanged("Version");
-          this.OnVersionChanged();
-        }
-      }
-    }
-
-    public event PropertyChangingEventHandler PropertyChanging;
-
-    public event PropertyChangedEventHandler PropertyChanged;
-
-    protected virtual void SendPropertyChanging() {
-      if ((this.PropertyChanging != null)) {
-        this.PropertyChanging(this, emptyChangingEventArgs);
-      }
-    }
-
-    protected virtual void SendPropertyChanged(String propertyName) {
-      if ((this.PropertyChanged != null)) {
-        this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
-      }
-    }
-  }
-}
-#pragma warning restore 1591
Index: trunk/sources/HeuristicLab.Services.Deployment.DataAccess/3.3/Properties/Settings.Designer.cs
===================================================================
--- trunk/sources/HeuristicLab.Services.Deployment.DataAccess/3.3/Properties/Settings.Designer.cs	(revision 4256)
+++ trunk/sources/HeuristicLab.Services.Deployment.DataAccess/3.3/Properties/Settings.Designer.cs	(revision 4494)
@@ -27,8 +27,9 @@
         [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
         [global::System.Configuration.SpecialSettingAttribute(global::System.Configuration.SpecialSetting.ConnectionString)]
-        [global::System.Configuration.DefaultSettingValueAttribute("Server=SERVICES;Database=HeuristicLab.Deployment;Integrated Security=SSPI")]
-        public string HeuristicLab_PluginStoreConnectionString {
+        [global::System.Configuration.DefaultSettingValueAttribute("Data Source=.\\SQLEXPRESS;Initial Catalog=HeuristicLab.Deployment;Integrated Secur" +
+            "ity=SSPI")]
+        public string HeuristicLab_DeploymentConnectionString {
             get {
-                return ((string)(this["HeuristicLab_PluginStoreConnectionString"]));
+                return ((string)(this["HeuristicLab_DeploymentConnectionString"]));
             }
         }
Index: trunk/sources/HeuristicLab.Services.Deployment.DataAccess/3.3/Properties/Settings.settings
===================================================================
--- trunk/sources/HeuristicLab.Services.Deployment.DataAccess/3.3/Properties/Settings.settings	(revision 4256)
+++ trunk/sources/HeuristicLab.Services.Deployment.DataAccess/3.3/Properties/Settings.settings	(revision 4494)
@@ -3,11 +3,11 @@
   <Profiles />
   <Settings>
-    <Setting Name="HeuristicLab_PluginStoreConnectionString" Type="(Connection string)" Scope="Application">
+    <Setting Name="HeuristicLab_DeploymentConnectionString" Type="(Connection string)" Scope="Application">
       <DesignTimeValue Profile="(Default)">&lt;?xml version="1.0" encoding="utf-16"?&gt;
 &lt;SerializableConnectionString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"&gt;
-  &lt;ConnectionString&gt;Server=SERVICES;Database=HeuristicLab.Deployment;Integrated Security=SSPI&lt;/ConnectionString&gt;
-  &lt;ProviderName /&gt;
+  &lt;ConnectionString&gt;Data Source=.\SQLEXPRESS;Initial Catalog=HeuristicLab.Deployment;Integrated Security=SSPI&lt;/ConnectionString&gt;
+  &lt;ProviderName&gt;System.Data.SqlClient&lt;/ProviderName&gt;
 &lt;/SerializableConnectionString&gt;</DesignTimeValue>
-      <Value Profile="(Default)">Server=SERVICES;Database=HeuristicLab.Deployment;Integrated Security=SSPI</Value>
+      <Value Profile="(Default)">Data Source=.\SQLEXPRESS;Initial Catalog=HeuristicLab.Deployment;Integrated Security=SSPI</Value>
     </Setting>
   </Settings>
Index: trunk/sources/HeuristicLab.Services.Deployment.DataAccess/3.3/SQL Scripts/Initialize Deployment Database.sql
===================================================================
--- trunk/sources/HeuristicLab.Services.Deployment.DataAccess/3.3/SQL Scripts/Initialize Deployment Database.sql	(revision 4494)
+++ trunk/sources/HeuristicLab.Services.Deployment.DataAccess/3.3/SQL Scripts/Initialize Deployment Database.sql	(revision 4494)
@@ -0,0 +1,124 @@
+USE [HeuristicLab.Deployment]
+GO
+/****** Object:  Table [dbo].[Plugin]    Script Date: 03/22/2010 15:57:25 ******/
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+CREATE TABLE [dbo].[Plugin](
+	[Id] [bigint] IDENTITY(1,1) NOT NULL,
+	[Name] [nvarchar](300) NOT NULL,
+	[Version] [nvarchar](50) NOT NULL,
+	[ContactName] [text] NULL,
+	[ContactEmail] [text] NULL,
+	[License] [text] NULL,
+ CONSTRAINT [PK_Plugin] PRIMARY KEY CLUSTERED 
+(
+	[Id] ASC
+)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY],
+ CONSTRAINT [IX_Plugin_NameVersion] UNIQUE NONCLUSTERED 
+(
+	[Name] ASC,
+	[Version] ASC
+)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
+) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
+GO
+/****** Object:  Table [dbo].[Product]    Script Date: 03/22/2010 15:57:25 ******/
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+CREATE TABLE [dbo].[Product](
+	[Id] [bigint] IDENTITY(1,1) NOT NULL,
+	[Name] [nvarchar](300) NOT NULL,
+	[Version] [nvarchar](50) NOT NULL,
+ CONSTRAINT [PK_Product] PRIMARY KEY CLUSTERED 
+(
+	[Id] ASC
+)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY],
+ CONSTRAINT [IX_Product_NameVersion] UNIQUE NONCLUSTERED 
+(
+	[Name] ASC,
+	[Version] ASC
+)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
+) ON [PRIMARY]
+GO
+/****** Object:  Table [dbo].[ProductPlugin]    Script Date: 03/22/2010 15:57:25 ******/
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+CREATE TABLE [dbo].[ProductPlugin](
+	[ProductId] [bigint] NOT NULL,
+	[PluginId] [bigint] NOT NULL,
+ CONSTRAINT [PK_ProductPlugin] PRIMARY KEY CLUSTERED 
+(
+	[ProductId] ASC,
+	[PluginId] ASC
+)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
+) ON [PRIMARY]
+GO
+/****** Object:  Table [dbo].[PluginPackage]    Script Date: 03/22/2010 15:57:25 ******/
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+CREATE TABLE [dbo].[PluginPackage](
+	[PluginId] [bigint] NOT NULL,
+	[Data] [image] NOT NULL,
+ CONSTRAINT [PK_PluginPackage] PRIMARY KEY CLUSTERED 
+(
+	[PluginId] ASC
+)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
+) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
+GO
+/****** Object:  Table [dbo].[Dependencies]    Script Date: 03/22/2010 15:57:25 ******/
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+CREATE TABLE [dbo].[Dependencies](
+	[PluginId] [bigint] NOT NULL,
+	[DependencyId] [bigint] NOT NULL,
+ CONSTRAINT [PK_Dependencies] PRIMARY KEY CLUSTERED 
+(
+	[PluginId] ASC,
+	[DependencyId] ASC
+)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
+) ON [PRIMARY]
+GO
+/****** Object:  Check [CK_Dependencies]    Script Date: 03/22/2010 15:57:25 ******/
+ALTER TABLE [dbo].[Dependencies]  WITH CHECK ADD  CONSTRAINT [CK_Dependencies] CHECK  (([PluginId]<>[DependencyId]))
+GO
+ALTER TABLE [dbo].[Dependencies] CHECK CONSTRAINT [CK_Dependencies]
+GO
+/****** Object:  ForeignKey [FK_ProductPlugin_Plugin]    Script Date: 03/22/2010 15:57:25 ******/
+ALTER TABLE [dbo].[ProductPlugin]  WITH CHECK ADD  CONSTRAINT [FK_ProductPlugin_Plugin] FOREIGN KEY([PluginId])
+REFERENCES [dbo].[Plugin] ([Id])
+GO
+ALTER TABLE [dbo].[ProductPlugin] CHECK CONSTRAINT [FK_ProductPlugin_Plugin]
+GO
+/****** Object:  ForeignKey [FK_ProductPlugin_Product]    Script Date: 03/22/2010 15:57:25 ******/
+ALTER TABLE [dbo].[ProductPlugin]  WITH CHECK ADD  CONSTRAINT [FK_ProductPlugin_Product] FOREIGN KEY([ProductId])
+REFERENCES [dbo].[Product] ([Id])
+GO
+ALTER TABLE [dbo].[ProductPlugin] CHECK CONSTRAINT [FK_ProductPlugin_Product]
+GO
+/****** Object:  ForeignKey [FK_PluginPackage_Plugin]    Script Date: 03/22/2010 15:57:25 ******/
+ALTER TABLE [dbo].[PluginPackage]  WITH CHECK ADD  CONSTRAINT [FK_PluginPackage_Plugin] FOREIGN KEY([PluginId])
+REFERENCES [dbo].[Plugin] ([Id])
+GO
+ALTER TABLE [dbo].[PluginPackage] CHECK CONSTRAINT [FK_PluginPackage_Plugin]
+GO
+/****** Object:  ForeignKey [FK_Dependencies_Plugin]    Script Date: 03/22/2010 15:57:25 ******/
+ALTER TABLE [dbo].[Dependencies]  WITH CHECK ADD  CONSTRAINT [FK_Dependencies_Plugin] FOREIGN KEY([DependencyId])
+REFERENCES [dbo].[Plugin] ([Id])
+GO
+ALTER TABLE [dbo].[Dependencies] CHECK CONSTRAINT [FK_Dependencies_Plugin]
+GO
+/****** Object:  ForeignKey [FK_Dependencies_Plugin2]    Script Date: 03/22/2010 15:57:25 ******/
+ALTER TABLE [dbo].[Dependencies]  WITH CHECK ADD  CONSTRAINT [FK_Dependencies_Plugin2] FOREIGN KEY([PluginId])
+REFERENCES [dbo].[Plugin] ([Id])
+GO
+ALTER TABLE [dbo].[Dependencies] CHECK CONSTRAINT [FK_Dependencies_Plugin2]
+GO
Index: trunk/sources/HeuristicLab.Services.Deployment.DataAccess/3.3/app.config
===================================================================
--- trunk/sources/HeuristicLab.Services.Deployment.DataAccess/3.3/app.config	(revision 4256)
+++ trunk/sources/HeuristicLab.Services.Deployment.DataAccess/3.3/app.config	(revision 4494)
@@ -1,10 +1,10 @@
 ﻿<?xml version="1.0" encoding="utf-8" ?>
 <configuration>
-    <configSections>
-    </configSections>
-    <connectionStrings>
-        <add name="HeuristicLab.Services.Deployment.DataAccess.Properties.Settings.HeuristicLab_PluginStoreConnectionString"
-            connectionString="Server=SERVICES;Database=HeuristicLab.Deployment;Integrated Security=SSPI"
-            providerName="" />
-    </connectionStrings>
+  <configSections>
+  </configSections>
+  <connectionStrings>
+    <add name="HeuristicLab.Services.Deployment.DataAccess.Properties.Settings.HeuristicLab_DeploymentConnectionString"
+      connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=HeuristicLab.Deployment;Integrated Security=SSPI"
+      providerName="System.Data.SqlClient" />
+  </connectionStrings>
 </configuration>
