Added support react-native-windows dotNet
Added example for react-native-windows UWP based
Added example for react-native-windows dotNet based
Project structure:
CodePush.Shared - shared code between UWP and dotNet
CodePush - UWP specific code
CodePush.Net46 - dotNet specific code
For UWP solution it needs to be added the following projects:
CodePush.Shared
CodePush
For dotNet solution it needs to be added the following projects:
CodePush.Shared
CodePush.Net46
Examples:
Examples\CodePushDemoApp\windows\CodePushDemoApp.sln the solution contains both examples (UWP and dotNet).
Notes
Example for ARM configuration has not been tested. Since there is no changes in UWP part of implementation, there is low risk of failure.
In this implementation we tried to reuse UWP library as much as possible. The following issues are relevant for both platforms:
ZipFile.ExtractToDirectory is not reliable and throws exception if:
folder exists already
path is too long (> 250 chars)
Un-zipping is quite long operation. Does it make sense for async?
await UpdateUtils.UnzipBundleAsync(downloadFile.Path, unzippedFolder.Path);
The async calls in CodePush for ReactWindows can all be executed on any background thread, so adding .ConfigureAwait(false) can improve performance and reduce the likelihood of deadlock. The blocking calls in `InitializeUpdateAfterRestart()` were hanging, but now that .ConfigureAwait(false) is used pervasively, it is no longer a problem.
Fixes#550
Includes the following changes:
* UpdateState.Lastest -> UpdateState.Latest
* Added *Async suffix to Task returning methods
* Using DateTimeOffset in MinimumBackgroundListener
* Disposing IDisposable streams in UpdateManager.DownloadPackage
* Fix hint path for react-native-windows .csproj
* Update project.json to 5.2.2 to match latest ReactWindows project.
* Upgrading Newtonsoft.Json to match latest in ReactWindows.