diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000000..63bc5f5de3
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "src/Perspex.ReactiveUI/src"]
+ path = src/Perspex.ReactiveUI/src
+ url = https://github.com/reactiveui/ReactiveUI.git
diff --git a/Perspex.sln b/Perspex.sln
index 75bff153c8..3c1892f48d 100644
--- a/Perspex.sln
+++ b/Perspex.sln
@@ -1,7 +1,7 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
-VisualStudioVersion = 14.0.23107.0
+VisualStudioVersion = 14.0.22823.1
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Perspex.Win32", "src\Windows\Perspex.Win32\Perspex.Win32.csproj", "{811A76CF-1CF6-440F-963B-BBE31BD72A82}"
EndProject
@@ -88,6 +88,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Perspex.Gtk", "src\Gtk\Pers
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Perspex.Cairo", "src\Gtk\Perspex.Cairo\Perspex.Cairo.csproj", "{FB05AC90-89BA-4F2F-A924-F37875FB547C}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Perspex.ReactiveUI", "src\Perspex.ReactiveUI\Perspex.ReactiveUI.csproj", "{6417B24E-49C2-4985-8DB2-3AB9D898EC91}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -206,6 +208,10 @@ Global
{FB05AC90-89BA-4F2F-A924-F37875FB547C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FB05AC90-89BA-4F2F-A924-F37875FB547C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FB05AC90-89BA-4F2F-A924-F37875FB547C}.Release|Any CPU.Build.0 = Release|Any CPU
+ {6417B24E-49C2-4985-8DB2-3AB9D898EC91}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {6417B24E-49C2-4985-8DB2-3AB9D898EC91}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {6417B24E-49C2-4985-8DB2-3AB9D898EC91}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {6417B24E-49C2-4985-8DB2-3AB9D898EC91}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/appveyor.yml b/appveyor.yml
index d44acf2f73..9c83b1f9d1 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -1,6 +1,7 @@
version: 1.0.{build}
os: Visual Studio 2015
before_build:
+- git submodule update --init
- nuget restore Perspex.sln
build:
project: Perspex.sln
diff --git a/readme.md b/readme.md
index 5196c70ec1..aca392885b 100644
--- a/readme.md
+++ b/readme.md
@@ -31,7 +31,7 @@ As mentioned above, Perspex is still in alpha and as such there's not much docum
take a look at the [alpha release announcement](http://grokys.github.io/perspex/perspex-alpha/) for an
overview of how to get started but probably the best thing to do for now is to already know a little bit about WPF/Silverlight/UWP/XAML and ask questions in our [Gitter room](https://gitter.im/grokys/Perspex).
-There's also a high-level [architecture document](Docs/architecture.md) that is currently a little bit
+There's also a high-level [architecture document](docs/architecture.md) that is currently a little bit
out of date, and I've also started writing blog posts on Perspex at http://grokys.github.io/.
Contributions are always welcome!
diff --git a/samples/TestApplication/TestApplication.csproj b/samples/TestApplication/TestApplication.csproj
index c8ec54dc14..416e4baa99 100644
--- a/samples/TestApplication/TestApplication.csproj
+++ b/samples/TestApplication/TestApplication.csproj
@@ -35,10 +35,6 @@
4
-
- ..\..\packages\reactiveui-core.6.5.0\lib\Net45\ReactiveUI.dll
- True
-
..\..\packages\Serilog.1.5.9\lib\net45\Serilog.dll
True
@@ -119,6 +115,10 @@
{42472427-4774-4C81-8AFF-9F27B8E31721}
Perspex.Layout
+
+ {6417B24E-49C2-4985-8DB2-3AB9D898EC91}
+ Perspex.ReactiveUI
+
{EB582467-6ABB-43A1-B052-E981BA910E3A}
Perspex.SceneGraph
diff --git a/samples/TestApplication/packages.config b/samples/TestApplication/packages.config
index afbae2974d..a1bddc832f 100644
--- a/samples/TestApplication/packages.config
+++ b/samples/TestApplication/packages.config
@@ -1,13 +1,11 @@
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/samples/XamlTestApplication/XamlTestApplication.csproj b/samples/XamlTestApplication/XamlTestApplication.csproj
index e202c54970..688562123d 100644
--- a/samples/XamlTestApplication/XamlTestApplication.csproj
+++ b/samples/XamlTestApplication/XamlTestApplication.csproj
@@ -44,10 +44,6 @@
..\..\packages\OmniXaml.1.4.8.0\lib\portable-net45+win+Xamarin.iOS10+MonoAndroid10+MonoTouch10\OmniXaml.dll
True
-
- ..\..\packages\reactiveui-core.6.5.0\lib\Net45\ReactiveUI.dll
- True
-
..\..\packages\Serilog.1.5.9\lib\net45\Serilog.dll
True
@@ -141,6 +137,10 @@
{42472427-4774-4c81-8aff-9f27b8e31721}
Perspex.Layout
+
+ {6417B24E-49C2-4985-8DB2-3AB9D898EC91}
+ Perspex.ReactiveUI
+
{eb582467-6abb-43a1-b052-e981ba910e3a}
Perspex.SceneGraph
diff --git a/samples/XamlTestApplication/packages.config b/samples/XamlTestApplication/packages.config
index d425e0bf19..b25bd1d2ef 100644
--- a/samples/XamlTestApplication/packages.config
+++ b/samples/XamlTestApplication/packages.config
@@ -1,17 +1,15 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Markup/Perspex.Markup.Xaml/Perspex.Markup.Xaml.csproj b/src/Markup/Perspex.Markup.Xaml/Perspex.Markup.Xaml.csproj
index 30100d5bd2..8a8d3345f8 100644
--- a/src/Markup/Perspex.Markup.Xaml/Perspex.Markup.Xaml.csproj
+++ b/src/Markup/Perspex.Markup.Xaml/Perspex.Markup.Xaml.csproj
@@ -121,10 +121,6 @@
..\..\..\packages\OmniXaml.1.4.8.0\lib\portable-net45+win+Xamarin.iOS10+MonoAndroid10+MonoTouch10\OmniXaml.dll
True
-
- ..\..\..\packages\reactiveui-core.6.5.0\lib\Portable-Net45+Win8+WP8+WPA81\ReactiveUI.dll
- True
-
..\..\..\packages\Serilog.1.5.9\lib\portable-net45+win+wpa81+wp80+MonoAndroid10+MonoTouch10\Serilog.dll
True
diff --git a/src/Markup/Perspex.Markup.Xaml/packages.config b/src/Markup/Perspex.Markup.Xaml/packages.config
index 68cddfbe23..8249a6d950 100644
--- a/src/Markup/Perspex.Markup.Xaml/packages.config
+++ b/src/Markup/Perspex.Markup.Xaml/packages.config
@@ -1,17 +1,15 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Perspex.Diagnostics/Perspex.Diagnostics.csproj b/src/Perspex.Diagnostics/Perspex.Diagnostics.csproj
index 775e5b0d96..a3fc26f458 100644
--- a/src/Perspex.Diagnostics/Perspex.Diagnostics.csproj
+++ b/src/Perspex.Diagnostics/Perspex.Diagnostics.csproj
@@ -63,6 +63,10 @@
{42472427-4774-4C81-8AFF-9F27B8E31721}
Perspex.Layout
+
+ {6417B24E-49C2-4985-8DB2-3AB9D898EC91}
+ Perspex.ReactiveUI
+
{EB582467-6ABB-43A1-B052-E981BA910E3A}
Perspex.SceneGraph
@@ -96,10 +100,6 @@
-
- ..\..\packages\reactiveui-core.6.5.0\lib\Portable-Net45+Win8+WP8+WPA81\ReactiveUI.dll
- True
-
..\..\packages\Splat.1.6.2\lib\Portable-net45+win+wpa81+wp80\Splat.dll
diff --git a/src/Perspex.Diagnostics/packages.config b/src/Perspex.Diagnostics/packages.config
index aeb9576bd2..977aca7f5e 100644
--- a/src/Perspex.Diagnostics/packages.config
+++ b/src/Perspex.Diagnostics/packages.config
@@ -1,12 +1,10 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Perspex.ReactiveUI/Perspex.ReactiveUI.csproj b/src/Perspex.ReactiveUI/Perspex.ReactiveUI.csproj
new file mode 100644
index 0000000000..b0cd5cd67b
--- /dev/null
+++ b/src/Perspex.ReactiveUI/Perspex.ReactiveUI.csproj
@@ -0,0 +1,118 @@
+
+
+
+
+ 10.0
+ Debug
+ AnyCPU
+ {6417B24E-49C2-4985-8DB2-3AB9D898EC91}
+ Library
+ Properties
+ Perspex.ReactiveUI
+ Perspex.ReactiveUI
+ en-US
+ 512
+ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+ Profile259
+ v4.5
+
+
+ true
+ full
+ false
+ bin\Debug\
+ TRACE;DEBUG;MONO PORTABLE
+ prompt
+ 4
+
+
+ pdbonly
+ true
+ bin\Release\
+ TRACE;MONO PORTABLE
+ prompt
+ 4
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Code
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ..\..\packages\Splat.1.6.2\lib\Portable-net45+win+wpa81+wp80\Splat.dll
+ True
+
+
+ ..\..\packages\Rx-Core.2.2.5\lib\portable-net45+winrt45+wp8+wpa81\System.Reactive.Core.dll
+ True
+
+
+ ..\..\packages\Rx-Interfaces.2.2.5\lib\portable-net45+winrt45+wp8+wpa81\System.Reactive.Interfaces.dll
+ True
+
+
+ ..\..\packages\Rx-Linq.2.2.5\lib\portable-net45+winrt45+wp8+wpa81\System.Reactive.Linq.dll
+ True
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Perspex.ReactiveUI/Properties/AssemblyInfo.cs b/src/Perspex.ReactiveUI/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000000..cee918a3f3
--- /dev/null
+++ b/src/Perspex.ReactiveUI/Properties/AssemblyInfo.cs
@@ -0,0 +1,30 @@
+using System.Resources;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("Perspex.ReactiveUI")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("Perspex.ReactiveUI")]
+[assembly: AssemblyCopyright("Copyright © 2015")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+[assembly: NeutralResourcesLanguage("en")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/src/Perspex.ReactiveUI/Registrations.cs b/src/Perspex.ReactiveUI/Registrations.cs
new file mode 100644
index 0000000000..b6b09fb7f2
--- /dev/null
+++ b/src/Perspex.ReactiveUI/Registrations.cs
@@ -0,0 +1,18 @@
+using System;
+
+
+namespace ReactiveUI
+{
+ ///
+ /// Ignore me. This class is a secret handshake between RxUI and RxUI.Xaml
+ /// in order to register certain classes on startup that would be difficult
+ /// to register otherwise.
+ ///
+ public class PlatformRegistrations : IWantsToRegisterStuff
+ {
+ public void Register(Action, Type> registerFunction)
+ {
+
+ }
+ }
+}
diff --git a/src/Perspex.ReactiveUI/packages.config b/src/Perspex.ReactiveUI/packages.config
new file mode 100644
index 0000000000..277fba7b3d
--- /dev/null
+++ b/src/Perspex.ReactiveUI/packages.config
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Perspex.ReactiveUI/src b/src/Perspex.ReactiveUI/src
new file mode 160000
index 0000000000..3f725c808b
--- /dev/null
+++ b/src/Perspex.ReactiveUI/src
@@ -0,0 +1 @@
+Subproject commit 3f725c808b1d4c8457f0d3204e0a071aa462cd75