diff --git a/Config/BaseConfig.vb b/Config/BaseConfig.vb
new file mode 100644
index 00000000..bc2a89d7
--- /dev/null
+++ b/Config/BaseConfig.vb
@@ -0,0 +1,76 @@
+Imports System.IO
+Imports NLog
+
+Public MustInherit Class BaseConfig
+ Private Const _userConfigFileName As String = "UserConfig.xml"
+ Private _logFactory As LogFactory
+ Private _logger As Logger
+
+ Protected Const _configKey As String = "Key"
+ Protected Const _configValue As String = "Value"
+ Protected _dataTable As DataTable
+
+ Protected ReadOnly Property PropertyNames As Dictionary(Of String, String)
+ Get
+ Return New Dictionary(Of String, String)
+ End Get
+ End Property
+
+ Public Sub New(LogFactory As LogFactory)
+ _logFactory = LogFactory
+ _logger = LogFactory.GetCurrentClassLogger()
+ End Sub
+
+ Private Function GetUserConfigPath() As String
+ Dim oAppData = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)
+ Dim oCompanyName = My.Application.Info.CompanyName
+ Dim oProductName = My.Application.Info.ProductName
+
+ Return Path.Combine(oAppData, oCompanyName, oProductName, _userConfigFileName)
+ End Function
+
+ Protected Function LoadConfig() As DataTable
+ Dim oUserConfigPath As String = GetUserConfigPath()
+ Dim oDatatable As New DataTable()
+
+ If Not File.Exists(oUserConfigPath) Then
+ _logger.Warn("Config file {0} does not exist", oUserConfigPath)
+ Return Nothing
+ End If
+
+ Try
+ oDatatable.ReadXml(oUserConfigPath)
+ Return oDatatable
+ Catch ex As Exception
+ _logger.Error(ex)
+ Return Nothing
+ End Try
+ End Function
+
+ Protected Sub SaveConfig(DataTable As DataTable)
+ Dim oUserConfigPath As String = GetUserConfigPath()
+
+ Try
+ DataTable.WriteXml(oUserConfigPath)
+ Catch ex As Exception
+ _logger.Error(ex)
+ End Try
+ End Sub
+
+ Protected Function ConvertToDataTable(dictionary As Dictionary(Of String, String)) As DataTable
+ Dim oNewDataTable As New DataTable("Config")
+ oNewDataTable.Columns.Add(New DataColumn("Key", GetType(String)))
+ oNewDataTable.Columns.Add(New DataColumn("Value", GetType(String)))
+
+ For Each oProperty In dictionary
+ Dim oNewRow = oNewDataTable.NewRow()
+ oNewRow.Item("Key") = oProperty.Key
+ oNewRow.Item("Value") = oProperty.Value
+ oNewDataTable.Rows.Add(oNewRow)
+ Next
+
+ oNewDataTable.AcceptChanges()
+
+ Return oNewDataTable
+ End Function
+End Class
diff --git a/Config/Config.vbproj b/Config/Config.vbproj
new file mode 100644
index 00000000..8a4be33a
--- /dev/null
+++ b/Config/Config.vbproj
@@ -0,0 +1,113 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {44982F9B-6116-44E2-85D0-F39650B1EF99}
+ Library
+ Config
+ Config
+ 512
+ Windows
+ v4.6.1
+
+
+ true
+ full
+ true
+ true
+ bin\Debug\
+ Config.xml
+ 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022
+
+
+ pdbonly
+ false
+ true
+ true
+ bin\Release\
+ Config.xml
+ 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022
+
+
+ On
+
+
+ Binary
+
+
+ Off
+
+
+ On
+
+
+
+
+ ..\packages\NLog.4.5.8\lib\net45\NLog.dll
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ True
+ Application.myapp
+
+
+ True
+ True
+ Resources.resx
+
+
+ True
+ Settings.settings
+ True
+
+
+
+
+ VbMyResourcesResXFileCodeGenerator
+ Resources.Designer.vb
+ My.Resources
+ Designer
+
+
+
+
+ MyApplicationCodeGenerator
+ Application.Designer.vb
+
+
+ SettingsSingleFileGenerator
+ My
+ Settings.Designer.vb
+
+
+
+
+
\ No newline at end of file
diff --git a/Config/My Project/Application.Designer.vb b/Config/My Project/Application.Designer.vb
new file mode 100644
index 00000000..88dd01c7
--- /dev/null
+++ b/Config/My Project/Application.Designer.vb
@@ -0,0 +1,13 @@
+'------------------------------------------------------------------------------
+'
+' This code was generated by a tool.
+' Runtime Version:4.0.30319.42000
+'
+' Changes to this file may cause incorrect behavior and will be lost if
+' the code is regenerated.
+'
+'------------------------------------------------------------------------------
+
+Option Strict On
+Option Explicit On
+
diff --git a/Config/My Project/Application.myapp b/Config/My Project/Application.myapp
new file mode 100644
index 00000000..758895de
--- /dev/null
+++ b/Config/My Project/Application.myapp
@@ -0,0 +1,10 @@
+
+
+ false
+ false
+ 0
+ true
+ 0
+ 1
+ true
+
diff --git a/Config/My Project/AssemblyInfo.vb b/Config/My Project/AssemblyInfo.vb
new file mode 100644
index 00000000..9f38f9be
--- /dev/null
+++ b/Config/My Project/AssemblyInfo.vb
@@ -0,0 +1,35 @@
+Imports System
+Imports System.Reflection
+Imports System.Runtime.InteropServices
+
+' Allgemeine Informationen über eine Assembly werden über die folgenden
+' Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern,
+' die einer Assembly zugeordnet sind.
+
+' Werte der Assemblyattribute überprüfen
+
+
+
+
+
+
+
+
+
+
+'Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird.
+
+
+' Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten:
+'
+' Hauptversion
+' Nebenversion
+' Buildnummer
+' Revision
+'
+' Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden,
+' übernehmen, indem Sie "*" eingeben:
+'
+
+
+
diff --git a/Config/My Project/Resources.Designer.vb b/Config/My Project/Resources.Designer.vb
new file mode 100644
index 00000000..ab41acc3
--- /dev/null
+++ b/Config/My Project/Resources.Designer.vb
@@ -0,0 +1,62 @@
+'------------------------------------------------------------------------------
+'
+' This code was generated by a tool.
+' Runtime Version:4.0.30319.42000
+'
+' Changes to this file may cause incorrect behavior and will be lost if
+' the code is regenerated.
+'
+'------------------------------------------------------------------------------
+
+Option Strict On
+Option Explicit On
+
+
+Namespace My.Resources
+
+ 'This class was auto-generated by the StronglyTypedResourceBuilder
+ 'class via a tool like ResGen or Visual Studio.
+ 'To add or remove a member, edit your .ResX file then rerun ResGen
+ 'with the /str option, or rebuild your VS project.
+ '''
+ ''' A strongly-typed resource class, for looking up localized strings, etc.
+ '''
+ _
+ Friend Module Resources
+
+ Private resourceMan As Global.System.Resources.ResourceManager
+
+ Private resourceCulture As Global.System.Globalization.CultureInfo
+
+ '''
+ ''' Returns the cached ResourceManager instance used by this class.
+ '''
+ _
+ Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager
+ Get
+ If Object.ReferenceEquals(resourceMan, Nothing) Then
+ Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("Config.Resources", GetType(Resources).Assembly)
+ resourceMan = temp
+ End If
+ Return resourceMan
+ End Get
+ End Property
+
+ '''
+ ''' Overrides the current thread's CurrentUICulture property for all
+ ''' resource lookups using this strongly typed resource class.
+ '''
+ _
+ Friend Property Culture() As Global.System.Globalization.CultureInfo
+ Get
+ Return resourceCulture
+ End Get
+ Set(ByVal value As Global.System.Globalization.CultureInfo)
+ resourceCulture = value
+ End Set
+ End Property
+ End Module
+End Namespace
diff --git a/Config/My Project/Resources.resx b/Config/My Project/Resources.resx
new file mode 100644
index 00000000..af7dbebb
--- /dev/null
+++ b/Config/My Project/Resources.resx
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/Config/My Project/Settings.Designer.vb b/Config/My Project/Settings.Designer.vb
new file mode 100644
index 00000000..77a3ff58
--- /dev/null
+++ b/Config/My Project/Settings.Designer.vb
@@ -0,0 +1,73 @@
+'------------------------------------------------------------------------------
+'
+' This code was generated by a tool.
+' Runtime Version:4.0.30319.42000
+'
+' Changes to this file may cause incorrect behavior and will be lost if
+' the code is regenerated.
+'
+'------------------------------------------------------------------------------
+
+Option Strict On
+Option Explicit On
+
+
+Namespace My
+
+ _
+ Partial Friend NotInheritable Class MySettings
+ Inherits Global.System.Configuration.ApplicationSettingsBase
+
+ Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings), MySettings)
+
+#Region "My.Settings Auto-Save Functionality"
+#If _MyType = "WindowsForms" Then
+ Private Shared addedHandler As Boolean
+
+ Private Shared addedHandlerLockObject As New Object
+
+ _
+ Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs)
+ If My.Application.SaveMySettingsOnExit Then
+ My.Settings.Save()
+ End If
+ End Sub
+#End If
+#End Region
+
+ Public Shared ReadOnly Property [Default]() As MySettings
+ Get
+
+#If _MyType = "WindowsForms" Then
+ If Not addedHandler Then
+ SyncLock addedHandlerLockObject
+ If Not addedHandler Then
+ AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings
+ addedHandler = True
+ End If
+ End SyncLock
+ End If
+#End If
+ Return defaultInstance
+ End Get
+ End Property
+ End Class
+End Namespace
+
+Namespace My
+
+ _
+ Friend Module MySettingsProperty
+
+ _
+ Friend ReadOnly Property Settings() As Global.Config.My.MySettings
+ Get
+ Return Global.Config.My.MySettings.Default
+ End Get
+ End Property
+ End Module
+End Namespace
diff --git a/Config/My Project/Settings.settings b/Config/My Project/Settings.settings
new file mode 100644
index 00000000..85b890b3
--- /dev/null
+++ b/Config/My Project/Settings.settings
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/Config/SampleConfig.vb b/Config/SampleConfig.vb
new file mode 100644
index 00000000..ba775c22
--- /dev/null
+++ b/Config/SampleConfig.vb
@@ -0,0 +1,70 @@
+Imports Config
+Imports NLog
+
+'''
+''' Sample Config Class inheriting from BaseConfig
+'''
+'''
+'''
+''' Things this class should do:
+'''
+''' - Provide defaults for all values
+''' - Load the current config using the LoadConfig method of BaseConfig
+''' - If no configfile was found, it should create a new datatable with only default values
+''' - If a configfile was found, it should merge the values from this file with the defaults from this class
+''' - For each propertyname defined in PropertyNames
+''' - Check for existing value in datatable
+''' - If a value is present, use it
+''' - If no value is exists, use the default value
+''' - Assign the resulting values to class properties
+''' - Save the new config to disk
+'''
+Public Class SampleConfig
+ Inherits BaseConfig
+
+ Private _logger As Logger
+
+ Public ReadOnly ConnectionString As String
+ Public ReadOnly UniversalViewer As String
+
+ Public Overloads ReadOnly Property PropertyNames As Dictionary(Of String, String)
+ Get
+ Return New Dictionary(Of String, String) From {
+ {"ConnectionString", ""},
+ {"UniversalViewer", ""}
+ }
+ End Get
+ End Property
+
+ Public Sub New(LogFactory As LogFactory)
+ MyBase.New(LogFactory)
+
+ _logger = LogFactory.GetCurrentClassLogger()
+
+ ' Load the existing values from the config file into PropertyNames
+ ' overwriting the default values
+ Dim oDataTable = LoadConfig()
+
+ For Each oRow As DataRow In oDataTable.Rows
+ Dim oValue = oRow.Item(_configValue)
+ Dim oKey = oRow.Item(_configKey)
+
+ PropertyNames.Item(oKey) = oValue
+ Next
+
+ ' Assign the merged properties to class properties, optionally converting them beforehand
+ For Each oProperty As KeyValuePair(Of String, String) In PropertyNames
+ Select Case oProperty.Key
+ Case "ConnectionString"
+ ConnectionString = oProperty.Value
+ Case "UniversalViewer"
+ UniversalViewer = oProperty.Value
+ Case Else
+ _logger.Warn("Property {0} was found in PropertyNames but was not assigned to a config property", oProperty.Key)
+ End Select
+ Next
+
+ ' Convert the dictionary back to a datatable and save it
+ SaveConfig(ConvertToDataTable(PropertyNames))
+ End Sub
+End Class
diff --git a/Config/packages.config b/Config/packages.config
new file mode 100644
index 00000000..a3ffb2eb
--- /dev/null
+++ b/Config/packages.config
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/DDMonorepo.sln b/DDMonorepo.sln
index 344eb5bc..157f3172 100644
--- a/DDMonorepo.sln
+++ b/DDMonorepo.sln
@@ -25,6 +25,10 @@ Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Messaging", "Message\Messag
EndProject
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "DDTestService", "DDTestService\DDTestService.vbproj", "{63B0EAA3-8BF5-46DA-9040-15E781F4C3B1}"
EndProject
+Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Variables", "Variables\Variables.vbproj", "{836C9ADE-E04E-4E1E-B17A-201E68014790}"
+EndProject
+Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Config", "Config\Config.vbproj", "{44982F9B-6116-44E2-85D0-F39650B1EF99}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -59,6 +63,14 @@ Global
{63B0EAA3-8BF5-46DA-9040-15E781F4C3B1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{63B0EAA3-8BF5-46DA-9040-15E781F4C3B1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{63B0EAA3-8BF5-46DA-9040-15E781F4C3B1}.Release|Any CPU.Build.0 = Release|Any CPU
+ {836C9ADE-E04E-4E1E-B17A-201E68014790}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {836C9ADE-E04E-4E1E-B17A-201E68014790}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {836C9ADE-E04E-4E1E-B17A-201E68014790}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {836C9ADE-E04E-4E1E-B17A-201E68014790}.Release|Any CPU.Build.0 = Release|Any CPU
+ {44982F9B-6116-44E2-85D0-F39650B1EF99}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {44982F9B-6116-44E2-85D0-F39650B1EF99}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {44982F9B-6116-44E2-85D0-F39650B1EF99}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {44982F9B-6116-44E2-85D0-F39650B1EF99}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -71,6 +83,8 @@ Global
{EAF0EA75-5FA7-485D-89C7-B2D843B03A96} = {3E2008C8-27B1-41DD-9B1A-0C4029F6AECC}
{AF664D85-0A4B-4BAB-A2F8-83110C06553A} = {3E2008C8-27B1-41DD-9B1A-0C4029F6AECC}
{63B0EAA3-8BF5-46DA-9040-15E781F4C3B1} = {7AF3F9C2-C939-4A08-95C1-0453207E298A}
+ {836C9ADE-E04E-4E1E-B17A-201E68014790} = {3E2008C8-27B1-41DD-9B1A-0C4029F6AECC}
+ {44982F9B-6116-44E2-85D0-F39650B1EF99} = {3E2008C8-27B1-41DD-9B1A-0C4029F6AECC}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {C1BE4090-A0FD-48AF-86CB-39099D14B286}
diff --git a/Variables/CurrentApplication.vb b/Variables/CurrentApplication.vb
new file mode 100644
index 00000000..9b9d3e9f
--- /dev/null
+++ b/Variables/CurrentApplication.vb
@@ -0,0 +1,3 @@
+Public Class CurrentApplication
+
+End Class
diff --git a/Variables/CurrentUser.vb b/Variables/CurrentUser.vb
new file mode 100644
index 00000000..b8a60f73
--- /dev/null
+++ b/Variables/CurrentUser.vb
@@ -0,0 +1,9 @@
+Public Class CurrentUser
+ Public USER_GUID As String
+ Public USER_NAME As String
+ Public ReadOnly USER_LOGIN As DateTime
+
+ Public Sub New()
+ USER_LOGIN = DateTime.Now
+ End Sub
+End Class
diff --git a/Variables/My Project/Application.Designer.vb b/Variables/My Project/Application.Designer.vb
new file mode 100644
index 00000000..8ab460ba
--- /dev/null
+++ b/Variables/My Project/Application.Designer.vb
@@ -0,0 +1,13 @@
+'------------------------------------------------------------------------------
+'
+' Dieser Code wurde von einem Tool generiert.
+' Laufzeitversion:4.0.30319.42000
+'
+' Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
+' der Code erneut generiert wird.
+'
+'------------------------------------------------------------------------------
+
+Option Strict On
+Option Explicit On
+
diff --git a/Variables/My Project/Application.myapp b/Variables/My Project/Application.myapp
new file mode 100644
index 00000000..758895de
--- /dev/null
+++ b/Variables/My Project/Application.myapp
@@ -0,0 +1,10 @@
+
+
+ false
+ false
+ 0
+ true
+ 0
+ 1
+ true
+
diff --git a/Variables/My Project/AssemblyInfo.vb b/Variables/My Project/AssemblyInfo.vb
new file mode 100644
index 00000000..4b2458e2
--- /dev/null
+++ b/Variables/My Project/AssemblyInfo.vb
@@ -0,0 +1,35 @@
+Imports System
+Imports System.Reflection
+Imports System.Runtime.InteropServices
+
+' Allgemeine Informationen über eine Assembly werden über die folgenden
+' Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern,
+' die einer Assembly zugeordnet sind.
+
+' Werte der Assemblyattribute überprüfen
+
+
+
+
+
+
+
+
+
+
+'Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird.
+
+
+' Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten:
+'
+' Hauptversion
+' Nebenversion
+' Buildnummer
+' Revision
+'
+' Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden,
+' übernehmen, indem Sie "*" eingeben:
+'
+
+
+
diff --git a/Variables/My Project/Resources.Designer.vb b/Variables/My Project/Resources.Designer.vb
new file mode 100644
index 00000000..1c9f8325
--- /dev/null
+++ b/Variables/My Project/Resources.Designer.vb
@@ -0,0 +1,63 @@
+'------------------------------------------------------------------------------
+'
+' Dieser Code wurde von einem Tool generiert.
+' Laufzeitversion:4.0.30319.42000
+'
+' Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
+' der Code erneut generiert wird.
+'
+'------------------------------------------------------------------------------
+
+Option Strict On
+Option Explicit On
+
+Imports System
+
+Namespace My.Resources
+
+ 'Diese Klasse wurde von der StronglyTypedResourceBuilder automatisch generiert
+ '-Klasse über ein Tool wie ResGen oder Visual Studio automatisch generiert.
+ 'Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen
+ 'mit der /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu.
+ '''
+ ''' Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw.
+ '''
+ _
+ Friend Module Resources
+
+ Private resourceMan As Global.System.Resources.ResourceManager
+
+ Private resourceCulture As Global.System.Globalization.CultureInfo
+
+ '''
+ ''' Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird.
+ '''
+ _
+ Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager
+ Get
+ If Object.ReferenceEquals(resourceMan, Nothing) Then
+ Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("DigitalData.Modules.Variables.Resources", GetType(Resources).Assembly)
+ resourceMan = temp
+ End If
+ Return resourceMan
+ End Get
+ End Property
+
+ '''
+ ''' Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle
+ ''' Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden.
+ '''
+ _
+ Friend Property Culture() As Global.System.Globalization.CultureInfo
+ Get
+ Return resourceCulture
+ End Get
+ Set
+ resourceCulture = value
+ End Set
+ End Property
+ End Module
+End Namespace
diff --git a/Variables/My Project/Resources.resx b/Variables/My Project/Resources.resx
new file mode 100644
index 00000000..af7dbebb
--- /dev/null
+++ b/Variables/My Project/Resources.resx
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/Variables/My Project/Settings.Designer.vb b/Variables/My Project/Settings.Designer.vb
new file mode 100644
index 00000000..c9f54ee0
--- /dev/null
+++ b/Variables/My Project/Settings.Designer.vb
@@ -0,0 +1,73 @@
+'------------------------------------------------------------------------------
+'
+' Dieser Code wurde von einem Tool generiert.
+' Laufzeitversion:4.0.30319.42000
+'
+' Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
+' der Code erneut generiert wird.
+'
+'------------------------------------------------------------------------------
+
+Option Strict On
+Option Explicit On
+
+
+Namespace My
+
+ _
+ Partial Friend NotInheritable Class MySettings
+ Inherits Global.System.Configuration.ApplicationSettingsBase
+
+ Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings)
+
+#Region "Automatische My.Settings-Speicherfunktion"
+#If _MyType = "WindowsForms" Then
+ Private Shared addedHandler As Boolean
+
+ Private Shared addedHandlerLockObject As New Object
+
+ _
+ Private Shared Sub AutoSaveSettings(sender As Global.System.Object, e As Global.System.EventArgs)
+ If My.Application.SaveMySettingsOnExit Then
+ My.Settings.Save()
+ End If
+ End Sub
+#End If
+#End Region
+
+ Public Shared ReadOnly Property [Default]() As MySettings
+ Get
+
+#If _MyType = "WindowsForms" Then
+ If Not addedHandler Then
+ SyncLock addedHandlerLockObject
+ If Not addedHandler Then
+ AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings
+ addedHandler = True
+ End If
+ End SyncLock
+ End If
+#End If
+ Return defaultInstance
+ End Get
+ End Property
+ End Class
+End Namespace
+
+Namespace My
+
+ _
+ Friend Module MySettingsProperty
+
+ _
+ Friend ReadOnly Property Settings() As Global.DigitalData.Modules.Variables.My.MySettings
+ Get
+ Return Global.DigitalData.Modules.Variables.My.MySettings.Default
+ End Get
+ End Property
+ End Module
+End Namespace
diff --git a/Variables/My Project/Settings.settings b/Variables/My Project/Settings.settings
new file mode 100644
index 00000000..85b890b3
--- /dev/null
+++ b/Variables/My Project/Settings.settings
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/Variables/Variables.vbproj b/Variables/Variables.vbproj
new file mode 100644
index 00000000..90fa3e59
--- /dev/null
+++ b/Variables/Variables.vbproj
@@ -0,0 +1,104 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {836C9ADE-E04E-4E1E-B17A-201E68014790}
+ Library
+ DigitalData.Modules.Variables
+ DigitalData.Modules.Variables
+ 512
+ Windows
+ v4.6.1
+
+
+ true
+ full
+ true
+ true
+ bin\Debug\
+ DigitalData.Modules.Variables.xml
+ 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022
+
+
+ pdbonly
+ false
+ true
+ true
+ bin\Release\
+ DigitalData.Modules.Variables.xml
+ 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022
+
+
+ On
+
+
+ Binary
+
+
+ Off
+
+
+ On
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ True
+ Application.myapp
+
+
+ True
+ True
+ Resources.resx
+
+
+ True
+ Settings.settings
+ True
+
+
+
+
+ VbMyResourcesResXFileCodeGenerator
+ Resources.Designer.vb
+ My.Resources
+ Designer
+
+
+
+
+ MyApplicationCodeGenerator
+ Application.Designer.vb
+
+
+ SettingsSingleFileGenerator
+ My
+ Settings.Designer.vb
+
+
+
+
\ No newline at end of file