diff --git a/.github/workflows/build_publish_master.yml b/.github/workflows/build_publish_master.yml
index 5c6cebf..1a6a319 100644
--- a/.github/workflows/build_publish_master.yml
+++ b/.github/workflows/build_publish_master.yml
@@ -5,6 +5,14 @@ on:
- "**/*.md"
branches: [ master ]
+# Publishing uses nuget.org Trusted Publishing: the job requests an OIDC token from GitHub, NuGet/login exchanges
+# it for an API key that lives one hour, and the push uses that key. No long-lived NuGet secret is stored here.
+# The nuget.org policy is bound to this repository and to this file's name (build_publish_master.yml); renaming
+# the file or moving the push to another workflow needs a new policy on nuget.org.
+permissions:
+ id-token: write
+ contents: read
+
jobs:
build:
@@ -24,13 +32,22 @@ jobs:
run: dotnet restore AustinHarris.JsonRpc.sln
# Building the solution packs every package project (GeneratePackageOnBuild); `dotnet pack` on the
# solution would trip NU5026 with GeneratePackageOnBuild, so the packages come from the build.
+ # ContinuousIntegrationBuild makes the build deterministic and lets Source Link map the symbols package
+ # (.snupkg, pushed alongside each .nupkg) back to this commit on GitHub.
- name: Build
- run: dotnet build AustinHarris.JsonRpc.sln --configuration Release --no-restore
+ run: dotnet build AustinHarris.JsonRpc.sln --configuration Release --no-restore -p:ContinuousIntegrationBuild=true
- name: Test
run: dotnet test AustinHarris.JsonRpcTestN --configuration Release --no-build
+ # The key is requested after the tests so it is fresh for the push (it expires after one hour). `user` is the
+ # nuget.org profile that owns the packages and the trusted publishing policy.
+ - name: NuGet login (OIDC to a temporary API key)
+ uses: NuGet/login@v1
+ id: nuget-login
+ with:
+ user: AustinHarris
# Publish all four packages: the core and the three companions (Json.NET, System.Text.Json, ASP.NET Core).
- name: publish nuget version change
run: |
for project in Json-Rpc AustinHarris.JsonRpc.Newtonsoft AustinHarris.JsonRpc.SystemTextJson AustinHarris.JsonRpc.AspNetCore; do
- dotnet nuget push "$project/bin/Release/"*.nupkg --skip-duplicate --source "https://api.nuget.org/v3/index.json" --api-key ${{ secrets.NugetKey }} # API key for the NuGet feed
+ dotnet nuget push "$project/bin/Release/"*.nupkg --skip-duplicate --source "https://api.nuget.org/v3/index.json" --api-key "${{ steps.nuget-login.outputs.NUGET_API_KEY }}"
done
diff --git a/.github/workflows/build_pull_request.yml b/.github/workflows/build_pull_request.yml
index e22a198..62975b2 100644
--- a/.github/workflows/build_pull_request.yml
+++ b/.github/workflows/build_pull_request.yml
@@ -29,16 +29,8 @@ jobs:
# Building the solution packs every package project (GeneratePackageOnBuild); `dotnet pack` on the
# solution would trip NU5026 with GeneratePackageOnBuild, so the packages come from the build.
- name: Build
- run: dotnet build AustinHarris.JsonRpc.sln --configuration Release --no-restore --version-suffix ci-${{ github.run_id }}-${{ github.run_number }}
+ run: dotnet build AustinHarris.JsonRpc.sln --configuration Release --no-restore
- name: Test
run: dotnet test AustinHarris.JsonRpcTestN --configuration Release --no-build
- # Publish all four pre-release packages: the core and the three companions (Json.NET, System.Text.Json, ASP.NET Core).
- # Non-fatal: the build and tests are the pull-request verdict; a rejected key (403) or a fork's missing secret
- # shows as a warning here and fails loudly in the master workflow instead.
- - name: publish nuget version change
- if: ${{ matrix.os == 'ubuntu-latest' }}
- continue-on-error: true
- run: |
- for project in Json-Rpc AustinHarris.JsonRpc.Newtonsoft AustinHarris.JsonRpc.SystemTextJson AustinHarris.JsonRpc.AspNetCore; do
- dotnet nuget push "$project/bin/Release/"*.nupkg --skip-duplicate --source "https://api.nuget.org/v3/index.json" --api-key ${{ secrets.NugetKey }} # API key for the NuGet feed
- done
+ # Pull requests do not publish. Packages go out from the master workflow through Trusted Publishing, whose
+ # nuget.org policy is bound to build_publish_master.yml; nothing else can push.
diff --git a/AustinHarris.JsonRpc.AspNetCore/AustinHarris.JsonRpc.AspNetCore.csproj b/AustinHarris.JsonRpc.AspNetCore/AustinHarris.JsonRpc.AspNetCore.csproj
index 0ca9106..3869014 100644
--- a/AustinHarris.JsonRpc.AspNetCore/AustinHarris.JsonRpc.AspNetCore.csproj
+++ b/AustinHarris.JsonRpc.AspNetCore/AustinHarris.JsonRpc.AspNetCore.csproj
@@ -4,26 +4,34 @@
Austin Harris
Austin Harris
Json-Rpc.Net ASP.NET Core host
- ASP.NET Core / Kestrel hosting for JSON-RPC.Net: MapJsonRpc endpoint (PipeReader in, BodyWriter out, no strings), a raw Kestrel ConnectionHandler for JSON-RPC over TCP, and DI registration of services.
+ ASP.NET Core hosting for AustinHarris.JsonRpc. Adds HTTP endpoints and raw Kestrel connections over TCP, Unix sockets and named pipes, with dependency injection.
2.0.0
- https://github.com/Astn/JSON-RPC.NET/blob/master/CHANGELOG.md
- $(VersionSuffix)
+ preview.1
+ 2.0.0-preview.1, released with the core package. What is new: https://astn.github.io/JSON-RPC.NET/changelog.html. Upgrading from 1.x: https://astn.github.io/JSON-RPC.NET/upgrading.html
Austin Harris
- https://github.com/Astn/JSON-RPC.NET
+ https://astn.github.io/JSON-RPC.NET/aspnetcore.html
https://github.com/Astn/JSON-RPC.NET
git
MIT
README.md
- json-rpc;jsonrpc;json;rpc;server;aspnetcore;kestrel;pipelines
+ json-rpc;jsonrpc;json;rpc;server;aspnetcore;asp.net-core;kestrel;pipelines;tcp;net8.0;net10.0
net8.0;net10.0
latest
disable
+ true
+ $(NoWarn);CS1591
+ true
+ snupkg
+ true
+ true
+ icon.png
true
AustinHarris.JsonRpc.AspNetCore
+
diff --git a/AustinHarris.JsonRpc.AspNetCore/README.md b/AustinHarris.JsonRpc.AspNetCore/README.md
index 16aba34..97b8f9d 100644
--- a/AustinHarris.JsonRpc.AspNetCore/README.md
+++ b/AustinHarris.JsonRpc.AspNetCore/README.md
@@ -1,14 +1,17 @@
-# AustinHarris.JsonRpc.AspNetCore
+# `AustinHarris.JsonRpc.AspNetCore`
-Hosts [JSON-RPC.Net](https://github.com/Astn/JSON-RPC.NET) in ASP.NET Core. The core processes requests as
-UTF-8 bytes, so the HTTP endpoint reads the body with `PipeReader` and writes straight into
-`Response.BodyWriter`; nothing is turned into a string on the way through. A `ConnectionHandler` does the
-same for JSON-RPC over a raw Kestrel connection (TCP, Unix socket, named pipe).
+`AustinHarris.JsonRpc.AspNetCore` hosts
+[`AustinHarris.JsonRpc`](https://www.nuget.org/packages/AustinHarris.JsonRpc) 2.0 in ASP.NET Core
+and registers services through dependency injection.
+Choose it for an HTTP endpoint or raw Kestrel connections over TCP, Unix sockets or named pipes.
+
+The HTTP endpoint reads with `PipeReader` and writes to `Response.BodyWriter`
+without converting the document to a string.
## Install
-```
-dotnet add package AustinHarris.JsonRpc.AspNetCore
+```sh
+dotnet add package AustinHarris.JsonRpc.AspNetCore --prerelease
```
Targets `net8.0` and `net10.0`; depends on the `AustinHarris.JsonRpc` core package and the ASP.NET Core shared
diff --git a/AustinHarris.JsonRpc.Client.WP7/AustinHarris.JsonRpc.Client.WP7.csproj b/AustinHarris.JsonRpc.Client.WP7/AustinHarris.JsonRpc.Client.WP7.csproj
deleted file mode 100644
index fee5804..0000000
--- a/AustinHarris.JsonRpc.Client.WP7/AustinHarris.JsonRpc.Client.WP7.csproj
+++ /dev/null
@@ -1,109 +0,0 @@
-
-
-
- Debug
- AnyCPU
- 10.0.20506
- 2.0
- {BFF21670-9DEB-4E36-95F4-96FC9DC740A2}
- {C089C8C0-30E0-4E22-80C0-CE093F111A43};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}
- Library
- Properties
- AustinHarris.JsonRpc.Client.WP7
- AustinHarris.JsonRpc.Client.WP7
- v8.0
-
-
-
-
- WindowsPhone
- false
- true
- true
- SAK
- SAK
- SAK
- SAK
-
-
-
-
- 4.0
- 11.0
-
-
- true
- full
- false
- Bin\Debug
- DEBUG;TRACE;SILVERLIGHT;WINDOWS_PHONE
- true
- true
- prompt
- 4
-
-
- pdbonly
- true
- Bin\Release
- TRACE;SILVERLIGHT;WINDOWS_PHONE
- true
- true
- prompt
- 4
-
-
-
- Bin\x86\Debug
- true
- full
- false
-
-
-
- Bin\x86\Release
- pdbonly
- true
-
-
-
- Bin\ARM\Debug
- true
- full
- false
-
-
-
- Bin\ARM\Release
- pdbonly
- true
-
-
-
- ..\packages\Newtonsoft.Json.4.5.1\lib\sl4-windowsphone71\Newtonsoft.Json.dll
-
-
- ..\packages\Rx-Main.1.0.11226\lib\SL3-WP\System.Reactive.dll
-
-
-
-
- JsonRequest.cs
-
-
- JsonResponse.cs
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/AustinHarris.JsonRpc.Client.WP7/Properties/AssemblyInfo.cs b/AustinHarris.JsonRpc.Client.WP7/Properties/AssemblyInfo.cs
deleted file mode 100644
index d3f69ab..0000000
--- a/AustinHarris.JsonRpc.Client.WP7/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,35 +0,0 @@
-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("AustinHarris.JsonRpc.Client.WP7")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("AustinHarris.JsonRpc.Client.WP7")]
-[assembly: AssemblyCopyright("Copyright © 2012")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible
-// to COM components. If you need to access a type in this assembly from
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("913c7d78-8983-4ebb-9a6b-fe5cb4001abf")]
-
-// 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 Revision and Build Numbers
-// by using the '*' as shown below:
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/AustinHarris.JsonRpc.Client.WP7/client.cs b/AustinHarris.JsonRpc.Client.WP7/client.cs
deleted file mode 100644
index 108ea44..0000000
--- a/AustinHarris.JsonRpc.Client.WP7/client.cs
+++ /dev/null
@@ -1,148 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Net;
-using Newtonsoft.Json.Linq;
-using AustinHarris.JsonRpc;
-using System.Linq;
-using System.Reactive.Linq;
-using System.Reactive.Subjects;
-using System.Reactive.Concurrency;
-
-namespace AustinHarris.JsonRpc
-{
- public class JsonRpcClient
- {
- private static object idLock = new object();
- private static int id = 0;
- public Uri ServiceEndpoint = null;
-
- public JsonRpcClient(Uri serviceEndpoint)
- {
- ServiceEndpoint = serviceEndpoint;
- }
-
- private static Stream CopyAndClose(Stream inputStream)
- {
- const int readSize = 256;
- byte[] buffer = new byte[readSize];
- MemoryStream ms = new MemoryStream();
-
- int count = inputStream.Read(buffer, 0, readSize);
- while (count > 0)
- {
- ms.Write(buffer, 0, count);
- count = inputStream.Read(buffer, 0, readSize);
- }
- ms.Position = 0;
- inputStream.Close();
- return ms;
- }
-
- public IObservable> Invoke(string method, object arg, IScheduler scheduler)
- {
- var req = new AustinHarris.JsonRpc.JsonRequest()
- {
- Method = method,
- Params = new object[] { arg }
- };
- return Invoke(req, scheduler);
- }
-
- public IObservable> Invoke(string method, object[] args, IScheduler scheduler)
- {
- var req = new AustinHarris.JsonRpc.JsonRequest()
- {
- Method = method,
- Params = args
- };
- return Invoke(req,scheduler);
- }
-
- public IObservable> Invoke(JsonRequest jsonRpc, IScheduler scheduler)
- {
- var subj = new Subject>();
-
- int myId;
- lock (idLock)
- {
- myId = ++id;
- }
- jsonRpc.Id = myId.ToString();
-
- WebRequest req = null;
- try
- {
- req = HttpWebRequest.CreateHttp(new Uri(ServiceEndpoint + "?callid=" + myId.ToString()));
- req.Method = "Post";
- req.ContentType = "application/json-rpc";
- }
- catch (Exception ex)
- {
- return Observable.Throw>(ex);
- }
-
- var ar = req.BeginGetRequestStream(new AsyncCallback((iar) =>
- {
- HttpWebRequest request = null;
-
- try
- {
- request = (HttpWebRequest)iar.AsyncState;
- var json = Newtonsoft.Json.JsonConvert.SerializeObject(jsonRpc);
- var reqStream = req.EndGetRequestStream(iar);
- using (var stream = new StreamWriter(reqStream))
- {
- stream.Write(json);
- stream.Flush();
- stream.Close();
- }
- }
- catch (Exception ex)
- {
- subj.OnError(ex);
- }
-
- var rar = req.BeginGetResponse(new AsyncCallback((riar) =>
- {
- JsonResponse rjson = null;
- string sstream = "";
- try
- {
- var request1 = (HttpWebRequest)riar.AsyncState;
- var resp = (HttpWebResponse)request1.EndGetResponse(riar);
- var respStream = resp.GetResponseStream();
- using (var rstream = new StreamReader(CopyAndClose(respStream)))
- {
- sstream = rstream.ReadToEnd();
- }
-
- rjson = Newtonsoft.Json.JsonConvert.DeserializeObject>(sstream);
- }
- catch (Exception ex)
- {
- subj.OnError(ex);
- return;
- }
-
- try
- {
- if (rjson == null)
- {
- JObject jo = Newtonsoft.Json.JsonConvert.DeserializeObject(sstream) as JObject;
- subj.OnError(new Exception(jo["Error"].ToString()));
- return;
- }
- }
- catch (Exception)
- { }
-
- subj.OnNext(rjson);
- subj.OnCompleted();
- }), request);
- }), req);
-
- return subj;
- }
- }
-}
diff --git a/AustinHarris.JsonRpc.Client.WP7Test/App.xaml b/AustinHarris.JsonRpc.Client.WP7Test/App.xaml
deleted file mode 100644
index 0eb20ff..0000000
--- a/AustinHarris.JsonRpc.Client.WP7Test/App.xaml
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/AustinHarris.JsonRpc.Client.WP7Test/App.xaml.cs b/AustinHarris.JsonRpc.Client.WP7Test/App.xaml.cs
deleted file mode 100644
index cf90a39..0000000
--- a/AustinHarris.JsonRpc.Client.WP7Test/App.xaml.cs
+++ /dev/null
@@ -1,142 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Net;
-using System.Windows;
-using System.Windows.Controls;
-using System.Windows.Documents;
-using System.Windows.Input;
-using System.Windows.Media;
-using System.Windows.Media.Animation;
-using System.Windows.Navigation;
-using System.Windows.Shapes;
-using Microsoft.Phone.Controls;
-using Microsoft.Phone.Shell;
-
-namespace AustinHarris.JsonRpc.Client.WP7Test
-{
- public partial class App : Application
- {
- ///
- /// Provides easy access to the root frame of the Phone Application.
- ///
- /// The root frame of the Phone Application.
- public PhoneApplicationFrame RootFrame { get; private set; }
-
- ///
- /// Constructor for the Application object.
- ///
- public App()
- {
- // Global handler for uncaught exceptions.
- UnhandledException += Application_UnhandledException;
-
- // Standard Silverlight initialization
- InitializeComponent();
-
- // Phone-specific initialization
- InitializePhoneApplication();
-
- // Show graphics profiling information while debugging.
- if (System.Diagnostics.Debugger.IsAttached)
- {
- // Display the current frame rate counters.
- Application.Current.Host.Settings.EnableFrameRateCounter = true;
-
- // Show the areas of the app that are being redrawn in each frame.
- //Application.Current.Host.Settings.EnableRedrawRegions = true;
-
- // Enable non-production analysis visualization mode,
- // which shows areas of a page that are handed off to GPU with a colored overlay.
- //Application.Current.Host.Settings.EnableCacheVisualization = true;
-
- // Disable the application idle detection by setting the UserIdleDetectionMode property of the
- // application's PhoneApplicationService object to Disabled.
- // Caution:- Use this under debug mode only. Application that disables user idle detection will continue to run
- // and consume battery power when the user is not using the phone.
- PhoneApplicationService.Current.UserIdleDetectionMode = IdleDetectionMode.Disabled;
- }
-
- }
-
- // Code to execute when the application is launching (eg, from Start)
- // This code will not execute when the application is reactivated
- private void Application_Launching(object sender, LaunchingEventArgs e)
- {
- }
-
- // Code to execute when the application is activated (brought to foreground)
- // This code will not execute when the application is first launched
- private void Application_Activated(object sender, ActivatedEventArgs e)
- {
- }
-
- // Code to execute when the application is deactivated (sent to background)
- // This code will not execute when the application is closing
- private void Application_Deactivated(object sender, DeactivatedEventArgs e)
- {
- }
-
- // Code to execute when the application is closing (eg, user hit Back)
- // This code will not execute when the application is deactivated
- private void Application_Closing(object sender, ClosingEventArgs e)
- {
- }
-
- // Code to execute if a navigation fails
- private void RootFrame_NavigationFailed(object sender, NavigationFailedEventArgs e)
- {
- if (System.Diagnostics.Debugger.IsAttached)
- {
- // A navigation has failed; break into the debugger
- System.Diagnostics.Debugger.Break();
- }
- }
-
- // Code to execute on Unhandled Exceptions
- private void Application_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e)
- {
- if (System.Diagnostics.Debugger.IsAttached)
- {
- // An unhandled exception has occurred; break into the debugger
- System.Diagnostics.Debugger.Break();
- }
- }
-
- #region Phone application initialization
-
- // Avoid double-initialization
- private bool phoneApplicationInitialized = false;
-
- // Do not add any additional code to this method
- private void InitializePhoneApplication()
- {
- if (phoneApplicationInitialized)
- return;
-
- // Create the frame but don't set it as RootVisual yet; this allows the splash
- // screen to remain active until the application is ready to render.
- RootFrame = new PhoneApplicationFrame();
- RootFrame.Navigated += CompleteInitializePhoneApplication;
-
- // Handle navigation failures
- RootFrame.NavigationFailed += RootFrame_NavigationFailed;
-
- // Ensure we don't initialize again
- phoneApplicationInitialized = true;
- }
-
- // Do not add any additional code to this method
- private void CompleteInitializePhoneApplication(object sender, NavigationEventArgs e)
- {
- // Set the root visual to allow the application to render
- if (RootVisual != RootFrame)
- RootVisual = RootFrame;
-
- // Remove this handler since it is no longer needed
- RootFrame.Navigated -= CompleteInitializePhoneApplication;
- }
-
- #endregion
- }
-}
\ No newline at end of file
diff --git a/AustinHarris.JsonRpc.Client.WP7Test/ApplicationIcon.png b/AustinHarris.JsonRpc.Client.WP7Test/ApplicationIcon.png
deleted file mode 100644
index 5859393..0000000
Binary files a/AustinHarris.JsonRpc.Client.WP7Test/ApplicationIcon.png and /dev/null differ
diff --git a/AustinHarris.JsonRpc.Client.WP7Test/AustinHarris.JsonRpc.Client.WP7Test.csproj b/AustinHarris.JsonRpc.Client.WP7Test/AustinHarris.JsonRpc.Client.WP7Test.csproj
deleted file mode 100644
index 0e22e65..0000000
--- a/AustinHarris.JsonRpc.Client.WP7Test/AustinHarris.JsonRpc.Client.WP7Test.csproj
+++ /dev/null
@@ -1,147 +0,0 @@
-
-
-
- Debug
- AnyCPU
- 10.0.20506
- 2.0
- {0838766E-01BD-4B62-9F0B-2C1FB3B39DBD}
- {C089C8C0-30E0-4E22-80C0-CE093F111A43};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}
- Library
- Properties
- AustinHarris.JsonRpc.Client.WP7Test
- AustinHarris.JsonRpc.Client.WP7Test
- v8.0
-
-
-
-
- WindowsPhone
- true
-
-
- true
- true
- AustinHarris.JsonRpc.Client.WP7Test_$(Configuration)_$(Platform).xap
- Properties\AppManifest.xml
- AustinHarris.JsonRpc.Client.WP7Test.App
- true
- true
- SAK
- SAK
- SAK
- SAK
-
-
-
-
- 4.0
- 11.0
-
-
- true
- full
- false
- Bin\Debug
- DEBUG;TRACE;SILVERLIGHT;WINDOWS_PHONE
- true
- true
- prompt
- 4
-
-
- pdbonly
- true
- Bin\Release
- TRACE;SILVERLIGHT;WINDOWS_PHONE
- true
- true
- prompt
- 4
-
-
-
- Bin\x86\Debug
- true
- full
- false
-
-
-
- Bin\x86\Release
- pdbonly
- true
-
-
-
- Bin\ARM\Debug
- true
- full
- false
-
-
-
- Bin\ARM\Release
- pdbonly
- true
-
-
-
- ..\packages\Rx-Main.1.0.11226\lib\SL3-WP\System.Reactive.dll
-
-
-
-
- App.xaml
-
-
- MainPage.xaml
-
-
-
-
-
- Designer
- MSBuild:Compile
- MSBuild:Compile
- Designer
-
-
- Designer
- MSBuild:Compile
- MSBuild:Compile
- Designer
-
-
-
-
-
- Designer
-
-
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
-
-
-
- {BFF21670-9DEB-4E36-95F4-96FC9DC740A2}
- AustinHarris.JsonRpc.Client.WP7
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/AustinHarris.JsonRpc.Client.WP7Test/Background.png b/AustinHarris.JsonRpc.Client.WP7Test/Background.png
deleted file mode 100644
index e46f21d..0000000
Binary files a/AustinHarris.JsonRpc.Client.WP7Test/Background.png and /dev/null differ
diff --git a/AustinHarris.JsonRpc.Client.WP7Test/MainPage.xaml b/AustinHarris.JsonRpc.Client.WP7Test/MainPage.xaml
deleted file mode 100644
index 4b513ff..0000000
--- a/AustinHarris.JsonRpc.Client.WP7Test/MainPage.xaml
+++ /dev/null
@@ -1,45 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/AustinHarris.JsonRpc.Client.WP7Test/MainPage.xaml.cs b/AustinHarris.JsonRpc.Client.WP7Test/MainPage.xaml.cs
deleted file mode 100644
index e4488a4..0000000
--- a/AustinHarris.JsonRpc.Client.WP7Test/MainPage.xaml.cs
+++ /dev/null
@@ -1,49 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Net;
-using System.Windows;
-using System.Windows.Controls;
-using System.Windows.Documents;
-using System.Windows.Input;
-using System.Windows.Media;
-using System.Windows.Media.Animation;
-using System.Windows.Shapes;
-using Microsoft.Phone.Controls;
-using System.Reactive.Concurrency;
-
-namespace AustinHarris.JsonRpc.Client.WP7Test
-{
- public partial class MainPage : PhoneApplicationPage
- {
- // Constructor
- public MainPage()
- {
- InitializeComponent();
- }
- JsonResponse