فهرست منبع

Merge pull request #16 from xamarin/azure-mobile-app-v3

Azure mobile app v3
James Montemagno 9 سال پیش
والد
کامیت
007557ff0e
67فایلهای تغییر یافته به همراه1924 افزوده شده و 1840 حذف شده
  1. 11 7
      Demos/app-tasks/DevDaysTasks.Droid/DevDaysTasks.Droid.csproj
  2. 3 1
      Demos/app-tasks/DevDaysTasks.Droid/MainActivity.cs
  3. 6 6
      Demos/app-tasks/DevDaysTasks.Droid/packages.config
  4. 1 1
      Demos/app-tasks/DevDaysTasks.Shared/Helpers/Constants.cs
  5. 3 22
      Demos/app-tasks/DevDaysTasks.Shared/Services/TodoItemManager.cs
  6. 1 1
      Demos/app-tasks/DevDaysTasks.UWP/DevDaysTasks.UWP.nuget.targets
  7. 4 3
      Demos/app-tasks/DevDaysTasks.UWP/project.json
  8. 187 125
      Demos/app-tasks/DevDaysTasks.UWP/project.lock.json
  9. 3 2
      Demos/app-tasks/DevDaysTasks.iOS/AppDelegate.cs
  10. 10 6
      Demos/app-tasks/DevDaysTasks.iOS/DevDaysTasks.iOS.csproj
  11. 5 5
      Demos/app-tasks/DevDaysTasks.iOS/packages.config
  12. 7 49
      HandsOnLab/Finish/DevDaysSpeakers.sln
  13. 30 27
      HandsOnLab/Finish/DevDaysSpeakers/DevDaysSpeakers.Droid/DevDaysSpeakers.Droid.csproj
  14. 0 2
      HandsOnLab/Finish/DevDaysSpeakers/DevDaysSpeakers.Droid/MainActivity.cs
  15. 7 5
      HandsOnLab/Finish/DevDaysSpeakers/DevDaysSpeakers.Droid/packages.config
  16. 0 12
      HandsOnLab/Finish/DevDaysSpeakers/DevDaysSpeakers.Shared/App.cs
  17. 31 0
      HandsOnLab/Finish/DevDaysSpeakers/DevDaysSpeakers.Shared/DevDaysSpeakers.Shared.projitems
  18. 13 0
      HandsOnLab/Finish/DevDaysSpeakers/DevDaysSpeakers.Shared/DevDaysSpeakers.shproj
  19. 6 6
      HandsOnLab/Finish/DevDaysSpeakers/DevDaysSpeakers.Shared/Model/Speaker.cs
  20. 72 0
      HandsOnLab/Finish/DevDaysSpeakers/DevDaysSpeakers.Shared/Services/AzureService.cs
  21. 0 0
      HandsOnLab/Finish/DevDaysSpeakers/DevDaysSpeakers.Shared/View/DetailsPage.xaml
  22. 0 0
      HandsOnLab/Finish/DevDaysSpeakers/DevDaysSpeakers.Shared/View/DetailsPage.xaml.cs
  23. 0 0
      HandsOnLab/Finish/DevDaysSpeakers/DevDaysSpeakers.Shared/View/SpeakersPage.xaml
  24. 1 8
      HandsOnLab/Finish/DevDaysSpeakers/DevDaysSpeakers.Shared/View/SpeakersPage.xaml.cs
  25. 5 7
      HandsOnLab/Finish/DevDaysSpeakers/DevDaysSpeakers.Shared/ViewModel/SpeakersViewModel.cs
  26. 1 6
      HandsOnLab/Finish/DevDaysSpeakers/DevDaysSpeakers.UWP/DevDaysSpeakers.UWP.csproj
  27. 0 9
      HandsOnLab/Finish/DevDaysSpeakers/DevDaysSpeakers.UWP/DevDaysSpeakers.UWP.nuget.props
  28. 2 2
      HandsOnLab/Finish/DevDaysSpeakers/DevDaysSpeakers.UWP/DevDaysSpeakers.UWP.nuget.targets
  29. 5 6
      HandsOnLab/Finish/DevDaysSpeakers/DevDaysSpeakers.UWP/project.json
  30. 610 438
      HandsOnLab/Finish/DevDaysSpeakers/DevDaysSpeakers.UWP/project.lock.json
  31. 0 3
      HandsOnLab/Finish/DevDaysSpeakers/DevDaysSpeakers.iOS/AppDelegate.cs
  32. 26 26
      HandsOnLab/Finish/DevDaysSpeakers/DevDaysSpeakers.iOS/DevDaysSpeakers.iOS.csproj
  33. 6 5
      HandsOnLab/Finish/DevDaysSpeakers/DevDaysSpeakers.iOS/packages.config
  34. 0 135
      HandsOnLab/Finish/DevDaysSpeakers/DevDaysSpeakers/DevDaysSpeakers.csproj
  35. 0 4
      HandsOnLab/Finish/DevDaysSpeakers/DevDaysSpeakers/GettingStarted.Xamarin
  36. 0 36
      HandsOnLab/Finish/DevDaysSpeakers/DevDaysSpeakers/Properties/AssemblyInfo.cs
  37. 0 19
      HandsOnLab/Finish/DevDaysSpeakers/DevDaysSpeakers/app.config
  38. 0 13
      HandsOnLab/Finish/DevDaysSpeakers/DevDaysSpeakers/packages.config
  39. 42 39
      HandsOnLab/README.md
  40. 7 49
      HandsOnLab/Start/DevDaysSpeakers.sln
  41. 30 27
      HandsOnLab/Start/DevDaysSpeakers/DevDaysSpeakers.Droid/DevDaysSpeakers.Droid.csproj
  42. 0 2
      HandsOnLab/Start/DevDaysSpeakers/DevDaysSpeakers.Droid/MainActivity.cs
  43. 7 5
      HandsOnLab/Start/DevDaysSpeakers/DevDaysSpeakers.Droid/packages.config
  44. 0 2
      HandsOnLab/Start/DevDaysSpeakers/DevDaysSpeakers.Shared/App.cs
  45. 31 0
      HandsOnLab/Start/DevDaysSpeakers/DevDaysSpeakers.Shared/DevDaysSpeakers.Shared.projitems
  46. 13 0
      HandsOnLab/Start/DevDaysSpeakers/DevDaysSpeakers.Shared/DevDaysSpeakers.shproj
  47. 18 0
      HandsOnLab/Start/DevDaysSpeakers/DevDaysSpeakers.Shared/Model/Speaker.cs
  48. 69 0
      HandsOnLab/Start/DevDaysSpeakers/DevDaysSpeakers.Shared/Services/AzureService.cs
  49. 0 0
      HandsOnLab/Start/DevDaysSpeakers/DevDaysSpeakers.Shared/View/DetailsPage.xaml
  50. 0 0
      HandsOnLab/Start/DevDaysSpeakers/DevDaysSpeakers.Shared/View/DetailsPage.xaml.cs
  51. 0 0
      HandsOnLab/Start/DevDaysSpeakers/DevDaysSpeakers.Shared/View/SpeakersPage.xaml
  52. 0 2
      HandsOnLab/Start/DevDaysSpeakers/DevDaysSpeakers.Shared/View/SpeakersPage.xaml.cs
  53. 1 1
      HandsOnLab/Start/DevDaysSpeakers/DevDaysSpeakers.Shared/ViewModel/SpeakersViewModel.cs
  54. 1 6
      HandsOnLab/Start/DevDaysSpeakers/DevDaysSpeakers.UWP/DevDaysSpeakers.UWP.csproj
  55. 0 9
      HandsOnLab/Start/DevDaysSpeakers/DevDaysSpeakers.UWP/DevDaysSpeakers.UWP.nuget.props
  56. 2 2
      HandsOnLab/Start/DevDaysSpeakers/DevDaysSpeakers.UWP/DevDaysSpeakers.UWP.nuget.targets
  57. 5 6
      HandsOnLab/Start/DevDaysSpeakers/DevDaysSpeakers.UWP/project.json
  58. 610 438
      HandsOnLab/Start/DevDaysSpeakers/DevDaysSpeakers.UWP/project.lock.json
  59. 0 3
      HandsOnLab/Start/DevDaysSpeakers/DevDaysSpeakers.iOS/AppDelegate.cs
  60. 26 26
      HandsOnLab/Start/DevDaysSpeakers/DevDaysSpeakers.iOS/DevDaysSpeakers.iOS.csproj
  61. 6 5
      HandsOnLab/Start/DevDaysSpeakers/DevDaysSpeakers.iOS/packages.config
  62. 0 136
      HandsOnLab/Start/DevDaysSpeakers/DevDaysSpeakers/DevDaysSpeakers.csproj
  63. 0 4
      HandsOnLab/Start/DevDaysSpeakers/DevDaysSpeakers/GettingStarted.Xamarin
  64. 0 13
      HandsOnLab/Start/DevDaysSpeakers/DevDaysSpeakers/Model/Speaker.cs
  65. 0 36
      HandsOnLab/Start/DevDaysSpeakers/DevDaysSpeakers/Properties/AssemblyInfo.cs
  66. 0 19
      HandsOnLab/Start/DevDaysSpeakers/DevDaysSpeakers/app.config
  67. 0 13
      HandsOnLab/Start/DevDaysSpeakers/DevDaysSpeakers/packages.config

+ 11 - 7
Demos/app-tasks/DevDaysTasks.Droid/DevDaysTasks.Droid.csproj

@@ -56,15 +56,15 @@
       <Private>True</Private>
     </Reference>
     <Reference Include="Microsoft.WindowsAzure.Mobile, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <HintPath>..\packages\Microsoft.Azure.Mobile.Client.3.0.1\lib\monoandroid\Microsoft.WindowsAzure.Mobile.dll</HintPath>
+      <HintPath>..\packages\Microsoft.Azure.Mobile.Client.3.0.2\lib\monoandroid\Microsoft.WindowsAzure.Mobile.dll</HintPath>
       <Private>True</Private>
     </Reference>
     <Reference Include="Microsoft.WindowsAzure.Mobile.Ext, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <HintPath>..\packages\Microsoft.Azure.Mobile.Client.3.0.1\lib\monoandroid\Microsoft.WindowsAzure.Mobile.Ext.dll</HintPath>
+      <HintPath>..\packages\Microsoft.Azure.Mobile.Client.3.0.2\lib\monoandroid\Microsoft.WindowsAzure.Mobile.Ext.dll</HintPath>
       <Private>True</Private>
     </Reference>
     <Reference Include="Microsoft.WindowsAzure.Mobile.SQLiteStore, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <HintPath>..\packages\Microsoft.Azure.Mobile.Client.SQLiteStore.3.0.1\lib\portable-win+net45+wp8+wpa81+monotouch10+monoandroid10+xamarinios10\Microsoft.WindowsAzure.Mobile.SQLiteStore.dll</HintPath>
+      <HintPath>..\packages\Microsoft.Azure.Mobile.Client.SQLiteStore.3.0.2\lib\portable-win+net45+wp8+wpa81+monotouch10+monoandroid10+xamarinios10\Microsoft.WindowsAzure.Mobile.SQLiteStore.dll</HintPath>
       <Private>True</Private>
     </Reference>
     <Reference Include="Newtonsoft.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
@@ -72,19 +72,23 @@
       <Private>True</Private>
     </Reference>
     <Reference Include="SQLitePCLRaw.batteries_green, Version=1.0.0.0, Culture=neutral, PublicKeyToken=a84b7dcfb1391f7f, processorArchitecture=MSIL">
-      <HintPath>..\packages\SQLitePCLRaw.bundle_green.1.0.1\lib\MonoAndroid\SQLitePCLRaw.batteries_green.dll</HintPath>
+      <HintPath>..\packages\SQLitePCLRaw.bundle_green.1.1.0\lib\MonoAndroid\SQLitePCLRaw.batteries_green.dll</HintPath>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="SQLitePCLRaw.batteries_v2, Version=1.0.0.0, Culture=neutral, PublicKeyToken=8226ea5df37bcae9, processorArchitecture=MSIL">
+      <HintPath>..\packages\SQLitePCLRaw.bundle_green.1.1.0\lib\MonoAndroid\SQLitePCLRaw.batteries_v2.dll</HintPath>
       <Private>True</Private>
     </Reference>
     <Reference Include="SQLitePCLRaw.core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1488e028ca7ab535, processorArchitecture=MSIL">
-      <HintPath>..\packages\SQLitePCLRaw.core.1.0.1\lib\MonoAndroid\SQLitePCLRaw.core.dll</HintPath>
+      <HintPath>..\packages\SQLitePCLRaw.core.1.1.0\lib\MonoAndroid\SQLitePCLRaw.core.dll</HintPath>
       <Private>True</Private>
     </Reference>
     <Reference Include="SQLitePCLRaw.lib.e_sqlite3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=e4ad490600e2234c, processorArchitecture=MSIL">
-      <HintPath>..\packages\SQLitePCLRaw.lib.e_sqlite3.android.1.0.1\lib\MonoAndroid\SQLitePCLRaw.lib.e_sqlite3.dll</HintPath>
+      <HintPath>..\packages\SQLitePCLRaw.lib.e_sqlite3.android.1.1.0\lib\MonoAndroid\SQLitePCLRaw.lib.e_sqlite3.dll</HintPath>
       <Private>True</Private>
     </Reference>
     <Reference Include="SQLitePCLRaw.provider.e_sqlite3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=9c301db686d0bd12, processorArchitecture=MSIL">
-      <HintPath>..\packages\SQLitePCLRaw.provider.e_sqlite3.android.1.0.1\lib\MonoAndroid\SQLitePCLRaw.provider.e_sqlite3.dll</HintPath>
+      <HintPath>..\packages\SQLitePCLRaw.provider.e_sqlite3.android.1.1.0\lib\MonoAndroid\SQLitePCLRaw.provider.e_sqlite3.dll</HintPath>
       <Private>True</Private>
     </Reference>
     <Reference Include="System" />

+ 3 - 1
Demos/app-tasks/DevDaysTasks.Droid/MainActivity.cs

@@ -9,6 +9,7 @@ using Android.Widget;
 using Android.OS;
 using Xamarin.Forms.Platform.Android;
 using Xamarin.Forms;
+using Microsoft.WindowsAzure.MobileServices;
 
 namespace DevDaysTasks.Droid
 {
@@ -25,7 +26,8 @@ namespace DevDaysTasks.Droid
 
             base.OnCreate (bundle);
 
-			Forms.Init (this, bundle);
+            CurrentPlatform.Init();
+            Forms.Init (this, bundle);
 			LoadApplication (new App ());
 		}
 	}

+ 6 - 6
Demos/app-tasks/DevDaysTasks.Droid/packages.config

@@ -1,15 +1,15 @@
 <?xml version="1.0" encoding="utf-8"?>
 <packages>
-  <package id="Microsoft.Azure.Mobile.Client" version="3.0.1" targetFramework="monoandroid60" />
-  <package id="Microsoft.Azure.Mobile.Client.SQLiteStore" version="3.0.1" targetFramework="monoandroid60" />
+  <package id="Microsoft.Azure.Mobile.Client" version="3.0.2" targetFramework="monoandroid60" />
+  <package id="Microsoft.Azure.Mobile.Client.SQLiteStore" version="3.0.2" targetFramework="monoandroid60" />
   <package id="Microsoft.Bcl" version="1.1.10" targetFramework="monoandroid60" />
   <package id="Microsoft.Bcl.Build" version="1.0.21" targetFramework="monoandroid60" />
   <package id="Microsoft.Net.Http" version="2.2.29" targetFramework="monoandroid60" />
   <package id="Newtonsoft.Json" version="9.0.1" targetFramework="monoandroid60" />
-  <package id="SQLitePCLRaw.bundle_green" version="1.0.1" targetFramework="monoandroid60" />
-  <package id="SQLitePCLRaw.core" version="1.0.1" targetFramework="monoandroid60" />
-  <package id="SQLitePCLRaw.lib.e_sqlite3.android" version="1.0.1" targetFramework="monoandroid60" />
-  <package id="SQLitePCLRaw.provider.e_sqlite3.android" version="1.0.1" targetFramework="monoandroid60" />
+  <package id="SQLitePCLRaw.bundle_green" version="1.1.0" targetFramework="monoandroid60" />
+  <package id="SQLitePCLRaw.core" version="1.1.0" targetFramework="monoandroid60" />
+  <package id="SQLitePCLRaw.lib.e_sqlite3.android" version="1.1.0" targetFramework="monoandroid60" />
+  <package id="SQLitePCLRaw.provider.e_sqlite3.android" version="1.1.0" targetFramework="monoandroid60" />
   <package id="Xamarin.Android.Support.Animated.Vector.Drawable" version="23.3.0" targetFramework="monoandroid60" />
   <package id="Xamarin.Android.Support.Design" version="23.3.0" targetFramework="monoandroid60" />
   <package id="Xamarin.Android.Support.v4" version="23.3.0" targetFramework="monoandroid60" />

+ 1 - 1
Demos/app-tasks/DevDaysTasks.Shared/Helpers/Constants.cs

@@ -6,7 +6,7 @@ namespace DevDaysTasks
 	{
 		// Replace strings with your mobile services and gateway URLs.
 		public static string ApplicationURL =
-            @"https://YOUR-APP-URL.azurewebsites.net";
+            @"https://myawesomebackend.azurewebsites.net";
 	}
 }
 

+ 3 - 22
Demos/app-tasks/DevDaysTasks.Shared/Services/TodoItemManager.cs

@@ -27,7 +27,9 @@ namespace DevDaysTasks
 
             client = new MobileServiceClient(Constants.ApplicationURL);
 
-            var path = InitializeDatabase();
+            var path = "syncstore.db";
+            path = Path.Combine(MobileServiceClient.DefaultDatabasePath, path);
+
             var store = new MobileServiceSQLiteStore(path);
             store.DefineTable<TodoItem>();
 
@@ -38,27 +40,6 @@ namespace DevDaysTasks
 
         }
 
-        private string InitializeDatabase()
-        {
-#if __ANDROID__ || __IOS__
-            CurrentPlatform.Init();
-#endif
-            SQLitePCL.Batteries.Init();
-
-            var path = "localstore.db";
-
-#if __ANDROID__
-            path = Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal), path);
-
-            if (!File.Exists(path))
-            {
-                File.Create(path).Dispose();
-            }
-#endif
-
-            return path;
-        }
-
         public static TodoItemManager DefaultManager
         {
             get

+ 1 - 1
Demos/app-tasks/DevDaysTasks.UWP/DevDaysTasks.UWP.nuget.targets

@@ -5,7 +5,7 @@
   </PropertyGroup>
   <ImportGroup>
     <Import Project="$(NuGetPackageRoot)\Microsoft.Bcl.Build\1.0.21\build\Microsoft.Bcl.Build.targets" Condition="Exists('$(NuGetPackageRoot)\Microsoft.Bcl.Build\1.0.21\build\Microsoft.Bcl.Build.targets')" />
-    <Import Project="$(NuGetPackageRoot)\SQLitePCLRaw.lib.e_sqlite3.v140\1.0.0\build\SQLitePCLRaw.lib.e_sqlite3.v140.targets" Condition="Exists('$(NuGetPackageRoot)\SQLitePCLRaw.lib.e_sqlite3.v140\1.0.0\build\SQLitePCLRaw.lib.e_sqlite3.v140.targets')" />
+    <Import Project="$(NuGetPackageRoot)\SQLitePCLRaw.lib.e_sqlite3.v140\1.1.0\build\SQLitePCLRaw.lib.e_sqlite3.v140.targets" Condition="Exists('$(NuGetPackageRoot)\SQLitePCLRaw.lib.e_sqlite3.v140\1.1.0\build\SQLitePCLRaw.lib.e_sqlite3.v140.targets')" />
     <Import Project="$(NuGetPackageRoot)\Xamarin.Forms\2.3.2.127\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets" Condition="Exists('$(NuGetPackageRoot)\Xamarin.Forms\2.3.2.127\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets')" />
   </ImportGroup>
 </Project>

+ 4 - 3
Demos/app-tasks/DevDaysTasks.UWP/project.json

@@ -1,13 +1,14 @@
 {
   "dependencies": {
-    "Microsoft.Azure.Mobile.Client": "3.0.1",
-    "Microsoft.Azure.Mobile.Client.SQLiteStore": "3.0.1",
+    "Microsoft.Azure.Mobile.Client": "3.0.2",
+    "Microsoft.Azure.Mobile.Client.SQLiteStore": "3.0.2",
     "Microsoft.Bcl": "1.1.10",
     "Microsoft.Bcl.Build": "1.0.21",
     "Microsoft.Net.Http": "2.2.29",
     "Microsoft.NETCore.UniversalWindowsPlatform": "5.2.2",
     "Newtonsoft.Json": "9.0.1",
-    "SQLitePCLRaw.core": "1.0.1",
+    "SQLitePCLRaw.bundle_green": "1.1.0",
+    "SQLitePCLRaw.core": "1.1.0",
     "Xamarin.Forms": "2.3.2.127"
   },
   "frameworks": {

+ 187 - 125
Demos/app-tasks/DevDaysTasks.UWP/project.lock.json

@@ -3,7 +3,7 @@
   "version": 2,
   "targets": {
     "UAP,Version=v10.0": {
-      "Microsoft.Azure.Mobile.Client/3.0.1": {
+      "Microsoft.Azure.Mobile.Client/3.0.2": {
         "type": "package",
         "dependencies": {
           "Microsoft.Bcl": "1.1.10",
@@ -23,10 +23,10 @@
           "lib/netcore45/Microsoft.WindowsAzure.Mobile.dll": {}
         }
       },
-      "Microsoft.Azure.Mobile.Client.SQLiteStore/3.0.1": {
+      "Microsoft.Azure.Mobile.Client.SQLiteStore/3.0.2": {
         "type": "package",
         "dependencies": {
-          "Microsoft.Azure.Mobile.Client": "2.0.0",
+          "Microsoft.Azure.Mobile.Client": "3.0.2",
           "Microsoft.Bcl": "1.1.10",
           "Microsoft.Bcl.Build": "1.0.21",
           "Microsoft.Net.Http": "2.2.29",
@@ -437,21 +437,23 @@
           "lib/netstandard1.0/_._": {}
         }
       },
-      "SQLitePCLRaw.bundle_green/1.0.0": {
+      "SQLitePCLRaw.bundle_green/1.1.0": {
         "type": "package",
         "dependencies": {
-          "SQLitePCLRaw.core": "1.0.0",
-          "SQLitePCLRaw.lib.e_sqlite3.v140": "1.0.0",
-          "SQLitePCLRaw.provider.e_sqlite3.uwp10": "1.0.0"
+          "SQLitePCLRaw.core": "1.1.0",
+          "SQLitePCLRaw.lib.e_sqlite3.v140": "1.1.0",
+          "SQLitePCLRaw.provider.e_sqlite3.uwp10": "1.1.0"
         },
         "compile": {
-          "lib/uap10.0/SQLitePCLRaw.batteries_green.dll": {}
+          "lib/uap10.0/SQLitePCLRaw.batteries_green.dll": {},
+          "lib/uap10.0/SQLitePCLRaw.batteries_v2.dll": {}
         },
         "runtime": {
-          "lib/uap10.0/SQLitePCLRaw.batteries_green.dll": {}
+          "lib/uap10.0/SQLitePCLRaw.batteries_green.dll": {},
+          "lib/uap10.0/SQLitePCLRaw.batteries_v2.dll": {}
         }
       },
-      "SQLitePCLRaw.core/1.0.1": {
+      "SQLitePCLRaw.core/1.1.0": {
         "type": "package",
         "dependencies": {
           "NETStandard.Library": "1.6.0"
@@ -463,14 +465,28 @@
           "lib/uap10.0/SQLitePCLRaw.core.dll": {}
         }
       },
-      "SQLitePCLRaw.lib.e_sqlite3.v140/1.0.0": {
-        "type": "package"
+      "SQLitePCLRaw.lib.e_sqlite3.v140/1.1.0": {
+        "type": "package",
+        "runtimeTargets": {
+          "runtimes/win10-arm/native/e_sqlite3.dll": {
+            "assetType": "native",
+            "rid": "win10-arm"
+          },
+          "runtimes/win10-x64/native/e_sqlite3.dll": {
+            "assetType": "native",
+            "rid": "win10-x64"
+          },
+          "runtimes/win10-x86/native/e_sqlite3.dll": {
+            "assetType": "native",
+            "rid": "win10-x86"
+          }
+        }
       },
-      "SQLitePCLRaw.provider.e_sqlite3.uwp10/1.0.0": {
+      "SQLitePCLRaw.provider.e_sqlite3.uwp10/1.1.0": {
         "type": "package",
         "dependencies": {
           "NETStandard.Library": "1.6.0",
-          "SQLitePCLRaw.core": "1.0.0"
+          "SQLitePCLRaw.core": "1.1.0"
         },
         "compile": {
           "lib/uap10.0/SQLitePCLRaw.provider.e_sqlite3.dll": {}
@@ -2369,7 +2385,7 @@
       }
     },
     "UAP,Version=v10.0/win10-arm": {
-      "Microsoft.Azure.Mobile.Client/3.0.1": {
+      "Microsoft.Azure.Mobile.Client/3.0.2": {
         "type": "package",
         "dependencies": {
           "Microsoft.Bcl": "1.1.10",
@@ -2389,10 +2405,10 @@
           "lib/netcore45/Microsoft.WindowsAzure.Mobile.dll": {}
         }
       },
-      "Microsoft.Azure.Mobile.Client.SQLiteStore/3.0.1": {
+      "Microsoft.Azure.Mobile.Client.SQLiteStore/3.0.2": {
         "type": "package",
         "dependencies": {
-          "Microsoft.Azure.Mobile.Client": "2.0.0",
+          "Microsoft.Azure.Mobile.Client": "3.0.2",
           "Microsoft.Bcl": "1.1.10",
           "Microsoft.Bcl.Build": "1.0.21",
           "Microsoft.Net.Http": "2.2.29",
@@ -3076,21 +3092,23 @@
           "runtimes/win8-arm/native/clrcompression.dll": {}
         }
       },
-      "SQLitePCLRaw.bundle_green/1.0.0": {
+      "SQLitePCLRaw.bundle_green/1.1.0": {
         "type": "package",
         "dependencies": {
-          "SQLitePCLRaw.core": "1.0.0",
-          "SQLitePCLRaw.lib.e_sqlite3.v140": "1.0.0",
-          "SQLitePCLRaw.provider.e_sqlite3.uwp10": "1.0.0"
+          "SQLitePCLRaw.core": "1.1.0",
+          "SQLitePCLRaw.lib.e_sqlite3.v140": "1.1.0",
+          "SQLitePCLRaw.provider.e_sqlite3.uwp10": "1.1.0"
         },
         "compile": {
-          "lib/uap10.0/SQLitePCLRaw.batteries_green.dll": {}
+          "lib/uap10.0/SQLitePCLRaw.batteries_green.dll": {},
+          "lib/uap10.0/SQLitePCLRaw.batteries_v2.dll": {}
         },
         "runtime": {
-          "lib/uap10.0/SQLitePCLRaw.batteries_green.dll": {}
+          "lib/uap10.0/SQLitePCLRaw.batteries_green.dll": {},
+          "lib/uap10.0/SQLitePCLRaw.batteries_v2.dll": {}
         }
       },
-      "SQLitePCLRaw.core/1.0.1": {
+      "SQLitePCLRaw.core/1.1.0": {
         "type": "package",
         "dependencies": {
           "NETStandard.Library": "1.6.0"
@@ -3102,14 +3120,17 @@
           "lib/uap10.0/SQLitePCLRaw.core.dll": {}
         }
       },
-      "SQLitePCLRaw.lib.e_sqlite3.v140/1.0.0": {
-        "type": "package"
+      "SQLitePCLRaw.lib.e_sqlite3.v140/1.1.0": {
+        "type": "package",
+        "native": {
+          "runtimes/win10-arm/native/e_sqlite3.dll": {}
+        }
       },
-      "SQLitePCLRaw.provider.e_sqlite3.uwp10/1.0.0": {
+      "SQLitePCLRaw.provider.e_sqlite3.uwp10/1.1.0": {
         "type": "package",
         "dependencies": {
           "NETStandard.Library": "1.6.0",
-          "SQLitePCLRaw.core": "1.0.0"
+          "SQLitePCLRaw.core": "1.1.0"
         },
         "compile": {
           "lib/uap10.0/SQLitePCLRaw.provider.e_sqlite3.dll": {}
@@ -4849,7 +4870,7 @@
       }
     },
     "UAP,Version=v10.0/win10-arm-aot": {
-      "Microsoft.Azure.Mobile.Client/3.0.1": {
+      "Microsoft.Azure.Mobile.Client/3.0.2": {
         "type": "package",
         "dependencies": {
           "Microsoft.Bcl": "1.1.10",
@@ -4869,10 +4890,10 @@
           "lib/netcore45/Microsoft.WindowsAzure.Mobile.dll": {}
         }
       },
-      "Microsoft.Azure.Mobile.Client.SQLiteStore/3.0.1": {
+      "Microsoft.Azure.Mobile.Client.SQLiteStore/3.0.2": {
         "type": "package",
         "dependencies": {
-          "Microsoft.Azure.Mobile.Client": "2.0.0",
+          "Microsoft.Azure.Mobile.Client": "3.0.2",
           "Microsoft.Bcl": "1.1.10",
           "Microsoft.Bcl.Build": "1.0.21",
           "Microsoft.Net.Http": "2.2.29",
@@ -5595,21 +5616,23 @@
           "runtimes/win8-arm-aot/native/_._": {}
         }
       },
-      "SQLitePCLRaw.bundle_green/1.0.0": {
+      "SQLitePCLRaw.bundle_green/1.1.0": {
         "type": "package",
         "dependencies": {
-          "SQLitePCLRaw.core": "1.0.0",
-          "SQLitePCLRaw.lib.e_sqlite3.v140": "1.0.0",
-          "SQLitePCLRaw.provider.e_sqlite3.uwp10": "1.0.0"
+          "SQLitePCLRaw.core": "1.1.0",
+          "SQLitePCLRaw.lib.e_sqlite3.v140": "1.1.0",
+          "SQLitePCLRaw.provider.e_sqlite3.uwp10": "1.1.0"
         },
         "compile": {
-          "lib/uap10.0/SQLitePCLRaw.batteries_green.dll": {}
+          "lib/uap10.0/SQLitePCLRaw.batteries_green.dll": {},
+          "lib/uap10.0/SQLitePCLRaw.batteries_v2.dll": {}
         },
         "runtime": {
-          "lib/uap10.0/SQLitePCLRaw.batteries_green.dll": {}
+          "lib/uap10.0/SQLitePCLRaw.batteries_green.dll": {},
+          "lib/uap10.0/SQLitePCLRaw.batteries_v2.dll": {}
         }
       },
-      "SQLitePCLRaw.core/1.0.1": {
+      "SQLitePCLRaw.core/1.1.0": {
         "type": "package",
         "dependencies": {
           "NETStandard.Library": "1.6.0"
@@ -5621,14 +5644,17 @@
           "lib/uap10.0/SQLitePCLRaw.core.dll": {}
         }
       },
-      "SQLitePCLRaw.lib.e_sqlite3.v140/1.0.0": {
-        "type": "package"
+      "SQLitePCLRaw.lib.e_sqlite3.v140/1.1.0": {
+        "type": "package",
+        "native": {
+          "runtimes/win10-arm/native/e_sqlite3.dll": {}
+        }
       },
-      "SQLitePCLRaw.provider.e_sqlite3.uwp10/1.0.0": {
+      "SQLitePCLRaw.provider.e_sqlite3.uwp10/1.1.0": {
         "type": "package",
         "dependencies": {
           "NETStandard.Library": "1.6.0",
-          "SQLitePCLRaw.core": "1.0.0"
+          "SQLitePCLRaw.core": "1.1.0"
         },
         "compile": {
           "lib/uap10.0/SQLitePCLRaw.provider.e_sqlite3.dll": {}
@@ -7368,7 +7394,7 @@
       }
     },
     "UAP,Version=v10.0/win10-x64": {
-      "Microsoft.Azure.Mobile.Client/3.0.1": {
+      "Microsoft.Azure.Mobile.Client/3.0.2": {
         "type": "package",
         "dependencies": {
           "Microsoft.Bcl": "1.1.10",
@@ -7388,10 +7414,10 @@
           "lib/netcore45/Microsoft.WindowsAzure.Mobile.dll": {}
         }
       },
-      "Microsoft.Azure.Mobile.Client.SQLiteStore/3.0.1": {
+      "Microsoft.Azure.Mobile.Client.SQLiteStore/3.0.2": {
         "type": "package",
         "dependencies": {
-          "Microsoft.Azure.Mobile.Client": "2.0.0",
+          "Microsoft.Azure.Mobile.Client": "3.0.2",
           "Microsoft.Bcl": "1.1.10",
           "Microsoft.Bcl.Build": "1.0.21",
           "Microsoft.Net.Http": "2.2.29",
@@ -8084,21 +8110,23 @@
           "runtimes/win/lib/netcore50/System.Private.Uri.dll": {}
         }
       },
-      "SQLitePCLRaw.bundle_green/1.0.0": {
+      "SQLitePCLRaw.bundle_green/1.1.0": {
         "type": "package",
         "dependencies": {
-          "SQLitePCLRaw.core": "1.0.0",
-          "SQLitePCLRaw.lib.e_sqlite3.v140": "1.0.0",
-          "SQLitePCLRaw.provider.e_sqlite3.uwp10": "1.0.0"
+          "SQLitePCLRaw.core": "1.1.0",
+          "SQLitePCLRaw.lib.e_sqlite3.v140": "1.1.0",
+          "SQLitePCLRaw.provider.e_sqlite3.uwp10": "1.1.0"
         },
         "compile": {
-          "lib/uap10.0/SQLitePCLRaw.batteries_green.dll": {}
+          "lib/uap10.0/SQLitePCLRaw.batteries_green.dll": {},
+          "lib/uap10.0/SQLitePCLRaw.batteries_v2.dll": {}
         },
         "runtime": {
-          "lib/uap10.0/SQLitePCLRaw.batteries_green.dll": {}
+          "lib/uap10.0/SQLitePCLRaw.batteries_green.dll": {},
+          "lib/uap10.0/SQLitePCLRaw.batteries_v2.dll": {}
         }
       },
-      "SQLitePCLRaw.core/1.0.1": {
+      "SQLitePCLRaw.core/1.1.0": {
         "type": "package",
         "dependencies": {
           "NETStandard.Library": "1.6.0"
@@ -8110,14 +8138,17 @@
           "lib/uap10.0/SQLitePCLRaw.core.dll": {}
         }
       },
-      "SQLitePCLRaw.lib.e_sqlite3.v140/1.0.0": {
-        "type": "package"
+      "SQLitePCLRaw.lib.e_sqlite3.v140/1.1.0": {
+        "type": "package",
+        "native": {
+          "runtimes/win10-x64/native/e_sqlite3.dll": {}
+        }
       },
-      "SQLitePCLRaw.provider.e_sqlite3.uwp10/1.0.0": {
+      "SQLitePCLRaw.provider.e_sqlite3.uwp10/1.1.0": {
         "type": "package",
         "dependencies": {
           "NETStandard.Library": "1.6.0",
-          "SQLitePCLRaw.core": "1.0.0"
+          "SQLitePCLRaw.core": "1.1.0"
         },
         "compile": {
           "lib/uap10.0/SQLitePCLRaw.provider.e_sqlite3.dll": {}
@@ -9857,7 +9888,7 @@
       }
     },
     "UAP,Version=v10.0/win10-x64-aot": {
-      "Microsoft.Azure.Mobile.Client/3.0.1": {
+      "Microsoft.Azure.Mobile.Client/3.0.2": {
         "type": "package",
         "dependencies": {
           "Microsoft.Bcl": "1.1.10",
@@ -9877,10 +9908,10 @@
           "lib/netcore45/Microsoft.WindowsAzure.Mobile.dll": {}
         }
       },
-      "Microsoft.Azure.Mobile.Client.SQLiteStore/3.0.1": {
+      "Microsoft.Azure.Mobile.Client.SQLiteStore/3.0.2": {
         "type": "package",
         "dependencies": {
-          "Microsoft.Azure.Mobile.Client": "2.0.0",
+          "Microsoft.Azure.Mobile.Client": "3.0.2",
           "Microsoft.Bcl": "1.1.10",
           "Microsoft.Bcl.Build": "1.0.21",
           "Microsoft.Net.Http": "2.2.29",
@@ -10612,21 +10643,23 @@
           "runtimes/aot/lib/netcore50/System.Private.Uri.dll": {}
         }
       },
-      "SQLitePCLRaw.bundle_green/1.0.0": {
+      "SQLitePCLRaw.bundle_green/1.1.0": {
         "type": "package",
         "dependencies": {
-          "SQLitePCLRaw.core": "1.0.0",
-          "SQLitePCLRaw.lib.e_sqlite3.v140": "1.0.0",
-          "SQLitePCLRaw.provider.e_sqlite3.uwp10": "1.0.0"
+          "SQLitePCLRaw.core": "1.1.0",
+          "SQLitePCLRaw.lib.e_sqlite3.v140": "1.1.0",
+          "SQLitePCLRaw.provider.e_sqlite3.uwp10": "1.1.0"
         },
         "compile": {
-          "lib/uap10.0/SQLitePCLRaw.batteries_green.dll": {}
+          "lib/uap10.0/SQLitePCLRaw.batteries_green.dll": {},
+          "lib/uap10.0/SQLitePCLRaw.batteries_v2.dll": {}
         },
         "runtime": {
-          "lib/uap10.0/SQLitePCLRaw.batteries_green.dll": {}
+          "lib/uap10.0/SQLitePCLRaw.batteries_green.dll": {},
+          "lib/uap10.0/SQLitePCLRaw.batteries_v2.dll": {}
         }
       },
-      "SQLitePCLRaw.core/1.0.1": {
+      "SQLitePCLRaw.core/1.1.0": {
         "type": "package",
         "dependencies": {
           "NETStandard.Library": "1.6.0"
@@ -10638,14 +10671,17 @@
           "lib/uap10.0/SQLitePCLRaw.core.dll": {}
         }
       },
-      "SQLitePCLRaw.lib.e_sqlite3.v140/1.0.0": {
-        "type": "package"
+      "SQLitePCLRaw.lib.e_sqlite3.v140/1.1.0": {
+        "type": "package",
+        "native": {
+          "runtimes/win10-x64/native/e_sqlite3.dll": {}
+        }
       },
-      "SQLitePCLRaw.provider.e_sqlite3.uwp10/1.0.0": {
+      "SQLitePCLRaw.provider.e_sqlite3.uwp10/1.1.0": {
         "type": "package",
         "dependencies": {
           "NETStandard.Library": "1.6.0",
-          "SQLitePCLRaw.core": "1.0.0"
+          "SQLitePCLRaw.core": "1.1.0"
         },
         "compile": {
           "lib/uap10.0/SQLitePCLRaw.provider.e_sqlite3.dll": {}
@@ -12385,7 +12421,7 @@
       }
     },
     "UAP,Version=v10.0/win10-x86": {
-      "Microsoft.Azure.Mobile.Client/3.0.1": {
+      "Microsoft.Azure.Mobile.Client/3.0.2": {
         "type": "package",
         "dependencies": {
           "Microsoft.Bcl": "1.1.10",
@@ -12405,10 +12441,10 @@
           "lib/netcore45/Microsoft.WindowsAzure.Mobile.dll": {}
         }
       },
-      "Microsoft.Azure.Mobile.Client.SQLiteStore/3.0.1": {
+      "Microsoft.Azure.Mobile.Client.SQLiteStore/3.0.2": {
         "type": "package",
         "dependencies": {
-          "Microsoft.Azure.Mobile.Client": "2.0.0",
+          "Microsoft.Azure.Mobile.Client": "3.0.2",
           "Microsoft.Bcl": "1.1.10",
           "Microsoft.Bcl.Build": "1.0.21",
           "Microsoft.Net.Http": "2.2.29",
@@ -13101,21 +13137,23 @@
           "runtimes/win/lib/netcore50/System.Private.Uri.dll": {}
         }
       },
-      "SQLitePCLRaw.bundle_green/1.0.0": {
+      "SQLitePCLRaw.bundle_green/1.1.0": {
         "type": "package",
         "dependencies": {
-          "SQLitePCLRaw.core": "1.0.0",
-          "SQLitePCLRaw.lib.e_sqlite3.v140": "1.0.0",
-          "SQLitePCLRaw.provider.e_sqlite3.uwp10": "1.0.0"
+          "SQLitePCLRaw.core": "1.1.0",
+          "SQLitePCLRaw.lib.e_sqlite3.v140": "1.1.0",
+          "SQLitePCLRaw.provider.e_sqlite3.uwp10": "1.1.0"
         },
         "compile": {
-          "lib/uap10.0/SQLitePCLRaw.batteries_green.dll": {}
+          "lib/uap10.0/SQLitePCLRaw.batteries_green.dll": {},
+          "lib/uap10.0/SQLitePCLRaw.batteries_v2.dll": {}
         },
         "runtime": {
-          "lib/uap10.0/SQLitePCLRaw.batteries_green.dll": {}
+          "lib/uap10.0/SQLitePCLRaw.batteries_green.dll": {},
+          "lib/uap10.0/SQLitePCLRaw.batteries_v2.dll": {}
         }
       },
-      "SQLitePCLRaw.core/1.0.1": {
+      "SQLitePCLRaw.core/1.1.0": {
         "type": "package",
         "dependencies": {
           "NETStandard.Library": "1.6.0"
@@ -13127,14 +13165,17 @@
           "lib/uap10.0/SQLitePCLRaw.core.dll": {}
         }
       },
-      "SQLitePCLRaw.lib.e_sqlite3.v140/1.0.0": {
-        "type": "package"
+      "SQLitePCLRaw.lib.e_sqlite3.v140/1.1.0": {
+        "type": "package",
+        "native": {
+          "runtimes/win10-x86/native/e_sqlite3.dll": {}
+        }
       },
-      "SQLitePCLRaw.provider.e_sqlite3.uwp10/1.0.0": {
+      "SQLitePCLRaw.provider.e_sqlite3.uwp10/1.1.0": {
         "type": "package",
         "dependencies": {
           "NETStandard.Library": "1.6.0",
-          "SQLitePCLRaw.core": "1.0.0"
+          "SQLitePCLRaw.core": "1.1.0"
         },
         "compile": {
           "lib/uap10.0/SQLitePCLRaw.provider.e_sqlite3.dll": {}
@@ -14874,7 +14915,7 @@
       }
     },
     "UAP,Version=v10.0/win10-x86-aot": {
-      "Microsoft.Azure.Mobile.Client/3.0.1": {
+      "Microsoft.Azure.Mobile.Client/3.0.2": {
         "type": "package",
         "dependencies": {
           "Microsoft.Bcl": "1.1.10",
@@ -14894,10 +14935,10 @@
           "lib/netcore45/Microsoft.WindowsAzure.Mobile.dll": {}
         }
       },
-      "Microsoft.Azure.Mobile.Client.SQLiteStore/3.0.1": {
+      "Microsoft.Azure.Mobile.Client.SQLiteStore/3.0.2": {
         "type": "package",
         "dependencies": {
-          "Microsoft.Azure.Mobile.Client": "2.0.0",
+          "Microsoft.Azure.Mobile.Client": "3.0.2",
           "Microsoft.Bcl": "1.1.10",
           "Microsoft.Bcl.Build": "1.0.21",
           "Microsoft.Net.Http": "2.2.29",
@@ -15629,21 +15670,23 @@
           "runtimes/aot/lib/netcore50/System.Private.Uri.dll": {}
         }
       },
-      "SQLitePCLRaw.bundle_green/1.0.0": {
+      "SQLitePCLRaw.bundle_green/1.1.0": {
         "type": "package",
         "dependencies": {
-          "SQLitePCLRaw.core": "1.0.0",
-          "SQLitePCLRaw.lib.e_sqlite3.v140": "1.0.0",
-          "SQLitePCLRaw.provider.e_sqlite3.uwp10": "1.0.0"
+          "SQLitePCLRaw.core": "1.1.0",
+          "SQLitePCLRaw.lib.e_sqlite3.v140": "1.1.0",
+          "SQLitePCLRaw.provider.e_sqlite3.uwp10": "1.1.0"
         },
         "compile": {
-          "lib/uap10.0/SQLitePCLRaw.batteries_green.dll": {}
+          "lib/uap10.0/SQLitePCLRaw.batteries_green.dll": {},
+          "lib/uap10.0/SQLitePCLRaw.batteries_v2.dll": {}
         },
         "runtime": {
-          "lib/uap10.0/SQLitePCLRaw.batteries_green.dll": {}
+          "lib/uap10.0/SQLitePCLRaw.batteries_green.dll": {},
+          "lib/uap10.0/SQLitePCLRaw.batteries_v2.dll": {}
         }
       },
-      "SQLitePCLRaw.core/1.0.1": {
+      "SQLitePCLRaw.core/1.1.0": {
         "type": "package",
         "dependencies": {
           "NETStandard.Library": "1.6.0"
@@ -15655,14 +15698,17 @@
           "lib/uap10.0/SQLitePCLRaw.core.dll": {}
         }
       },
-      "SQLitePCLRaw.lib.e_sqlite3.v140/1.0.0": {
-        "type": "package"
+      "SQLitePCLRaw.lib.e_sqlite3.v140/1.1.0": {
+        "type": "package",
+        "native": {
+          "runtimes/win10-x86/native/e_sqlite3.dll": {}
+        }
       },
-      "SQLitePCLRaw.provider.e_sqlite3.uwp10/1.0.0": {
+      "SQLitePCLRaw.provider.e_sqlite3.uwp10/1.1.0": {
         "type": "package",
         "dependencies": {
           "NETStandard.Library": "1.6.0",
-          "SQLitePCLRaw.core": "1.0.0"
+          "SQLitePCLRaw.core": "1.1.0"
         },
         "compile": {
           "lib/uap10.0/SQLitePCLRaw.provider.e_sqlite3.dll": {}
@@ -17403,11 +17449,11 @@
     }
   },
   "libraries": {
-    "Microsoft.Azure.Mobile.Client/3.0.1": {
-      "sha512": "RYeiyPttPN9emuFkHy4xnTaScmiVvPaVwXblMyYrkRiATifFhMjiKDXjwXPr0HxoAPXOTVnduclQKcJefIRQmA==",
+    "Microsoft.Azure.Mobile.Client/3.0.2": {
+      "sha512": "QYCR/IJj+eywQf/9GHhdA4/neEN2TTDd4Hs+739825BMM8Do7bR9dQB2YjPKRKfaPNhmoHS3c1DH73uIl99Ndw==",
       "type": "package",
       "files": [
-        "Microsoft.Azure.Mobile.Client.3.0.1.nupkg.sha512",
+        "Microsoft.Azure.Mobile.Client.3.0.2.nupkg.sha512",
         "Microsoft.Azure.Mobile.Client.nuspec",
         "lib/Xamarin.iOS10/Microsoft.WindowsAzure.Mobile.Ext.dll",
         "lib/Xamarin.iOS10/Microsoft.WindowsAzure.Mobile.Ext.xml",
@@ -17444,11 +17490,11 @@
         "lib/wpa81/Microsoft.WindowsAzure.Mobile.xml"
       ]
     },
-    "Microsoft.Azure.Mobile.Client.SQLiteStore/3.0.1": {
-      "sha512": "kKgMyZCuY0lsPMdSy0TDTkN3imceQcCoWELXxpzr7NKkw0wnJw1mt9YyIrke5kCVDjxshN07cmzMZQfuRlbYYQ==",
+    "Microsoft.Azure.Mobile.Client.SQLiteStore/3.0.2": {
+      "sha512": "MmmhVs/iCYox0LrEFfI8UCLGQ7XjhuLIOVvcLZtQHnLa87cwMncPnB9xviGEhpoAFHjkkiG1BuEKDTnZMoV7Wg==",
       "type": "package",
       "files": [
-        "Microsoft.Azure.Mobile.Client.SQLiteStore.3.0.1.nupkg.sha512",
+        "Microsoft.Azure.Mobile.Client.SQLiteStore.3.0.2.nupkg.sha512",
         "Microsoft.Azure.Mobile.Client.SQLiteStore.nuspec",
         "lib/portable-win+net45+wp8+wpa81+monotouch10+monoandroid10+xamarinios10/Microsoft.WindowsAzure.Mobile.SQLiteStore.dll",
         "lib/portable-win+net45+wp8+wpa81+monotouch10+monoandroid10+xamarinios10/Microsoft.WindowsAzure.Mobile.SQLiteStore.xml"
@@ -18866,40 +18912,55 @@
         "runtimes/win8-arm/native/clrcompression.dll"
       ]
     },
-    "SQLitePCLRaw.bundle_green/1.0.0": {
-      "sha512": "MS0nWvHYuSZvENiMXMfj/jr7dACqOFSBXE1fuUEwMsf/IDXPx/4a1IaZqb+A2IcouzLrA8JI1D4yGjxvV3QWDA==",
+    "SQLitePCLRaw.bundle_green/1.1.0": {
+      "sha512": "dbpmShrY8HJxj02MWJ/lAYaNdK4DAaE8NrgxYPZXfrdIm5GD3QcyKzgdSZXy93t0VJNmvFHv49G8OiCj5npCyA==",
       "type": "package",
       "files": [
-        "SQLitePCLRaw.bundle_green.1.0.0.nupkg.sha512",
+        "SQLitePCLRaw.bundle_green.1.1.0.nupkg.sha512",
         "SQLitePCLRaw.bundle_green.nuspec",
         "build/wp8/SQLitePCLRaw.bundle_green.targets",
         "build/wp80/arm/SQLitePCLRaw.batteries_green.dll",
+        "build/wp80/arm/SQLitePCLRaw.batteries_v2.dll",
         "build/wp80/x86/SQLitePCLRaw.batteries_green.dll",
+        "build/wp80/x86/SQLitePCLRaw.batteries_v2.dll",
         "lib/MonoAndroid/SQLitePCLRaw.batteries_green.dll",
-        "lib/MonoTouch/SQLitePCLRaw.batteries_green.dll",
+        "lib/MonoAndroid/SQLitePCLRaw.batteries_v2.dll",
         "lib/Xamarin.iOS10/SQLitePCLRaw.batteries_green.dll",
+        "lib/Xamarin.iOS10/SQLitePCLRaw.batteries_v2.dll",
         "lib/net35/SQLitePCLRaw.batteries_green.dll",
+        "lib/net35/SQLitePCLRaw.batteries_v2.dll",
         "lib/net40/SQLitePCLRaw.batteries_green.dll",
+        "lib/net40/SQLitePCLRaw.batteries_v2.dll",
         "lib/net45/SQLitePCLRaw.batteries_green.dll",
+        "lib/net45/SQLitePCLRaw.batteries_v2.dll",
+        "lib/netcoreapp/SQLitePCLRaw.batteries_green.dll",
+        "lib/netcoreapp/SQLitePCLRaw.batteries_v2.dll",
         "lib/netstandard1.1/SQLitePCLRaw.batteries_green.dll",
+        "lib/netstandard1.1/SQLitePCLRaw.batteries_v2.dll",
         "lib/portable-net40+sl5+netcore45+wp8+MonoAndroid10+MonoTouch10+Xamarin.iOS10/SQLitePCLRaw.batteries_green.dll",
+        "lib/portable-net40+sl5+netcore45+wp8+MonoAndroid10+MonoTouch10+Xamarin.iOS10/SQLitePCLRaw.batteries_v2.dll",
         "lib/portable-net45+netcore45+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10/SQLitePCLRaw.batteries_green.dll",
+        "lib/portable-net45+netcore45+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10/SQLitePCLRaw.batteries_v2.dll",
         "lib/portable-net45+netcore45+wpa81+wp8+MonoAndroid10+MonoTouch10+Xamarin.iOS10/SQLitePCLRaw.batteries_green.dll",
+        "lib/portable-net45+netcore45+wpa81+wp8+MonoAndroid10+MonoTouch10+Xamarin.iOS10/SQLitePCLRaw.batteries_v2.dll",
         "lib/uap10.0/SQLitePCLRaw.batteries_green.dll",
+        "lib/uap10.0/SQLitePCLRaw.batteries_v2.dll",
         "lib/win8/SQLitePCLRaw.batteries_green.dll",
+        "lib/win8/SQLitePCLRaw.batteries_v2.dll",
         "lib/win81/SQLitePCLRaw.batteries_green.dll",
+        "lib/win81/SQLitePCLRaw.batteries_v2.dll",
         "lib/wp8/_._",
-        "lib/wpa81/SQLitePCLRaw.batteries_green.dll"
+        "lib/wpa81/SQLitePCLRaw.batteries_green.dll",
+        "lib/wpa81/SQLitePCLRaw.batteries_v2.dll"
       ]
     },
-    "SQLitePCLRaw.core/1.0.1": {
-      "sha512": "ih45uNC9JVk3xxkxuy1vGl6Ukn6KJkOeEXQcMoxCaGg4OrcYZQFcm9/Sq5WTElGZJ/LynpV6/OrIaLqrmsC8eQ==",
+    "SQLitePCLRaw.core/1.1.0": {
+      "sha512": "e5Bm2K2B2v9z8jHm1nyEN1M8pH6GG8emIboMhsqDzuLIf9uWvGPsdNm0WzWeG6oxSmTgSQsLajcuqA1gDAIMJw==",
       "type": "package",
       "files": [
-        "SQLitePCLRaw.core.1.0.1.nupkg.sha512",
+        "SQLitePCLRaw.core.1.1.0.nupkg.sha512",
         "SQLitePCLRaw.core.nuspec",
         "lib/MonoAndroid/SQLitePCLRaw.core.dll",
-        "lib/MonoTouch/SQLitePCLRaw.core.dll",
         "lib/Xamarin.iOS10/SQLitePCLRaw.core.dll",
         "lib/net35/SQLitePCLRaw.core.dll",
         "lib/net40/SQLitePCLRaw.core.dll",
@@ -18915,23 +18976,23 @@
         "lib/wpa81/SQLitePCLRaw.core.dll"
       ]
     },
-    "SQLitePCLRaw.lib.e_sqlite3.v140/1.0.0": {
-      "sha512": "39UDEymjBjnamJ2bj/sSefDba63WTSCLIryXnw5xgJAEyBzPivCoZI8zbbo8MtyBo+WmJfrQXwJ5Rxenzg+rWw==",
+    "SQLitePCLRaw.lib.e_sqlite3.v140/1.1.0": {
+      "sha512": "pFF30aD37wYKgPmOXEIXjTcPKKhC5gED5M+m+CiAMKJqzZxso7ucGYWw/8dJPmD04o9T5JNgi+pLRhHMd2IpFQ==",
       "type": "package",
       "files": [
-        "SQLitePCLRaw.lib.e_sqlite3.v140.1.0.0.nupkg.sha512",
+        "SQLitePCLRaw.lib.e_sqlite3.v140.1.1.0.nupkg.sha512",
         "SQLitePCLRaw.lib.e_sqlite3.v140.nuspec",
         "build/SQLitePCLRaw.lib.e_sqlite3.v140.targets",
-        "build/native/sqlite3/v140/arm/e_sqlite3.dll",
-        "build/native/sqlite3/v140/x64/e_sqlite3.dll",
-        "build/native/sqlite3/v140/x86/e_sqlite3.dll"
+        "runtimes/win10-arm/native/e_sqlite3.dll",
+        "runtimes/win10-x64/native/e_sqlite3.dll",
+        "runtimes/win10-x86/native/e_sqlite3.dll"
       ]
     },
-    "SQLitePCLRaw.provider.e_sqlite3.uwp10/1.0.0": {
-      "sha512": "GtC9Zib0YTQMPFFCUqAhySjkvfOep5Pe6IItq8BPtpxxkGFhI+guTzd52NHIzdDVz4u9yQkpekUx9QDafg9ekA==",
+    "SQLitePCLRaw.provider.e_sqlite3.uwp10/1.1.0": {
+      "sha512": "ANA4xKfJqLD2FSdOn/sOm2AhGFvjQQA7smIuBD26ClcGvn3uTEktD6VgjbWaSjrQnFslm/2Jxbmx79oqdVKUeQ==",
       "type": "package",
       "files": [
-        "SQLitePCLRaw.provider.e_sqlite3.uwp10.1.0.0.nupkg.sha512",
+        "SQLitePCLRaw.provider.e_sqlite3.uwp10.1.1.0.nupkg.sha512",
         "SQLitePCLRaw.provider.e_sqlite3.uwp10.nuspec",
         "lib/uap10.0/SQLitePCLRaw.provider.e_sqlite3.dll"
       ]
@@ -24014,14 +24075,15 @@
   },
   "projectFileDependencyGroups": {
     "": [
-      "Microsoft.Azure.Mobile.Client >= 3.0.1",
-      "Microsoft.Azure.Mobile.Client.SQLiteStore >= 3.0.1",
+      "Microsoft.Azure.Mobile.Client >= 3.0.2",
+      "Microsoft.Azure.Mobile.Client.SQLiteStore >= 3.0.2",
       "Microsoft.Bcl >= 1.1.10",
       "Microsoft.Bcl.Build >= 1.0.21",
       "Microsoft.NETCore.UniversalWindowsPlatform >= 5.2.2",
       "Microsoft.Net.Http >= 2.2.29",
       "Newtonsoft.Json >= 9.0.1",
-      "SQLitePCLRaw.core >= 1.0.1",
+      "SQLitePCLRaw.bundle_green >= 1.1.0",
+      "SQLitePCLRaw.core >= 1.1.0",
       "Xamarin.Forms >= 2.3.2.127"
     ],
     "UAP,Version=v10.0": []

+ 3 - 2
Demos/app-tasks/DevDaysTasks.iOS/AppDelegate.cs

@@ -4,6 +4,7 @@ using System.Linq;
 
 using Foundation;
 using UIKit;
+using Microsoft.WindowsAzure.MobileServices;
 
 namespace DevDaysTasks.iOS
 {
@@ -13,8 +14,8 @@ namespace DevDaysTasks.iOS
 		public override bool FinishedLaunching (UIApplication app, NSDictionary options)
 		{
 			global::Xamarin.Forms.Forms.Init ();
-
-			LoadApplication (new App ());
+            CurrentPlatform.Init();
+            LoadApplication (new App ());
 
 			return base.FinishedLaunching (app, options);
 		}

+ 10 - 6
Demos/app-tasks/DevDaysTasks.iOS/DevDaysTasks.iOS.csproj

@@ -64,15 +64,15 @@
   </PropertyGroup>
   <ItemGroup>
     <Reference Include="Microsoft.WindowsAzure.Mobile, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <HintPath>..\packages\Microsoft.Azure.Mobile.Client.3.0.1\lib\Xamarin.iOS10\Microsoft.WindowsAzure.Mobile.dll</HintPath>
+      <HintPath>..\packages\Microsoft.Azure.Mobile.Client.3.0.2\lib\Xamarin.iOS10\Microsoft.WindowsAzure.Mobile.dll</HintPath>
       <Private>True</Private>
     </Reference>
     <Reference Include="Microsoft.WindowsAzure.Mobile.Ext, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <HintPath>..\packages\Microsoft.Azure.Mobile.Client.3.0.1\lib\Xamarin.iOS10\Microsoft.WindowsAzure.Mobile.Ext.dll</HintPath>
+      <HintPath>..\packages\Microsoft.Azure.Mobile.Client.3.0.2\lib\Xamarin.iOS10\Microsoft.WindowsAzure.Mobile.Ext.dll</HintPath>
       <Private>True</Private>
     </Reference>
     <Reference Include="Microsoft.WindowsAzure.Mobile.SQLiteStore, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <HintPath>..\packages\Microsoft.Azure.Mobile.Client.SQLiteStore.3.0.1\lib\portable-win+net45+wp8+wpa81+monotouch10+monoandroid10+xamarinios10\Microsoft.WindowsAzure.Mobile.SQLiteStore.dll</HintPath>
+      <HintPath>..\packages\Microsoft.Azure.Mobile.Client.SQLiteStore.3.0.2\lib\portable-win+net45+wp8+wpa81+monotouch10+monoandroid10+xamarinios10\Microsoft.WindowsAzure.Mobile.SQLiteStore.dll</HintPath>
       <Private>True</Private>
     </Reference>
     <Reference Include="Newtonsoft.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
@@ -80,15 +80,19 @@
       <Private>True</Private>
     </Reference>
     <Reference Include="SQLitePCLRaw.batteries_green, Version=1.0.0.0, Culture=neutral, PublicKeyToken=a84b7dcfb1391f7f, processorArchitecture=MSIL">
-      <HintPath>..\packages\SQLitePCLRaw.bundle_green.1.0.1\lib\Xamarin.iOS10\SQLitePCLRaw.batteries_green.dll</HintPath>
+      <HintPath>..\packages\SQLitePCLRaw.bundle_green.1.1.0\lib\Xamarin.iOS10\SQLitePCLRaw.batteries_green.dll</HintPath>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="SQLitePCLRaw.batteries_v2, Version=1.0.0.0, Culture=neutral, PublicKeyToken=8226ea5df37bcae9, processorArchitecture=MSIL">
+      <HintPath>..\packages\SQLitePCLRaw.bundle_green.1.1.0\lib\Xamarin.iOS10\SQLitePCLRaw.batteries_v2.dll</HintPath>
       <Private>True</Private>
     </Reference>
     <Reference Include="SQLitePCLRaw.core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1488e028ca7ab535, processorArchitecture=MSIL">
-      <HintPath>..\packages\SQLitePCLRaw.core.1.0.1\lib\Xamarin.iOS10\SQLitePCLRaw.core.dll</HintPath>
+      <HintPath>..\packages\SQLitePCLRaw.core.1.1.0\lib\Xamarin.iOS10\SQLitePCLRaw.core.dll</HintPath>
       <Private>True</Private>
     </Reference>
     <Reference Include="SQLitePCLRaw.provider.sqlite3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=62684c7b4f184e3f, processorArchitecture=MSIL">
-      <HintPath>..\packages\SQLitePCLRaw.provider.sqlite3.ios_unified.1.0.1\lib\Xamarin.iOS10\SQLitePCLRaw.provider.sqlite3.dll</HintPath>
+      <HintPath>..\packages\SQLitePCLRaw.provider.sqlite3.ios_unified.1.1.0\lib\Xamarin.iOS10\SQLitePCLRaw.provider.sqlite3.dll</HintPath>
       <Private>True</Private>
     </Reference>
     <Reference Include="System" />

+ 5 - 5
Demos/app-tasks/DevDaysTasks.iOS/packages.config

@@ -1,13 +1,13 @@
 <?xml version="1.0" encoding="utf-8"?>
 <packages>
-  <package id="Microsoft.Azure.Mobile.Client" version="3.0.1" targetFramework="xamarinios10" />
-  <package id="Microsoft.Azure.Mobile.Client.SQLiteStore" version="3.0.1" targetFramework="xamarinios10" />
+  <package id="Microsoft.Azure.Mobile.Client" version="3.0.2" targetFramework="xamarinios10" />
+  <package id="Microsoft.Azure.Mobile.Client.SQLiteStore" version="3.0.2" targetFramework="xamarinios10" />
   <package id="Microsoft.Bcl" version="1.1.10" targetFramework="xamarinios10" />
   <package id="Microsoft.Bcl.Build" version="1.0.21" targetFramework="xamarinios10" />
   <package id="Microsoft.Net.Http" version="2.2.29" targetFramework="xamarinios10" />
   <package id="Newtonsoft.Json" version="9.0.1" targetFramework="xamarinios10" />
-  <package id="SQLitePCLRaw.bundle_green" version="1.0.1" targetFramework="xamarinios10" />
-  <package id="SQLitePCLRaw.core" version="1.0.1" targetFramework="xamarinios10" />
-  <package id="SQLitePCLRaw.provider.sqlite3.ios_unified" version="1.0.1" targetFramework="xamarinios10" />
+  <package id="SQLitePCLRaw.bundle_green" version="1.1.0" targetFramework="xamarinios10" />
+  <package id="SQLitePCLRaw.core" version="1.1.0" targetFramework="xamarinios10" />
+  <package id="SQLitePCLRaw.provider.sqlite3.ios_unified" version="1.1.0" targetFramework="xamarinios10" />
   <package id="Xamarin.Forms" version="2.3.2.127" targetFramework="xamarinios10" />
 </packages>

+ 7 - 49
HandsOnLab/Finish/DevDaysSpeakers.sln

@@ -9,9 +9,15 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DevDaysSpeakers.iOS", "DevD
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DevDaysSpeakers.UWP", "DevDaysSpeakers\DevDaysSpeakers.UWP\DevDaysSpeakers.UWP.csproj", "{5A77AD80-10E0-4093-9332-ECFB62D3342A}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DevDaysSpeakers", "DevDaysSpeakers\DevDaysSpeakers\DevDaysSpeakers.csproj", "{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}"
+Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "DevDaysSpeakers", "DevDaysSpeakers\DevDaysSpeakers.Shared\DevDaysSpeakers.shproj", "{A87AFF87-D94F-4B2D-A3E4-B1EC3B6E42C3}"
 EndProject
 Global
+	GlobalSection(SharedMSBuildProjectFiles) = preSolution
+		DevDaysSpeakers\DevDaysSpeakers.Shared\DevDaysSpeakers.Shared.projitems*{367b4f1e-c7d4-432c-b767-59121e12c2bf}*SharedItemsImports = 4
+		DevDaysSpeakers\DevDaysSpeakers.Shared\DevDaysSpeakers.Shared.projitems*{5a77ad80-10e0-4093-9332-ecfb62d3342a}*SharedItemsImports = 4
+		DevDaysSpeakers\DevDaysSpeakers.Shared\DevDaysSpeakers.Shared.projitems*{98248ce3-4317-4fb5-9f37-7ac19fefdf1d}*SharedItemsImports = 4
+		DevDaysSpeakers\DevDaysSpeakers.Shared\DevDaysSpeakers.Shared.projitems*{a87aff87-d94f-4b2d-a3e4-b1ec3b6e42c3}*SharedItemsImports = 13
+	EndGlobalSection
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Ad-Hoc|Any CPU = Ad-Hoc|Any CPU
 		Ad-Hoc|ARM = Ad-Hoc|ARM
@@ -207,54 +213,6 @@ Global
 		{5A77AD80-10E0-4093-9332-ECFB62D3342A}.Release|x86.ActiveCfg = Release|x86
 		{5A77AD80-10E0-4093-9332-ECFB62D3342A}.Release|x86.Build.0 = Release|x86
 		{5A77AD80-10E0-4093-9332-ECFB62D3342A}.Release|x86.Deploy.0 = Release|x86
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.Ad-Hoc|ARM.Build.0 = Release|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.Ad-Hoc|x64.Build.0 = Release|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.Ad-Hoc|x86.Build.0 = Release|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.AppStore|Any CPU.Build.0 = Release|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.AppStore|ARM.ActiveCfg = Release|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.AppStore|ARM.Build.0 = Release|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.AppStore|iPhone.ActiveCfg = Release|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.AppStore|iPhone.Build.0 = Release|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.AppStore|x64.ActiveCfg = Release|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.AppStore|x64.Build.0 = Release|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.AppStore|x86.ActiveCfg = Release|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.AppStore|x86.Build.0 = Release|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.Debug|ARM.ActiveCfg = Debug|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.Debug|ARM.Build.0 = Debug|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.Debug|iPhone.ActiveCfg = Debug|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.Debug|iPhone.Build.0 = Debug|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.Debug|x64.ActiveCfg = Debug|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.Debug|x64.Build.0 = Debug|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.Debug|x86.Build.0 = Debug|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.Release|Any CPU.Build.0 = Release|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.Release|ARM.ActiveCfg = Release|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.Release|ARM.Build.0 = Release|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.Release|iPhone.ActiveCfg = Release|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.Release|iPhone.Build.0 = Release|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.Release|x64.ActiveCfg = Release|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.Release|x64.Build.0 = Release|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.Release|x86.ActiveCfg = Release|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.Release|x86.Build.0 = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE

+ 30 - 27
HandsOnLab/Finish/DevDaysSpeakers/DevDaysSpeakers.Droid/DevDaysSpeakers.Droid.csproj

@@ -48,24 +48,20 @@
     <AndroidLinkMode>SdkOnly</AndroidLinkMode>
   </PropertyGroup>
   <ItemGroup>
-    <Reference Include="Azure.Mobile, Version=1.0.6037.18235, Culture=neutral, processorArchitecture=MSIL">
-      <HintPath>..\..\packages\AppService.Helpers.1.1.1-beta\lib\portable-net45+wp8+wpa81+win8+MonoAndroid10+MonoTouch10+Xamarin.iOS10+UAP10\Azure.Mobile.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
     <Reference Include="FormsViewGroup, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">
-      <HintPath>..\..\packages\Xamarin.Forms.2.3.1.114\lib\MonoAndroid10\FormsViewGroup.dll</HintPath>
+      <HintPath>..\..\packages\Xamarin.Forms.2.3.2.127\lib\MonoAndroid10\FormsViewGroup.dll</HintPath>
       <Private>True</Private>
     </Reference>
-    <Reference Include="Microsoft.WindowsAzure.Mobile, Version=2.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <HintPath>..\..\packages\Microsoft.Azure.Mobile.Client.2.1.0\lib\monoandroid\Microsoft.WindowsAzure.Mobile.dll</HintPath>
+    <Reference Include="Microsoft.WindowsAzure.Mobile, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\Microsoft.Azure.Mobile.Client.3.0.2\lib\monoandroid\Microsoft.WindowsAzure.Mobile.dll</HintPath>
       <Private>True</Private>
     </Reference>
-    <Reference Include="Microsoft.WindowsAzure.Mobile.Ext, Version=2.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <HintPath>..\..\packages\Microsoft.Azure.Mobile.Client.2.1.0\lib\monoandroid\Microsoft.WindowsAzure.Mobile.Ext.dll</HintPath>
+    <Reference Include="Microsoft.WindowsAzure.Mobile.Ext, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\Microsoft.Azure.Mobile.Client.3.0.2\lib\monoandroid\Microsoft.WindowsAzure.Mobile.Ext.dll</HintPath>
       <Private>True</Private>
     </Reference>
-    <Reference Include="Microsoft.WindowsAzure.Mobile.SQLiteStore, Version=2.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <HintPath>..\..\packages\Microsoft.Azure.Mobile.Client.SQLiteStore.2.1.0\lib\portable-win+net45+wp8+wpa81+monotouch+monoandroid\Microsoft.WindowsAzure.Mobile.SQLiteStore.dll</HintPath>
+    <Reference Include="Microsoft.WindowsAzure.Mobile.SQLiteStore, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\Microsoft.Azure.Mobile.Client.SQLiteStore.3.0.2\lib\portable-win+net45+wp8+wpa81+monotouch10+monoandroid10+xamarinios10\Microsoft.WindowsAzure.Mobile.SQLiteStore.dll</HintPath>
       <Private>True</Private>
     </Reference>
     <Reference Include="Mono.Android" />
@@ -82,12 +78,24 @@
       <HintPath>..\..\packages\Xam.Plugins.TextToSpeech.2.0.0\lib\MonoAndroid10\Plugin.TextToSpeech.Abstractions.dll</HintPath>
       <Private>True</Private>
     </Reference>
-    <Reference Include="SQLitePCL, Version=3.8.7.2, Culture=neutral, PublicKeyToken=bddade01e9c850c5, processorArchitecture=MSIL">
-      <HintPath>..\..\packages\SQLitePCL.3.8.7.2\lib\MonoAndroid\SQLitePCL.dll</HintPath>
+    <Reference Include="SQLitePCLRaw.batteries_green, Version=1.0.0.0, Culture=neutral, PublicKeyToken=a84b7dcfb1391f7f, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\SQLitePCLRaw.bundle_green.1.1.0\lib\MonoAndroid\SQLitePCLRaw.batteries_green.dll</HintPath>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="SQLitePCLRaw.batteries_v2, Version=1.0.0.0, Culture=neutral, PublicKeyToken=8226ea5df37bcae9, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\SQLitePCLRaw.bundle_green.1.1.0\lib\MonoAndroid\SQLitePCLRaw.batteries_v2.dll</HintPath>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="SQLitePCLRaw.core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1488e028ca7ab535, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\SQLitePCLRaw.core.1.1.0\lib\MonoAndroid\SQLitePCLRaw.core.dll</HintPath>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="SQLitePCLRaw.lib.e_sqlite3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=e4ad490600e2234c, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\SQLitePCLRaw.lib.e_sqlite3.android.1.1.0\lib\MonoAndroid\SQLitePCLRaw.lib.e_sqlite3.dll</HintPath>
       <Private>True</Private>
     </Reference>
-    <Reference Include="SQLitePCL.Ext, Version=3.8.7.2, Culture=neutral, PublicKeyToken=bddade01e9c850c5, processorArchitecture=MSIL">
-      <HintPath>..\..\packages\SQLitePCL.3.8.7.2\lib\MonoAndroid\SQLitePCL.Ext.dll</HintPath>
+    <Reference Include="SQLitePCLRaw.provider.e_sqlite3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=9c301db686d0bd12, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\SQLitePCLRaw.provider.e_sqlite3.android.1.1.0\lib\MonoAndroid\SQLitePCLRaw.provider.e_sqlite3.dll</HintPath>
       <Private>True</Private>
     </Reference>
     <Reference Include="System" />
@@ -137,19 +145,19 @@
       <Private>True</Private>
     </Reference>
     <Reference Include="Xamarin.Forms.Core, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">
-      <HintPath>..\..\packages\Xamarin.Forms.2.3.1.114\lib\MonoAndroid10\Xamarin.Forms.Core.dll</HintPath>
+      <HintPath>..\..\packages\Xamarin.Forms.2.3.2.127\lib\MonoAndroid10\Xamarin.Forms.Core.dll</HintPath>
       <Private>True</Private>
     </Reference>
     <Reference Include="Xamarin.Forms.Platform, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
-      <HintPath>..\..\packages\Xamarin.Forms.2.3.1.114\lib\MonoAndroid10\Xamarin.Forms.Platform.dll</HintPath>
+      <HintPath>..\..\packages\Xamarin.Forms.2.3.2.127\lib\MonoAndroid10\Xamarin.Forms.Platform.dll</HintPath>
       <Private>True</Private>
     </Reference>
     <Reference Include="Xamarin.Forms.Platform.Android, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">
-      <HintPath>..\..\packages\Xamarin.Forms.2.3.1.114\lib\MonoAndroid10\Xamarin.Forms.Platform.Android.dll</HintPath>
+      <HintPath>..\..\packages\Xamarin.Forms.2.3.2.127\lib\MonoAndroid10\Xamarin.Forms.Platform.Android.dll</HintPath>
       <Private>True</Private>
     </Reference>
     <Reference Include="Xamarin.Forms.Xaml, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">
-      <HintPath>..\..\packages\Xamarin.Forms.2.3.1.114\lib\MonoAndroid10\Xamarin.Forms.Xaml.dll</HintPath>
+      <HintPath>..\..\packages\Xamarin.Forms.2.3.2.127\lib\MonoAndroid10\Xamarin.Forms.Xaml.dll</HintPath>
       <Private>True</Private>
     </Reference>
   </ItemGroup>
@@ -178,12 +186,7 @@
     <AndroidResource Include="Resources\layout\Toolbar.axml" />
     <AndroidResource Include="Resources\values\styles.xml" />
   </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\DevDaysSpeakers\DevDaysSpeakers.csproj">
-      <Project>{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}</Project>
-      <Name>DevDaysSpeakers</Name>
-    </ProjectReference>
-  </ItemGroup>
+  <Import Project="..\DevDaysSpeakers.Shared\DevDaysSpeakers.Shared.projitems" Label="Shared" />
   <Import Project="$(MSBuildExtensionsPath)\Xamarin\Android\Xamarin.Android.CSharp.targets" />
   <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
     <PropertyGroup>
@@ -191,11 +194,11 @@
     </PropertyGroup>
     <Error Condition="!Exists('..\..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets'))" />
     <Error Condition="!Exists('..\..\packages\Xamarin.Android.Support.Vector.Drawable.23.3.0\build\Xamarin.Android.Support.Vector.Drawable.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Xamarin.Android.Support.Vector.Drawable.23.3.0\build\Xamarin.Android.Support.Vector.Drawable.targets'))" />
-    <Error Condition="!Exists('..\..\packages\Xamarin.Forms.2.3.1.114\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Xamarin.Forms.2.3.1.114\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets'))" />
+    <Error Condition="!Exists('..\..\packages\Xamarin.Forms.2.3.2.127\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Xamarin.Forms.2.3.2.127\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets'))" />
   </Target>
   <Import Project="..\..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets" Condition="Exists('..\..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets')" />
   <Import Project="..\..\packages\Xamarin.Android.Support.Vector.Drawable.23.3.0\build\Xamarin.Android.Support.Vector.Drawable.targets" Condition="Exists('..\..\packages\Xamarin.Android.Support.Vector.Drawable.23.3.0\build\Xamarin.Android.Support.Vector.Drawable.targets')" />
-  <Import Project="..\..\packages\Xamarin.Forms.2.3.1.114\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets" Condition="Exists('..\..\packages\Xamarin.Forms.2.3.1.114\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets')" />
+  <Import Project="..\..\packages\Xamarin.Forms.2.3.2.127\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets" Condition="Exists('..\..\packages\Xamarin.Forms.2.3.2.127\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets')" />
   <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
      Other similar extension points exist, see Microsoft.Common.targets.
   <Target Name="BeforeBuild">

+ 0 - 2
HandsOnLab/Finish/DevDaysSpeakers/DevDaysSpeakers.Droid/MainActivity.cs

@@ -18,9 +18,7 @@ namespace DevDaysSpeakers.Droid
             ToolbarResource = Resource.Layout.Toolbar;
 
             base.OnCreate(bundle);
-
             Microsoft.WindowsAzure.MobileServices.CurrentPlatform.Init();
-            
             global::Xamarin.Forms.Forms.Init(this, bundle);
             LoadApplication(new App());
         }

+ 7 - 5
HandsOnLab/Finish/DevDaysSpeakers/DevDaysSpeakers.Droid/packages.config

@@ -1,13 +1,15 @@
 <?xml version="1.0" encoding="utf-8"?>
 <packages>
-  <package id="AppService.Helpers" version="1.1.1-beta" targetFramework="monoandroid60" />
-  <package id="Microsoft.Azure.Mobile.Client" version="2.1.0" targetFramework="monoandroid60" />
-  <package id="Microsoft.Azure.Mobile.Client.SQLiteStore" version="2.1.0" targetFramework="monoandroid60" />
+  <package id="Microsoft.Azure.Mobile.Client" version="3.0.2" targetFramework="monoandroid60" />
+  <package id="Microsoft.Azure.Mobile.Client.SQLiteStore" version="3.0.2" targetFramework="monoandroid60" />
   <package id="Microsoft.Bcl" version="1.1.10" targetFramework="monoandroid60" />
   <package id="Microsoft.Bcl.Build" version="1.0.21" targetFramework="monoandroid60" />
   <package id="Microsoft.Net.Http" version="2.2.29" targetFramework="monoandroid60" />
   <package id="Newtonsoft.Json" version="9.0.1" targetFramework="monoandroid60" />
-  <package id="SQLitePCL" version="3.8.7.2" targetFramework="monoandroid60" />
+  <package id="SQLitePCLRaw.bundle_green" version="1.1.0" targetFramework="monoandroid60" />
+  <package id="SQLitePCLRaw.core" version="1.1.0" targetFramework="monoandroid60" />
+  <package id="SQLitePCLRaw.lib.e_sqlite3.android" version="1.1.0" targetFramework="monoandroid60" />
+  <package id="SQLitePCLRaw.provider.e_sqlite3.android" version="1.1.0" targetFramework="monoandroid60" />
   <package id="Xam.Plugins.TextToSpeech" version="2.0.0" targetFramework="monoandroid60" />
   <package id="Xamarin.Android.Support.Animated.Vector.Drawable" version="23.3.0" targetFramework="monoandroid60" />
   <package id="Xamarin.Android.Support.Design" version="23.3.0" targetFramework="monoandroid60" />
@@ -17,5 +19,5 @@
   <package id="Xamarin.Android.Support.v7.MediaRouter" version="23.3.0" targetFramework="monoandroid60" />
   <package id="Xamarin.Android.Support.v7.RecyclerView" version="23.3.0" targetFramework="monoandroid60" />
   <package id="Xamarin.Android.Support.Vector.Drawable" version="23.3.0" targetFramework="monoandroid60" />
-  <package id="Xamarin.Forms" version="2.3.1.114" targetFramework="monoandroid60" />
+  <package id="Xamarin.Forms" version="2.3.2.127" targetFramework="monoandroid60" />
 </packages>

+ 0 - 12
HandsOnLab/Finish/DevDaysSpeakers/DevDaysSpeakers/App.cs → HandsOnLab/Finish/DevDaysSpeakers/DevDaysSpeakers.Shared/App.cs

@@ -1,25 +1,13 @@
 using DevDaysSpeakers.View;
-using AppServiceHelpers;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
 
 using Xamarin.Forms;
-using AppServiceHelpers.Abstractions;
 
 namespace DevDaysSpeakers
 {
     public class App : Application
     {
-        public static IEasyMobileServiceClient AzureClient { get; set; }
         public App()
         {
-            AzureClient = EasyMobileServiceClient.Create();
-            AzureClient.Initialize("https://montemagnospeakers.azurewebsites.net");
-            AzureClient.RegisterTable<Model.Speaker>();
-            AzureClient.FinalizeSchema();
-
             // The root page of your application
             var content = new SpeakersPage();
 

+ 31 - 0
HandsOnLab/Finish/DevDaysSpeakers/DevDaysSpeakers.Shared/DevDaysSpeakers.Shared.projitems

@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
+    <HasSharedItems>true</HasSharedItems>
+    <SharedGUID>a87aff87-d94f-4b2d-a3e4-b1ec3b6e42c3</SharedGUID>
+  </PropertyGroup>
+  <PropertyGroup Label="Configuration">
+    <Import_RootNamespace>DevDaysSpeakers</Import_RootNamespace>
+  </PropertyGroup>
+  <ItemGroup>
+    <Compile Include="$(MSBuildThisFileDirectory)App.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Model\Speaker.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Services\AzureService.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)ViewModel\SpeakersViewModel.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)View\DetailsPage.xaml.cs">
+      <DependentUpon>DetailsPage.xaml</DependentUpon>
+    </Compile>
+    <Compile Include="$(MSBuildThisFileDirectory)View\SpeakersPage.xaml.cs">
+      <DependentUpon>SpeakersPage.xaml</DependentUpon>
+    </Compile>
+  </ItemGroup>
+  <ItemGroup>
+    <EmbeddedResource Include="$(MSBuildThisFileDirectory)View\DetailsPage.xaml">
+      <Generator>MSBuild:UpdateDesignTimeXaml</Generator>
+    </EmbeddedResource>
+    <EmbeddedResource Include="$(MSBuildThisFileDirectory)View\SpeakersPage.xaml">
+      <Generator>MSBuild:UpdateDesignTimeXaml</Generator>
+    </EmbeddedResource>
+  </ItemGroup>
+</Project>

+ 13 - 0
HandsOnLab/Finish/DevDaysSpeakers/DevDaysSpeakers.Shared/DevDaysSpeakers.shproj

@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>a87aff87-d94f-4b2d-a3e4-b1ec3b6e42c3</ProjectGuid>
+    <MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion>
+  </PropertyGroup>
+  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+  <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\CodeSharing\Microsoft.CodeSharing.Common.Default.props" />
+  <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\CodeSharing\Microsoft.CodeSharing.Common.props" />
+  <PropertyGroup />
+  <Import Project="DevDaysSpeakers.Shared.projitems" Label="Shared" />
+  <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\CodeSharing\Microsoft.CodeSharing.CSharp.targets" />
+</Project>

+ 6 - 6
HandsOnLab/Finish/DevDaysSpeakers/DevDaysSpeakers/Model/Speaker.cs → HandsOnLab/Finish/DevDaysSpeakers/DevDaysSpeakers.Shared/Model/Speaker.cs

@@ -1,17 +1,17 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
+
 
 namespace DevDaysSpeakers.Model
 {
-    public class Speaker : AppServiceHelpers.Models.EntityData
+    public class Speaker
     {
+        public string Id { get; set; }
         public string Name { get; set; }
         public string Description { get; set; }
         public string Website { get; set; }
         public string Title { get; set; }
         public string Avatar { get; set; }
+
+        [Microsoft.WindowsAzure.MobileServices.Version]
+        public string AzureVersion { get; set; }
     }
 }

+ 72 - 0
HandsOnLab/Finish/DevDaysSpeakers/DevDaysSpeakers.Shared/Services/AzureService.cs

@@ -0,0 +1,72 @@
+using DevDaysSpeakers.Services;
+using DevDaysSpeakers.Model;
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.IO;
+using Xamarin.Forms;
+using Microsoft.WindowsAzure.MobileServices;
+using Microsoft.WindowsAzure.MobileServices.Sync;
+using System.Threading.Tasks;
+using Microsoft.WindowsAzure.MobileServices.SQLiteStore;
+using System.Diagnostics;
+
+[assembly: Dependency(typeof(AzureService))]
+namespace DevDaysSpeakers.Services
+{
+    public class AzureService
+    {
+        public MobileServiceClient Client { get; set; } = null;
+        IMobileServiceSyncTable<Speaker> table;
+
+        public async Task Initialize()
+        {
+            if (Client?.SyncContext?.IsInitialized ?? false)
+                return;
+
+            var appUrl = "https://montemagnospeakers.azurewebsites.net";
+
+            //Create our client
+            Client = new MobileServiceClient(appUrl);
+
+            //InitialzeDatabase for path
+            var path = "syncstore.db";
+            path = Path.Combine(MobileServiceClient.DefaultDatabasePath, path);
+
+
+            //setup our local sqlite store and intialize our table
+            var store = new MobileServiceSQLiteStore(path);
+
+            //Define table
+            store.DefineTable<Speaker>();
+
+            //Initialize SyncContext
+            await Client.SyncContext.InitializeAsync(store, new MobileServiceSyncHandler());
+
+            //Get our sync table that will call out to azure
+            table = Client.GetSyncTable<Speaker>();
+        }
+
+        public async Task<IEnumerable<Speaker>> GetSpeakers()
+        {
+            await Initialize();
+            await SyncSpeakers();
+            return await table.OrderBy(s => s.Name).ToEnumerableAsync();
+        }
+
+
+        public async Task SyncSpeakers()
+        {
+            try
+            {
+                await Client.SyncContext.PushAsync();
+                await table.PullAsync("allSpeakers", table.CreateQuery());
+            }
+            catch (Exception ex)
+            {
+                Debug.WriteLine("Unable to sync speakers, that is alright as we have offline capabilities: " + ex);
+            }
+
+        }
+    }
+}

+ 0 - 0
HandsOnLab/Finish/DevDaysSpeakers/DevDaysSpeakers/View/DetailsPage.xaml → HandsOnLab/Finish/DevDaysSpeakers/DevDaysSpeakers.Shared/View/DetailsPage.xaml


+ 0 - 0
HandsOnLab/Finish/DevDaysSpeakers/DevDaysSpeakers/View/DetailsPage.xaml.cs → HandsOnLab/Finish/DevDaysSpeakers/DevDaysSpeakers.Shared/View/DetailsPage.xaml.cs


+ 0 - 0
HandsOnLab/Finish/DevDaysSpeakers/DevDaysSpeakers/View/SpeakersPage.xaml → HandsOnLab/Finish/DevDaysSpeakers/DevDaysSpeakers.Shared/View/SpeakersPage.xaml


+ 1 - 8
HandsOnLab/Finish/DevDaysSpeakers/DevDaysSpeakers/View/SpeakersPage.xaml.cs → HandsOnLab/Finish/DevDaysSpeakers/DevDaysSpeakers.Shared/View/SpeakersPage.xaml.cs

@@ -1,15 +1,8 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
+
 using Xamarin.Forms;
 
 using DevDaysSpeakers.Model;
 using DevDaysSpeakers.ViewModel;
-using AppServiceHelpers;
-using AppServiceHelpers.Abstractions;
 
 namespace DevDaysSpeakers.View
 {

+ 5 - 7
HandsOnLab/Finish/DevDaysSpeakers/DevDaysSpeakers/ViewModel/SpeakersViewModel.cs → HandsOnLab/Finish/DevDaysSpeakers/DevDaysSpeakers.Shared/ViewModel/SpeakersViewModel.cs

@@ -11,8 +11,8 @@ using DevDaysSpeakers.Model;
 using System.Net.Http;
 using Newtonsoft.Json;
 using System.Collections.ObjectModel;
-using AppServiceHelpers.Abstractions;
 using System.Runtime.CompilerServices;
+using DevDaysSpeakers.Services;
 
 namespace DevDaysSpeakers.ViewModel
 {
@@ -20,12 +20,9 @@ namespace DevDaysSpeakers.ViewModel
     {
         public ObservableCollection<Speaker> Speakers { get; set; }
         public Command GetSpeakersCommand { get; set; }
-
-        ITableDataStore<Speaker> table;
         public SpeakersViewModel()
         {
-            table = App.AzureClient.Table<Speaker>();
-
+            
             Speakers = new ObservableCollection<Speaker>();
             GetSpeakersCommand = new Command(
                 async () => await GetSpeakers(),
@@ -58,8 +55,9 @@ namespace DevDaysSpeakers.ViewModel
             try
             {
                 IsBusy = true;
-             
-                var items = await table.GetItemsAsync();
+
+                var service = DependencyService.Get<AzureService>();
+                var items = await service.GetSpeakers();
 
                 Speakers.Clear();
                 foreach (var item in items)

+ 1 - 6
HandsOnLab/Finish/DevDaysSpeakers/DevDaysSpeakers.UWP/DevDaysSpeakers.UWP.csproj

@@ -128,17 +128,12 @@
       <SubType>Designer</SubType>
     </Page>
   </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\DevDaysSpeakers\DevDaysSpeakers.csproj">
-      <Project>{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}</Project>
-      <Name>DevDaysSpeakers</Name>
-    </ProjectReference>
-  </ItemGroup>
   <ItemGroup>
     <SDKReference Include="SQLite.UWP.2015, Version=3.14.2">
       <Name>SQLite for Universal Windows Platform</Name>
     </SDKReference>
   </ItemGroup>
+  <Import Project="..\DevDaysSpeakers.Shared\DevDaysSpeakers.Shared.projitems" Label="Shared" />
   <PropertyGroup Condition=" '$(VisualStudioVersion)' == '' or '$(VisualStudioVersion)' &lt; '14.0' ">
     <VisualStudioVersion>14.0</VisualStudioVersion>
   </PropertyGroup>

+ 0 - 9
HandsOnLab/Finish/DevDaysSpeakers/DevDaysSpeakers.UWP/DevDaysSpeakers.UWP.nuget.props

@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="no"?>
-<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <PropertyGroup Condition="'$(NuGetPackageRoot)' == ''">
-    <NuGetPackageRoot>$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
-  </PropertyGroup>
-  <ImportGroup>
-    <Import Project="$(NuGetPackageRoot)\SQLitePCL\3.8.7.2\build\netcore451\SQLitePCL.props" Condition="Exists('$(NuGetPackageRoot)\SQLitePCL\3.8.7.2\build\netcore451\SQLitePCL.props')" />
-  </ImportGroup>
-</Project>

+ 2 - 2
HandsOnLab/Finish/DevDaysSpeakers/DevDaysSpeakers.UWP/DevDaysSpeakers.UWP.nuget.targets

@@ -5,7 +5,7 @@
   </PropertyGroup>
   <ImportGroup>
     <Import Project="$(NuGetPackageRoot)\Microsoft.Bcl.Build\1.0.21\build\Microsoft.Bcl.Build.targets" Condition="Exists('$(NuGetPackageRoot)\Microsoft.Bcl.Build\1.0.21\build\Microsoft.Bcl.Build.targets')" />
-    <Import Project="$(NuGetPackageRoot)\SQLitePCL\3.8.7.2\build\netcore451\SQLitePCL.targets" Condition="Exists('$(NuGetPackageRoot)\SQLitePCL\3.8.7.2\build\netcore451\SQLitePCL.targets')" />
-    <Import Project="$(NuGetPackageRoot)\Xamarin.Forms\2.3.1.114\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets" Condition="Exists('$(NuGetPackageRoot)\Xamarin.Forms\2.3.1.114\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets')" />
+    <Import Project="$(NuGetPackageRoot)\SQLitePCLRaw.lib.e_sqlite3.v140\1.1.0\build\SQLitePCLRaw.lib.e_sqlite3.v140.targets" Condition="Exists('$(NuGetPackageRoot)\SQLitePCLRaw.lib.e_sqlite3.v140\1.1.0\build\SQLitePCLRaw.lib.e_sqlite3.v140.targets')" />
+    <Import Project="$(NuGetPackageRoot)\Xamarin.Forms\2.3.2.127\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets" Condition="Exists('$(NuGetPackageRoot)\Xamarin.Forms\2.3.2.127\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets')" />
   </ImportGroup>
 </Project>

+ 5 - 6
HandsOnLab/Finish/DevDaysSpeakers/DevDaysSpeakers.UWP/project.json

@@ -1,16 +1,15 @@
 {
   "dependencies": {
-    "AppService.Helpers": "1.1.1-beta",
-    "Microsoft.Azure.Mobile.Client": "2.1.0",
-    "Microsoft.Azure.Mobile.Client.SQLiteStore": "2.1.0",
+    "Microsoft.Azure.Mobile.Client": "3.0.2",
+    "Microsoft.Azure.Mobile.Client.SQLiteStore": "3.0.2",
     "Microsoft.Bcl": "1.1.10",
     "Microsoft.Bcl.Build": "1.0.21",
     "Microsoft.Net.Http": "2.2.29",
-    "Microsoft.NETCore.UniversalWindowsPlatform": "5.0.0",
+    "Microsoft.NETCore.UniversalWindowsPlatform": "5.2.2",
     "Newtonsoft.Json": "9.0.1",
-    "SQLitePCL": "3.8.7.2",
+    "SQLitePCLRaw.bundle_green": "1.1.0",
     "Xam.Plugins.TextToSpeech": "2.0.0",
-    "Xamarin.Forms": "2.3.1.114"
+    "Xamarin.Forms": "2.3.2.127"
   },
   "frameworks": {
     "uap10.0": {}

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 610 - 438
HandsOnLab/Finish/DevDaysSpeakers/DevDaysSpeakers.UWP/project.lock.json


+ 0 - 3
HandsOnLab/Finish/DevDaysSpeakers/DevDaysSpeakers.iOS/AppDelegate.cs

@@ -22,10 +22,7 @@ namespace DevDaysSpeakers.iOS
         //
         public override bool FinishedLaunching(UIApplication app, NSDictionary options)
         {
-
             Microsoft.WindowsAzure.MobileServices.CurrentPlatform.Init();
-            SQLitePCL.CurrentPlatform.Init();
-
             global::Xamarin.Forms.Forms.Init();
             LoadApplication(new App());
 

+ 26 - 26
HandsOnLab/Finish/DevDaysSpeakers/DevDaysSpeakers.iOS/DevDaysSpeakers.iOS.csproj

@@ -117,20 +117,16 @@
     <InterfaceDefinition Include="Resources\LaunchScreen.storyboard" />
   </ItemGroup>
   <ItemGroup>
-    <Reference Include="Azure.Mobile, Version=1.0.6037.18235, Culture=neutral, processorArchitecture=MSIL">
-      <HintPath>..\..\packages\AppService.Helpers.1.1.1-beta\lib\portable-net45+wp8+wpa81+win8+MonoAndroid10+MonoTouch10+Xamarin.iOS10+UAP10\Azure.Mobile.dll</HintPath>
+    <Reference Include="Microsoft.WindowsAzure.Mobile, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\Microsoft.Azure.Mobile.Client.3.0.2\lib\Xamarin.iOS10\Microsoft.WindowsAzure.Mobile.dll</HintPath>
       <Private>True</Private>
     </Reference>
-    <Reference Include="Microsoft.WindowsAzure.Mobile, Version=2.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <HintPath>..\..\packages\Microsoft.Azure.Mobile.Client.2.1.0\lib\Xamarin.iOS10\Microsoft.WindowsAzure.Mobile.dll</HintPath>
+    <Reference Include="Microsoft.WindowsAzure.Mobile.Ext, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\Microsoft.Azure.Mobile.Client.3.0.2\lib\Xamarin.iOS10\Microsoft.WindowsAzure.Mobile.Ext.dll</HintPath>
       <Private>True</Private>
     </Reference>
-    <Reference Include="Microsoft.WindowsAzure.Mobile.Ext, Version=2.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <HintPath>..\..\packages\Microsoft.Azure.Mobile.Client.2.1.0\lib\Xamarin.iOS10\Microsoft.WindowsAzure.Mobile.Ext.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="Microsoft.WindowsAzure.Mobile.SQLiteStore, Version=2.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <HintPath>..\..\packages\Microsoft.Azure.Mobile.Client.SQLiteStore.2.1.0\lib\portable-win+net45+wp8+wpa81+monotouch+monoandroid\Microsoft.WindowsAzure.Mobile.SQLiteStore.dll</HintPath>
+    <Reference Include="Microsoft.WindowsAzure.Mobile.SQLiteStore, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\Microsoft.Azure.Mobile.Client.SQLiteStore.3.0.2\lib\portable-win+net45+wp8+wpa81+monotouch10+monoandroid10+xamarinios10\Microsoft.WindowsAzure.Mobile.SQLiteStore.dll</HintPath>
       <Private>True</Private>
     </Reference>
     <Reference Include="Newtonsoft.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
@@ -145,15 +141,24 @@
       <HintPath>..\..\packages\Xam.Plugins.TextToSpeech.2.0.0\lib\Xamarin.iOS10\Plugin.TextToSpeech.Abstractions.dll</HintPath>
       <Private>True</Private>
     </Reference>
-    <Reference Include="SQLitePCL, Version=3.8.7.2, Culture=neutral, PublicKeyToken=bddade01e9c850c5, processorArchitecture=MSIL">
-      <HintPath>..\..\packages\SQLitePCL.3.8.7.2\lib\Xamarin.iOS10\SQLitePCL.dll</HintPath>
+    <Reference Include="SQLitePCLRaw.batteries_green, Version=1.0.0.0, Culture=neutral, PublicKeyToken=a84b7dcfb1391f7f, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\SQLitePCLRaw.bundle_green.1.1.0\lib\Xamarin.iOS10\SQLitePCLRaw.batteries_green.dll</HintPath>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="SQLitePCLRaw.batteries_v2, Version=1.0.0.0, Culture=neutral, PublicKeyToken=8226ea5df37bcae9, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\SQLitePCLRaw.bundle_green.1.1.0\lib\Xamarin.iOS10\SQLitePCLRaw.batteries_v2.dll</HintPath>
       <Private>True</Private>
     </Reference>
-    <Reference Include="SQLitePCL.Ext, Version=3.8.7.2, Culture=neutral, PublicKeyToken=bddade01e9c850c5, processorArchitecture=MSIL">
-      <HintPath>..\..\packages\SQLitePCL.3.8.7.2\lib\Xamarin.iOS10\SQLitePCL.Ext.dll</HintPath>
+    <Reference Include="SQLitePCLRaw.core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1488e028ca7ab535, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\SQLitePCLRaw.core.1.1.0\lib\Xamarin.iOS10\SQLitePCLRaw.core.dll</HintPath>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="SQLitePCLRaw.provider.sqlite3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=62684c7b4f184e3f, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\SQLitePCLRaw.provider.sqlite3.ios_unified.1.1.0\lib\Xamarin.iOS10\SQLitePCLRaw.provider.sqlite3.dll</HintPath>
       <Private>True</Private>
     </Reference>
     <Reference Include="System" />
+    <Reference Include="System.Net.Http" />
     <Reference Include="System.Net.Http.Extensions, Version=2.2.29.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
       <HintPath>..\..\packages\Microsoft.Net.Http.2.2.29\lib\Xamarin.iOS10\System.Net.Http.Extensions.dll</HintPath>
       <Private>True</Private>
@@ -165,37 +170,32 @@
     <Reference Include="System.Xml" />
     <Reference Include="System.Core" />
     <Reference Include="Xamarin.Forms.Core, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">
-      <HintPath>..\..\packages\Xamarin.Forms.2.3.1.114\lib\Xamarin.iOS10\Xamarin.Forms.Core.dll</HintPath>
+      <HintPath>..\..\packages\Xamarin.Forms.2.3.2.127\lib\Xamarin.iOS10\Xamarin.Forms.Core.dll</HintPath>
       <Private>True</Private>
     </Reference>
     <Reference Include="Xamarin.Forms.Platform, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
-      <HintPath>..\..\packages\Xamarin.Forms.2.3.1.114\lib\Xamarin.iOS10\Xamarin.Forms.Platform.dll</HintPath>
+      <HintPath>..\..\packages\Xamarin.Forms.2.3.2.127\lib\Xamarin.iOS10\Xamarin.Forms.Platform.dll</HintPath>
       <Private>True</Private>
     </Reference>
     <Reference Include="Xamarin.Forms.Platform.iOS, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">
-      <HintPath>..\..\packages\Xamarin.Forms.2.3.1.114\lib\Xamarin.iOS10\Xamarin.Forms.Platform.iOS.dll</HintPath>
+      <HintPath>..\..\packages\Xamarin.Forms.2.3.2.127\lib\Xamarin.iOS10\Xamarin.Forms.Platform.iOS.dll</HintPath>
       <Private>True</Private>
     </Reference>
     <Reference Include="Xamarin.Forms.Xaml, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">
-      <HintPath>..\..\packages\Xamarin.Forms.2.3.1.114\lib\Xamarin.iOS10\Xamarin.Forms.Xaml.dll</HintPath>
+      <HintPath>..\..\packages\Xamarin.Forms.2.3.2.127\lib\Xamarin.iOS10\Xamarin.Forms.Xaml.dll</HintPath>
       <Private>True</Private>
     </Reference>
     <Reference Include="Xamarin.iOS" />
   </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\DevDaysSpeakers\DevDaysSpeakers.csproj">
-      <Project>{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}</Project>
-      <Name>DevDaysSpeakers</Name>
-    </ProjectReference>
-  </ItemGroup>
+  <Import Project="..\DevDaysSpeakers.Shared\DevDaysSpeakers.Shared.projitems" Label="Shared" />
   <Import Project="$(MSBuildExtensionsPath)\Xamarin\iOS\Xamarin.iOS.CSharp.targets" />
   <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
     <PropertyGroup>
       <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
     </PropertyGroup>
     <Error Condition="!Exists('..\..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets'))" />
-    <Error Condition="!Exists('..\..\packages\Xamarin.Forms.2.3.1.114\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Xamarin.Forms.2.3.1.114\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets'))" />
+    <Error Condition="!Exists('..\..\packages\Xamarin.Forms.2.3.2.127\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Xamarin.Forms.2.3.2.127\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets'))" />
   </Target>
   <Import Project="..\..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets" Condition="Exists('..\..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets')" />
-  <Import Project="..\..\packages\Xamarin.Forms.2.3.1.114\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets" Condition="Exists('..\..\packages\Xamarin.Forms.2.3.1.114\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets')" />
+  <Import Project="..\..\packages\Xamarin.Forms.2.3.2.127\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets" Condition="Exists('..\..\packages\Xamarin.Forms.2.3.2.127\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets')" />
 </Project>

+ 6 - 5
HandsOnLab/Finish/DevDaysSpeakers/DevDaysSpeakers.iOS/packages.config

@@ -1,13 +1,14 @@
 <?xml version="1.0" encoding="utf-8"?>
 <packages>
-  <package id="AppService.Helpers" version="1.1.1-beta" targetFramework="xamarinios10" />
-  <package id="Microsoft.Azure.Mobile.Client" version="2.1.0" targetFramework="xamarinios10" />
-  <package id="Microsoft.Azure.Mobile.Client.SQLiteStore" version="2.1.0" targetFramework="xamarinios10" />
+  <package id="Microsoft.Azure.Mobile.Client" version="3.0.2" targetFramework="xamarinios10" />
+  <package id="Microsoft.Azure.Mobile.Client.SQLiteStore" version="3.0.2" targetFramework="xamarinios10" />
   <package id="Microsoft.Bcl" version="1.1.10" targetFramework="xamarinios10" />
   <package id="Microsoft.Bcl.Build" version="1.0.21" targetFramework="xamarinios10" />
   <package id="Microsoft.Net.Http" version="2.2.29" targetFramework="xamarinios10" />
   <package id="Newtonsoft.Json" version="9.0.1" targetFramework="xamarinios10" />
-  <package id="SQLitePCL" version="3.8.7.2" targetFramework="xamarinios10" />
+  <package id="SQLitePCLRaw.bundle_green" version="1.1.0" targetFramework="xamarinios10" />
+  <package id="SQLitePCLRaw.core" version="1.1.0" targetFramework="xamarinios10" />
+  <package id="SQLitePCLRaw.provider.sqlite3.ios_unified" version="1.1.0" targetFramework="xamarinios10" />
   <package id="Xam.Plugins.TextToSpeech" version="2.0.0" targetFramework="xamarinios10" />
-  <package id="Xamarin.Forms" version="2.3.1.114" targetFramework="xamarinios10" />
+  <package id="Xamarin.Forms" version="2.3.2.127" targetFramework="xamarinios10" />
 </packages>

+ 0 - 135
HandsOnLab/Finish/DevDaysSpeakers/DevDaysSpeakers/DevDaysSpeakers.csproj

@@ -1,135 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
-  <PropertyGroup>
-    <MinimumVisualStudioVersion>10.0</MinimumVisualStudioVersion>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <ProjectGuid>{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}</ProjectGuid>
-    <OutputType>Library</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>DevDaysSpeakers</RootNamespace>
-    <AssemblyName>DevDaysSpeakers</AssemblyName>
-    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
-    <TargetFrameworkProfile>Profile259</TargetFrameworkProfile>
-    <FileAlignment>512</FileAlignment>
-    <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
-    <NuGetPackageImportStamp>
-    </NuGetPackageImportStamp>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-    <DebugSymbols>true</DebugSymbols>
-    <DebugType>full</DebugType>
-    <Optimize>false</Optimize>
-    <OutputPath>bin\Debug\</OutputPath>
-    <DefineConstants>DEBUG;TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-    <DebugType>pdbonly</DebugType>
-    <Optimize>true</Optimize>
-    <OutputPath>bin\Release\</OutputPath>
-    <DefineConstants>TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <ItemGroup>
-    <Compile Include="App.cs" />
-    <Compile Include="Model\Speaker.cs" />
-    <Compile Include="Properties\AssemblyInfo.cs" />
-    <Compile Include="ViewModel\SpeakersViewModel.cs" />
-    <Compile Include="View\DetailsPage.xaml.cs">
-      <DependentUpon>DetailsPage.xaml</DependentUpon>
-    </Compile>
-    <Compile Include="View\SpeakersPage.xaml.cs">
-      <DependentUpon>SpeakersPage.xaml</DependentUpon>
-    </Compile>
-  </ItemGroup>
-  <ItemGroup>
-    <Reference Include="Azure.Mobile, Version=1.0.6037.18235, Culture=neutral, processorArchitecture=MSIL">
-      <HintPath>..\..\packages\AppService.Helpers.1.1.1-beta\lib\portable-net45+wp8+wpa81+win8+MonoAndroid10+MonoTouch10+Xamarin.iOS10+UAP10\Azure.Mobile.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="Microsoft.WindowsAzure.Mobile, Version=2.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <HintPath>..\..\packages\Microsoft.Azure.Mobile.Client.2.1.0\lib\portable-win+net45+wp8+wpa81+monotouch+monoandroid\Microsoft.WindowsAzure.Mobile.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="Microsoft.WindowsAzure.Mobile.SQLiteStore, Version=2.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <HintPath>..\..\packages\Microsoft.Azure.Mobile.Client.SQLiteStore.2.1.0\lib\portable-win+net45+wp8+wpa81+monotouch+monoandroid\Microsoft.WindowsAzure.Mobile.SQLiteStore.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="Newtonsoft.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
-      <HintPath>..\..\packages\Newtonsoft.Json.9.0.1\lib\portable-net45+wp80+win8+wpa81\Newtonsoft.Json.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="Plugin.TextToSpeech, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">
-      <HintPath>..\..\packages\Xam.Plugins.TextToSpeech.2.0.0\lib\portable-net45+wp8+wpa81+win8+MonoAndroid10+MonoTouch10+Xamarin.iOS10+UAP10\Plugin.TextToSpeech.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="Plugin.TextToSpeech.Abstractions, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">
-      <HintPath>..\..\packages\Xam.Plugins.TextToSpeech.2.0.0\lib\portable-net45+wp8+wpa81+win8+MonoAndroid10+MonoTouch10+Xamarin.iOS10+UAP10\Plugin.TextToSpeech.Abstractions.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="SQLitePCL, Version=3.8.7.2, Culture=neutral, PublicKeyToken=bddade01e9c850c5, processorArchitecture=MSIL">
-      <HintPath>..\..\packages\SQLitePCL.3.8.7.2\lib\portable-net45+sl50+win+wpa81+wp80+MonoAndroid10+xamarinios10+MonoTouch10\SQLitePCL.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="System.Net.Http, Version=1.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
-      <HintPath>..\..\packages\Microsoft.Net.Http.2.2.29\lib\portable-net40+sl4+win8+wp71+wpa81\System.Net.Http.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="System.Net.Http.Extensions, Version=1.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
-      <HintPath>..\..\packages\Microsoft.Net.Http.2.2.29\lib\portable-net40+sl4+win8+wp71+wpa81\System.Net.Http.Extensions.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="System.Net.Http.Primitives, Version=1.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
-      <HintPath>..\..\packages\Microsoft.Net.Http.2.2.29\lib\portable-net40+sl4+win8+wp71+wpa81\System.Net.Http.Primitives.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="Xamarin.Forms.Core, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">
-      <HintPath>..\..\packages\Xamarin.Forms.2.3.1.114\lib\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.Core.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="Xamarin.Forms.Platform, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
-      <HintPath>..\..\packages\Xamarin.Forms.2.3.1.114\lib\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.Platform.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="Xamarin.Forms.Xaml, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">
-      <HintPath>..\..\packages\Xamarin.Forms.2.3.1.114\lib\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.Xaml.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="app.config" />
-    <None Include="GettingStarted.Xamarin" />
-    <None Include="packages.config" />
-  </ItemGroup>
-  <ItemGroup>
-    <EmbeddedResource Include="View\DetailsPage.xaml">
-      <Generator>MSBuild:UpdateDesignTimeXaml</Generator>
-    </EmbeddedResource>
-  </ItemGroup>
-  <ItemGroup>
-    <EmbeddedResource Include="View\SpeakersPage.xaml">
-      <Generator>MSBuild:UpdateDesignTimeXaml</Generator>
-    </EmbeddedResource>
-  </ItemGroup>
-  <Import Project="$(MSBuildExtensionsPath32)\Microsoft\Portable\$(TargetFrameworkVersion)\Microsoft.Portable.CSharp.targets" />
-  <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
-    <PropertyGroup>
-      <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
-    </PropertyGroup>
-    <Error Condition="!Exists('..\..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets'))" />
-    <Error Condition="!Exists('..\..\packages\Xamarin.Forms.2.3.1.114\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Xamarin.Forms.2.3.1.114\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets'))" />
-  </Target>
-  <Import Project="..\..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets" Condition="Exists('..\..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets')" />
-  <Import Project="..\..\packages\Xamarin.Forms.2.3.1.114\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets" Condition="Exists('..\..\packages\Xamarin.Forms.2.3.1.114\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets')" />
-  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
-       Other similar extension points exist, see Microsoft.Common.targets.
-  <Target Name="BeforeBuild">
-  </Target>
-  <Target Name="AfterBuild">
-  </Target>
-  -->
-</Project>

+ 0 - 4
HandsOnLab/Finish/DevDaysSpeakers/DevDaysSpeakers/GettingStarted.Xamarin

@@ -1,4 +0,0 @@
-<GettingStarted>
-	<LocalContent>GS\XF\CS\App\GettingStarted.html</LocalContent>
-	<EmbeddedNavigation>false</EmbeddedNavigation>
-</GettingStarted>

+ 0 - 36
HandsOnLab/Finish/DevDaysSpeakers/DevDaysSpeakers/Properties/AssemblyInfo.cs

@@ -1,36 +0,0 @@
-using System.Resources;
-using System.Reflection;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-
-//Add compiled XAML
-using Xamarin.Forms.Xaml;
-
-[assembly: XamlCompilation(XamlCompilationOptions.Compile)]
-
-
-// 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("DevDaysSpeakers")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("DevDaysSpeakers")]
-[assembly: AssemblyCopyright("Copyright ©  2014")]
-[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")]

+ 0 - 19
HandsOnLab/Finish/DevDaysSpeakers/DevDaysSpeakers/app.config

@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<configuration>
-  <runtime>
-    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
-      <dependentAssembly>
-        <assemblyIdentity name="Microsoft.WindowsAzure.Mobile" publicKeyToken="31bf3856ad364e35" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-2.1.0.0" newVersion="2.1.0.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="Microsoft.WindowsAzure.Mobile.SQLiteStore" publicKeyToken="31bf3856ad364e35" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-2.1.0.0" newVersion="2.1.0.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-9.0.0.0" newVersion="9.0.0.0" />
-      </dependentAssembly>
-    </assemblyBinding>
-  </runtime>
-</configuration>

+ 0 - 13
HandsOnLab/Finish/DevDaysSpeakers/DevDaysSpeakers/packages.config

@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<packages>
-  <package id="AppService.Helpers" version="1.1.1-beta" targetFramework="portable45-net45+win8+wp8+wpa81" />
-  <package id="Microsoft.Azure.Mobile.Client" version="2.1.0" targetFramework="portable45-net45+win8+wp8+wpa81" />
-  <package id="Microsoft.Azure.Mobile.Client.SQLiteStore" version="2.1.0" targetFramework="portable45-net45+win8+wp8+wpa81" />
-  <package id="Microsoft.Bcl" version="1.1.10" targetFramework="portable45-net45+win8+wp8+wpa81" />
-  <package id="Microsoft.Bcl.Build" version="1.0.21" targetFramework="portable45-net45+win8+wp8+wpa81" />
-  <package id="Microsoft.Net.Http" version="2.2.29" targetFramework="portable45-net45+win8+wp8+wpa81" />
-  <package id="Newtonsoft.Json" version="9.0.1" targetFramework="portable45-net45+win8+wp8+wpa81" />
-  <package id="SQLitePCL" version="3.8.7.2" targetFramework="portable45-net45+win8+wp8+wpa81" />
-  <package id="Xam.Plugins.TextToSpeech" version="2.0.0" targetFramework="portable45-net45+win8+wp8+wpa81" />
-  <package id="Xamarin.Forms" version="2.3.1.114" targetFramework="portable45-net45+win8+wp8+wpa81" />
-</packages>

+ 42 - 39
HandsOnLab/README.md

@@ -9,14 +9,14 @@ Open **Start/DevDaysSpeakers.sln**
 
 This solution contains 4 projects
 
-* DevDaysSpeakers (Portable) - Portable Class Library that will have all shared code (model, views, and view models).
+* DevDaysSpeakers  - Shared Project that will have all shared code (model, views, and view models).
 * DevDaysSpeakers.Droid - Xamarin.Android application
 * DevDaysSpeakers.iOS - Xamarin.iOS application
 * DevDaysSpeakers.UWP - Windows 10 UWP application (can only be run from VS 2015 on Windows 10)
 
 ![Solution](http://content.screencast.com/users/JamesMontemagno/folders/Jing/media/44f4caa9-efb9-4405-95d4-7341608e1c0a/Portable.png)
 
-The **DevDaysSpeakers (Portable)** also has blank code files and XAML pages that we will use during the Hands on Lab.
+The **DevDaysSpeakers** project also has blank code files and XAML pages that we will use during the Hands on Lab.
 
 #### NuGet Restore
 
@@ -375,16 +375,6 @@ Additionally, see James' blog for visual reference: http://motzcod.es/post/14971
 
 #### Windows 10
 
-Ensure that you have the SQLite extension installed for UWP apps:
-
-Go to **Tools->Extensions & Updates**
-
-Under Online search for *SQLite* and ensure that you have SQlite for Univeral Windows Platform installed (current version 3.14.1)
-
-If there is a new version then install it, remove the SQLite for Universal Windows Platform from the References in the UWP app. Then add a new Reference and under **Universal Windows -> Extensions** you will see SQlite for Universal Windows Platform. Add that in and you will be good to go.
-
-![Sqlite](http://content.screencast.com/users/JamesMontemagno/folders/Jing/media/ace42b1e-edd8-4e65-92e7-f638b83ad533/2016-07-11_1605.png)
-
 Simply set the DevDaysSpeakers.UWP as the startup project and select debug to **Local Machine**.
 
 
@@ -527,51 +517,53 @@ Finally check **Pin to dashboard** and click create:
 This will take about 3-5 minutes to setup, so let's head back to the code!
 
 
-### Update App.cs
-We will be using the [Azure App Service Helpers library](https://www.nuget.org/packages/AppService.Helpers/1.1.1-beta) that we saw earlier in the presentations to add an Azure back end to our mobile app in just four lines of code.
+### Update AzureService.cs
+We will be using the [Azure Mobile Apps SDK](https://azure.microsoft.com/en-us/documentation/articles/app-service-mobile-xamarin-forms-get-started/) to add an Azure back end to our mobile app in just a few lines of code.
 
-In the DevDaysSpeakers/App.cs file let's add a static property above the constructor for the Azure Client:
+In the DevDaysSpeakers/Services/AzureService.cs file let's add in our url to the Initialize method.
 
 ```csharp
-public static IEasyMobileServiceClient AzureClient { get; set; }
-```
-
-In the constructor, simply add the following lines of code to create the client and register the table:
-
-```csharp
-AzureClient = EasyMobileServiceClient.Create();
-AzureClient.Initialize("https://YOUR-APP-NAME-HERE.azurewebsites.net");
-AzureClient.RegisterTable<Model.Speaker>();
-AzureClient.FinalizeSchema();
+ var appUrl = "https://OUR-APP-NAME-HERE.azurewebsites.net";
 ```
 
 Be sure to udpate YOUR-APP-NAME-HERE with the app name you just specified.
 
-### Update SpeakersViewModel.cs
+The Initialize logic will setup our database and create our `IMobileServiceSyncTable<Speaker>` table that we can use to get speaker data from Azure. There are just two methods that we need to fill in to get and sync data from the server.
+
 
-Back in the ViewModel, we can add another private property to get a reference for the table. Above the constructor add:
+#### GetSpeakers
+In this method we will need to Initialize, Sync, and query the table for items. We can use complex linq queries to order the results:
 
 ```csharp
-ITableDataStore<Speaker> table;
+await Initialize();
+await SyncSpeakers();
+return await table.OrderBy(s => s.Name).ToEnumerableAsync();   
 ```
 
-Inside of the constructor use the static AzureClient to get the table:
+#### SyncSpeakers
+Our azure backend has the ability to push any local chagnes and then pull all of the latest data from the server using the following code that can be added to the try inside of the SyncSpeakers method:
 
 ```csharp
-table = App.AzureClient.Table<Speaker>();
+await Client.SyncContext.PushAsync();
+await table.PullAsync("allSpeakers", table.CreateQuery());
 ```
+That is it for our Azure code! Just a few lines of code, and we are ready to grat the data from azure.
+
+### Update SpeakersViewModel.cs
+
+Update async Task GetSpeakers():
 
-#### Update async Task GetSpeakers()
 Now, instead of using the HttpClient to get a string, let's query the Table:
 
 Change the *try* block of code to:
 
 ```csharp
- try
+try
 {
     IsBusy = true;
-    
-    var items = await table.GetItemsAsync();
+
+    var service = DependencyService.Get<AzureService>();
+    var items = await service.GetSpeakers();
 
     Speakers.Clear();
     foreach (var item in items)
@@ -579,7 +571,7 @@ Change the *try* block of code to:
 }
 ```
 
-Now, we have implemented all of the code we need in our app! Amazing isn't it! That's it! App Service Helpers will automatically handle all communication with your Azure back end for you, do online/offline synchronization so your app works even when it's not connected, and even perform automatic conflict resolution. Just 7 lines of code!
+Now, we have implemented all of the code we need in our app! Amazing isn't it! That's it! App Service will automatically handle all communication with your Azure back end for you, do online/offline synchronization so your app works even when it's not connected.
 
 Let's head back to the Azure Portal and populate the database.
 
@@ -701,14 +693,25 @@ Let's add a save Button under the Go To Website button.
 
 #### Update SpeakersViewModel
 
-Open SpeakersViewModel and add a new method called UpdateSpeaker(Speaker speaker), that will update the speaker, sync, and refresh the list:
+Open AzureService and add a new method called UpdateSpeaker(Speaker speaker), that will update the speaker, sync, and refresh the list:
 
 ```csharp
- public async Task UpdateSpeaker(Speaker speaker)
+public async Task UpdateSpeaker(Speaker speaker)
 {
+    await Initialize();
     await table.UpdateAsync(speaker);
-    await table.Sync();
-    await GetSpeakers();
+    await SyncSpeakers();
+}
+```
+
+Open the SpeakersViewModel.cs and add a similar method:
+
+```
+public async Task UpdateSpeaker(Speaker speaker)
+{
+    var service = DependencyService.Get<AzureService>();
+    service.UpdateSpeaker(speaker);
+    await GetSpeakers();         
 }
 ```
 

+ 7 - 49
HandsOnLab/Start/DevDaysSpeakers.sln

@@ -9,9 +9,15 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DevDaysSpeakers.iOS", "DevD
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DevDaysSpeakers.UWP", "DevDaysSpeakers\DevDaysSpeakers.UWP\DevDaysSpeakers.UWP.csproj", "{5A77AD80-10E0-4093-9332-ECFB62D3342A}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DevDaysSpeakers", "DevDaysSpeakers\DevDaysSpeakers\DevDaysSpeakers.csproj", "{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}"
+Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "DevDaysSpeakers", "DevDaysSpeakers\DevDaysSpeakers.Shared\DevDaysSpeakers.shproj", "{1433EAC2-DA84-4691-8703-C1B67D8A0627}"
 EndProject
 Global
+	GlobalSection(SharedMSBuildProjectFiles) = preSolution
+		DevDaysSpeakers\DevDaysSpeakers.Shared\DevDaysSpeakers.Shared.projitems*{1433eac2-da84-4691-8703-c1b67d8a0627}*SharedItemsImports = 13
+		DevDaysSpeakers\DevDaysSpeakers.Shared\DevDaysSpeakers.Shared.projitems*{367b4f1e-c7d4-432c-b767-59121e12c2bf}*SharedItemsImports = 4
+		DevDaysSpeakers\DevDaysSpeakers.Shared\DevDaysSpeakers.Shared.projitems*{5a77ad80-10e0-4093-9332-ecfb62d3342a}*SharedItemsImports = 4
+		DevDaysSpeakers\DevDaysSpeakers.Shared\DevDaysSpeakers.Shared.projitems*{98248ce3-4317-4fb5-9f37-7ac19fefdf1d}*SharedItemsImports = 4
+	EndGlobalSection
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Ad-Hoc|Any CPU = Ad-Hoc|Any CPU
 		Ad-Hoc|ARM = Ad-Hoc|ARM
@@ -210,54 +216,6 @@ Global
 		{5A77AD80-10E0-4093-9332-ECFB62D3342A}.Release|x86.ActiveCfg = Release|x86
 		{5A77AD80-10E0-4093-9332-ECFB62D3342A}.Release|x86.Build.0 = Release|x86
 		{5A77AD80-10E0-4093-9332-ECFB62D3342A}.Release|x86.Deploy.0 = Release|x86
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.Ad-Hoc|ARM.Build.0 = Release|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.Ad-Hoc|x64.Build.0 = Release|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.Ad-Hoc|x86.Build.0 = Release|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.AppStore|Any CPU.Build.0 = Release|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.AppStore|ARM.ActiveCfg = Release|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.AppStore|ARM.Build.0 = Release|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.AppStore|iPhone.ActiveCfg = Release|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.AppStore|iPhone.Build.0 = Release|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.AppStore|x64.ActiveCfg = Release|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.AppStore|x64.Build.0 = Release|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.AppStore|x86.ActiveCfg = Release|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.AppStore|x86.Build.0 = Release|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.Debug|ARM.ActiveCfg = Debug|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.Debug|ARM.Build.0 = Debug|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.Debug|iPhone.ActiveCfg = Debug|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.Debug|iPhone.Build.0 = Debug|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.Debug|x64.ActiveCfg = Debug|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.Debug|x64.Build.0 = Debug|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.Debug|x86.Build.0 = Debug|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.Release|Any CPU.Build.0 = Release|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.Release|ARM.ActiveCfg = Release|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.Release|ARM.Build.0 = Release|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.Release|iPhone.ActiveCfg = Release|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.Release|iPhone.Build.0 = Release|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.Release|x64.ActiveCfg = Release|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.Release|x64.Build.0 = Release|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.Release|x86.ActiveCfg = Release|Any CPU
-		{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}.Release|x86.Build.0 = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE

+ 30 - 27
HandsOnLab/Start/DevDaysSpeakers/DevDaysSpeakers.Droid/DevDaysSpeakers.Droid.csproj

@@ -48,24 +48,20 @@
     <AndroidLinkMode>SdkOnly</AndroidLinkMode>
   </PropertyGroup>
   <ItemGroup>
-    <Reference Include="Azure.Mobile, Version=1.0.6037.18235, Culture=neutral, processorArchitecture=MSIL">
-      <HintPath>..\..\packages\AppService.Helpers.1.1.1-beta\lib\portable-net45+wp8+wpa81+win8+MonoAndroid10+MonoTouch10+Xamarin.iOS10+UAP10\Azure.Mobile.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
     <Reference Include="FormsViewGroup, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">
-      <HintPath>..\..\packages\Xamarin.Forms.2.3.1.114\lib\MonoAndroid10\FormsViewGroup.dll</HintPath>
+      <HintPath>..\..\packages\Xamarin.Forms.2.3.2.127\lib\MonoAndroid10\FormsViewGroup.dll</HintPath>
       <Private>True</Private>
     </Reference>
-    <Reference Include="Microsoft.WindowsAzure.Mobile, Version=2.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <HintPath>..\..\packages\Microsoft.Azure.Mobile.Client.2.1.0\lib\monoandroid\Microsoft.WindowsAzure.Mobile.dll</HintPath>
+    <Reference Include="Microsoft.WindowsAzure.Mobile, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\Microsoft.Azure.Mobile.Client.3.0.2\lib\monoandroid\Microsoft.WindowsAzure.Mobile.dll</HintPath>
       <Private>True</Private>
     </Reference>
-    <Reference Include="Microsoft.WindowsAzure.Mobile.Ext, Version=2.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <HintPath>..\..\packages\Microsoft.Azure.Mobile.Client.2.1.0\lib\monoandroid\Microsoft.WindowsAzure.Mobile.Ext.dll</HintPath>
+    <Reference Include="Microsoft.WindowsAzure.Mobile.Ext, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\Microsoft.Azure.Mobile.Client.3.0.2\lib\monoandroid\Microsoft.WindowsAzure.Mobile.Ext.dll</HintPath>
       <Private>True</Private>
     </Reference>
-    <Reference Include="Microsoft.WindowsAzure.Mobile.SQLiteStore, Version=2.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <HintPath>..\..\packages\Microsoft.Azure.Mobile.Client.SQLiteStore.2.1.0\lib\portable-win+net45+wp8+wpa81+monotouch+monoandroid\Microsoft.WindowsAzure.Mobile.SQLiteStore.dll</HintPath>
+    <Reference Include="Microsoft.WindowsAzure.Mobile.SQLiteStore, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\Microsoft.Azure.Mobile.Client.SQLiteStore.3.0.2\lib\portable-win+net45+wp8+wpa81+monotouch10+monoandroid10+xamarinios10\Microsoft.WindowsAzure.Mobile.SQLiteStore.dll</HintPath>
       <Private>True</Private>
     </Reference>
     <Reference Include="Mono.Android" />
@@ -82,12 +78,24 @@
       <HintPath>..\..\packages\Xam.Plugins.TextToSpeech.2.0.0\lib\MonoAndroid10\Plugin.TextToSpeech.Abstractions.dll</HintPath>
       <Private>True</Private>
     </Reference>
-    <Reference Include="SQLitePCL, Version=3.8.7.2, Culture=neutral, PublicKeyToken=bddade01e9c850c5, processorArchitecture=MSIL">
-      <HintPath>..\..\packages\SQLitePCL.3.8.7.2\lib\MonoAndroid\SQLitePCL.dll</HintPath>
+    <Reference Include="SQLitePCLRaw.batteries_green, Version=1.0.0.0, Culture=neutral, PublicKeyToken=a84b7dcfb1391f7f, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\SQLitePCLRaw.bundle_green.1.1.0\lib\MonoAndroid\SQLitePCLRaw.batteries_green.dll</HintPath>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="SQLitePCLRaw.batteries_v2, Version=1.0.0.0, Culture=neutral, PublicKeyToken=8226ea5df37bcae9, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\SQLitePCLRaw.bundle_green.1.1.0\lib\MonoAndroid\SQLitePCLRaw.batteries_v2.dll</HintPath>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="SQLitePCLRaw.core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1488e028ca7ab535, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\SQLitePCLRaw.core.1.1.0\lib\MonoAndroid\SQLitePCLRaw.core.dll</HintPath>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="SQLitePCLRaw.lib.e_sqlite3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=e4ad490600e2234c, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\SQLitePCLRaw.lib.e_sqlite3.android.1.1.0\lib\MonoAndroid\SQLitePCLRaw.lib.e_sqlite3.dll</HintPath>
       <Private>True</Private>
     </Reference>
-    <Reference Include="SQLitePCL.Ext, Version=3.8.7.2, Culture=neutral, PublicKeyToken=bddade01e9c850c5, processorArchitecture=MSIL">
-      <HintPath>..\..\packages\SQLitePCL.3.8.7.2\lib\MonoAndroid\SQLitePCL.Ext.dll</HintPath>
+    <Reference Include="SQLitePCLRaw.provider.e_sqlite3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=9c301db686d0bd12, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\SQLitePCLRaw.provider.e_sqlite3.android.1.1.0\lib\MonoAndroid\SQLitePCLRaw.provider.e_sqlite3.dll</HintPath>
       <Private>True</Private>
     </Reference>
     <Reference Include="System" />
@@ -137,19 +145,19 @@
       <Private>True</Private>
     </Reference>
     <Reference Include="Xamarin.Forms.Core, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">
-      <HintPath>..\..\packages\Xamarin.Forms.2.3.1.114\lib\MonoAndroid10\Xamarin.Forms.Core.dll</HintPath>
+      <HintPath>..\..\packages\Xamarin.Forms.2.3.2.127\lib\MonoAndroid10\Xamarin.Forms.Core.dll</HintPath>
       <Private>True</Private>
     </Reference>
     <Reference Include="Xamarin.Forms.Platform, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
-      <HintPath>..\..\packages\Xamarin.Forms.2.3.1.114\lib\MonoAndroid10\Xamarin.Forms.Platform.dll</HintPath>
+      <HintPath>..\..\packages\Xamarin.Forms.2.3.2.127\lib\MonoAndroid10\Xamarin.Forms.Platform.dll</HintPath>
       <Private>True</Private>
     </Reference>
     <Reference Include="Xamarin.Forms.Platform.Android, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">
-      <HintPath>..\..\packages\Xamarin.Forms.2.3.1.114\lib\MonoAndroid10\Xamarin.Forms.Platform.Android.dll</HintPath>
+      <HintPath>..\..\packages\Xamarin.Forms.2.3.2.127\lib\MonoAndroid10\Xamarin.Forms.Platform.Android.dll</HintPath>
       <Private>True</Private>
     </Reference>
     <Reference Include="Xamarin.Forms.Xaml, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">
-      <HintPath>..\..\packages\Xamarin.Forms.2.3.1.114\lib\MonoAndroid10\Xamarin.Forms.Xaml.dll</HintPath>
+      <HintPath>..\..\packages\Xamarin.Forms.2.3.2.127\lib\MonoAndroid10\Xamarin.Forms.Xaml.dll</HintPath>
       <Private>True</Private>
     </Reference>
   </ItemGroup>
@@ -178,12 +186,7 @@
     <AndroidResource Include="Resources\layout\Toolbar.axml" />
     <AndroidResource Include="Resources\values\styles.xml" />
   </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\DevDaysSpeakers\DevDaysSpeakers.csproj">
-      <Project>{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}</Project>
-      <Name>DevDaysSpeakers</Name>
-    </ProjectReference>
-  </ItemGroup>
+  <Import Project="..\DevDaysSpeakers.Shared\DevDaysSpeakers.Shared.projitems" Label="Shared" />
   <Import Project="$(MSBuildExtensionsPath)\Xamarin\Android\Xamarin.Android.CSharp.targets" />
   <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
     <PropertyGroup>
@@ -191,11 +194,11 @@
     </PropertyGroup>
     <Error Condition="!Exists('..\..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets'))" />
     <Error Condition="!Exists('..\..\packages\Xamarin.Android.Support.Vector.Drawable.23.3.0\build\Xamarin.Android.Support.Vector.Drawable.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Xamarin.Android.Support.Vector.Drawable.23.3.0\build\Xamarin.Android.Support.Vector.Drawable.targets'))" />
-    <Error Condition="!Exists('..\..\packages\Xamarin.Forms.2.3.1.114\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Xamarin.Forms.2.3.1.114\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets'))" />
+    <Error Condition="!Exists('..\..\packages\Xamarin.Forms.2.3.2.127\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Xamarin.Forms.2.3.2.127\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets'))" />
   </Target>
   <Import Project="..\..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets" Condition="Exists('..\..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets')" />
   <Import Project="..\..\packages\Xamarin.Android.Support.Vector.Drawable.23.3.0\build\Xamarin.Android.Support.Vector.Drawable.targets" Condition="Exists('..\..\packages\Xamarin.Android.Support.Vector.Drawable.23.3.0\build\Xamarin.Android.Support.Vector.Drawable.targets')" />
-  <Import Project="..\..\packages\Xamarin.Forms.2.3.1.114\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets" Condition="Exists('..\..\packages\Xamarin.Forms.2.3.1.114\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets')" />
+  <Import Project="..\..\packages\Xamarin.Forms.2.3.2.127\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets" Condition="Exists('..\..\packages\Xamarin.Forms.2.3.2.127\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets')" />
   <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
      Other similar extension points exist, see Microsoft.Common.targets.
   <Target Name="BeforeBuild">

+ 0 - 2
HandsOnLab/Start/DevDaysSpeakers/DevDaysSpeakers.Droid/MainActivity.cs

@@ -18,9 +18,7 @@ namespace DevDaysSpeakers.Droid
             ToolbarResource = Resource.Layout.Toolbar;
 
             base.OnCreate(bundle);
-
             Microsoft.WindowsAzure.MobileServices.CurrentPlatform.Init();
-            
             global::Xamarin.Forms.Forms.Init(this, bundle);
             LoadApplication(new App());
         }

+ 7 - 5
HandsOnLab/Start/DevDaysSpeakers/DevDaysSpeakers.Droid/packages.config

@@ -1,13 +1,15 @@
 <?xml version="1.0" encoding="utf-8"?>
 <packages>
-  <package id="AppService.Helpers" version="1.1.1-beta" targetFramework="monoandroid60" />
-  <package id="Microsoft.Azure.Mobile.Client" version="2.1.0" targetFramework="monoandroid60" />
-  <package id="Microsoft.Azure.Mobile.Client.SQLiteStore" version="2.1.0" targetFramework="monoandroid60" />
+  <package id="Microsoft.Azure.Mobile.Client" version="3.0.2" targetFramework="monoandroid60" />
+  <package id="Microsoft.Azure.Mobile.Client.SQLiteStore" version="3.0.2" targetFramework="monoandroid60" />
   <package id="Microsoft.Bcl" version="1.1.10" targetFramework="monoandroid60" />
   <package id="Microsoft.Bcl.Build" version="1.0.21" targetFramework="monoandroid60" />
   <package id="Microsoft.Net.Http" version="2.2.29" targetFramework="monoandroid60" />
   <package id="Newtonsoft.Json" version="9.0.1" targetFramework="monoandroid60" />
-  <package id="SQLitePCL" version="3.8.7.2" targetFramework="monoandroid60" />
+  <package id="SQLitePCLRaw.bundle_green" version="1.1.0" targetFramework="monoandroid60" />
+  <package id="SQLitePCLRaw.core" version="1.1.0" targetFramework="monoandroid60" />
+  <package id="SQLitePCLRaw.lib.e_sqlite3.android" version="1.1.0" targetFramework="monoandroid60" />
+  <package id="SQLitePCLRaw.provider.e_sqlite3.android" version="1.1.0" targetFramework="monoandroid60" />
   <package id="Xam.Plugins.TextToSpeech" version="2.0.0" targetFramework="monoandroid60" />
   <package id="Xamarin.Android.Support.Animated.Vector.Drawable" version="23.3.0" targetFramework="monoandroid60" />
   <package id="Xamarin.Android.Support.Design" version="23.3.0" targetFramework="monoandroid60" />
@@ -17,5 +19,5 @@
   <package id="Xamarin.Android.Support.v7.MediaRouter" version="23.3.0" targetFramework="monoandroid60" />
   <package id="Xamarin.Android.Support.v7.RecyclerView" version="23.3.0" targetFramework="monoandroid60" />
   <package id="Xamarin.Android.Support.Vector.Drawable" version="23.3.0" targetFramework="monoandroid60" />
-  <package id="Xamarin.Forms" version="2.3.1.114" targetFramework="monoandroid60" />
+  <package id="Xamarin.Forms" version="2.3.2.127" targetFramework="monoandroid60" />
 </packages>

+ 0 - 2
HandsOnLab/Start/DevDaysSpeakers/DevDaysSpeakers/App.cs → HandsOnLab/Start/DevDaysSpeakers/DevDaysSpeakers.Shared/App.cs

@@ -1,12 +1,10 @@
 using DevDaysSpeakers.View;
-using AppServiceHelpers;
 using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Text;
 
 using Xamarin.Forms;
-using AppServiceHelpers.Abstractions;
 
 namespace DevDaysSpeakers
 {

+ 31 - 0
HandsOnLab/Start/DevDaysSpeakers/DevDaysSpeakers.Shared/DevDaysSpeakers.Shared.projitems

@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
+    <HasSharedItems>true</HasSharedItems>
+    <SharedGUID>1433eac2-da84-4691-8703-c1b67d8a0627</SharedGUID>
+  </PropertyGroup>
+  <PropertyGroup Label="Configuration">
+    <Import_RootNamespace>DevDaysSpeakers</Import_RootNamespace>
+  </PropertyGroup>
+  <ItemGroup>
+    <Compile Include="$(MSBuildThisFileDirectory)App.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Model\Speaker.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Services\AzureService.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)ViewModel\SpeakersViewModel.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)View\DetailsPage.xaml.cs">
+      <DependentUpon>DetailsPage.xaml</DependentUpon>
+    </Compile>
+    <Compile Include="$(MSBuildThisFileDirectory)View\SpeakersPage.xaml.cs">
+      <DependentUpon>SpeakersPage.xaml</DependentUpon>
+    </Compile>
+  </ItemGroup>
+  <ItemGroup>
+    <EmbeddedResource Include="$(MSBuildThisFileDirectory)View\DetailsPage.xaml">
+      <Generator>MSBuild:UpdateDesignTimeXaml</Generator>
+    </EmbeddedResource>
+    <EmbeddedResource Include="$(MSBuildThisFileDirectory)View\SpeakersPage.xaml">
+      <Generator>MSBuild:UpdateDesignTimeXaml</Generator>
+    </EmbeddedResource>
+  </ItemGroup>
+</Project>

+ 13 - 0
HandsOnLab/Start/DevDaysSpeakers/DevDaysSpeakers.Shared/DevDaysSpeakers.shproj

@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>1433eac2-da84-4691-8703-c1b67d8a0627</ProjectGuid>
+    <MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion>
+  </PropertyGroup>
+  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+  <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\CodeSharing\Microsoft.CodeSharing.Common.Default.props" />
+  <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\CodeSharing\Microsoft.CodeSharing.Common.props" />
+  <PropertyGroup />
+  <Import Project="DevDaysSpeakers.Shared.projitems" Label="Shared" />
+  <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\CodeSharing\Microsoft.CodeSharing.CSharp.targets" />
+</Project>

+ 18 - 0
HandsOnLab/Start/DevDaysSpeakers/DevDaysSpeakers.Shared/Model/Speaker.cs

@@ -0,0 +1,18 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace DevDaysSpeakers.Model
+{
+    public class Speaker
+    {
+        //Add speaker attributes here
+
+
+        //Azure information for version
+        [Microsoft.WindowsAzure.MobileServices.Version]
+        public string AzureVersion { get; set; }
+    }
+}

+ 69 - 0
HandsOnLab/Start/DevDaysSpeakers/DevDaysSpeakers.Shared/Services/AzureService.cs

@@ -0,0 +1,69 @@
+using DevDaysSpeakers.Services;
+using DevDaysSpeakers.Model;
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.IO;
+using Xamarin.Forms;
+using Microsoft.WindowsAzure.MobileServices;
+using Microsoft.WindowsAzure.MobileServices.Sync;
+using System.Threading.Tasks;
+using Microsoft.WindowsAzure.MobileServices.SQLiteStore;
+using System.Diagnostics;
+
+[assembly: Dependency(typeof(AzureService))]
+namespace DevDaysSpeakers.Services
+{
+    public class AzureService
+    {
+        public MobileServiceClient Client { get; set; } = null;
+        IMobileServiceSyncTable<Speaker> table;
+
+        public async Task Initialize()
+        {
+            if (Client?.SyncContext?.IsInitialized ?? false)
+                return;
+
+            var appUrl = "https://OUR-APP-NAME-HERE.azurewebsites.net";
+
+            //Create our client
+            Client = new MobileServiceClient(appUrl);
+
+            //InitialzeDatabase for path
+            var path = "syncstore.db";
+            path = Path.Combine(MobileServiceClient.DefaultDatabasePath, path);
+
+
+            //setup our local sqlite store and intialize our table
+            var store = new MobileServiceSQLiteStore(path);
+
+            //Define table
+            store.DefineTable<Speaker>();
+
+            //Initialize SyncContext
+            await Client.SyncContext.InitializeAsync(store, new MobileServiceSyncHandler());
+
+            //Get our sync table that will call out to azure
+            table = Client.GetSyncTable<Speaker>();
+        }
+
+
+        public async Task<IEnumerable<Speaker>> GetSpeakers()
+        {
+            return new List<Speaker>();
+        }
+
+      
+        public async Task SyncSpeakers()
+        {
+            try
+            {
+            }
+            catch (Exception ex)
+            {
+                Debug.WriteLine("Unable to sync speakers, that is alright as we have offline capabilities: " + ex);
+            }
+
+        }
+    }
+}

+ 0 - 0
HandsOnLab/Start/DevDaysSpeakers/DevDaysSpeakers/View/DetailsPage.xaml → HandsOnLab/Start/DevDaysSpeakers/DevDaysSpeakers.Shared/View/DetailsPage.xaml


+ 0 - 0
HandsOnLab/Start/DevDaysSpeakers/DevDaysSpeakers/View/DetailsPage.xaml.cs → HandsOnLab/Start/DevDaysSpeakers/DevDaysSpeakers.Shared/View/DetailsPage.xaml.cs


+ 0 - 0
HandsOnLab/Start/DevDaysSpeakers/DevDaysSpeakers/View/SpeakersPage.xaml → HandsOnLab/Start/DevDaysSpeakers/DevDaysSpeakers.Shared/View/SpeakersPage.xaml


+ 0 - 2
HandsOnLab/Start/DevDaysSpeakers/DevDaysSpeakers/View/SpeakersPage.xaml.cs → HandsOnLab/Start/DevDaysSpeakers/DevDaysSpeakers.Shared/View/SpeakersPage.xaml.cs

@@ -8,8 +8,6 @@ using Xamarin.Forms;
 
 using DevDaysSpeakers.Model;
 using DevDaysSpeakers.ViewModel;
-using AppServiceHelpers;
-using AppServiceHelpers.Abstractions;
 
 
 namespace DevDaysSpeakers.View

+ 1 - 1
HandsOnLab/Start/DevDaysSpeakers/DevDaysSpeakers/ViewModel/SpeakersViewModel.cs → HandsOnLab/Start/DevDaysSpeakers/DevDaysSpeakers.Shared/ViewModel/SpeakersViewModel.cs

@@ -8,10 +8,10 @@ using System.Threading.Tasks;
 
 using Xamarin.Forms;
 using DevDaysSpeakers.Model;
+using DevDaysSpeakers.Services;
 using System.Net.Http;
 using Newtonsoft.Json;
 using System.Collections.ObjectModel;
-using AppServiceHelpers.Abstractions;
 using System.Runtime.CompilerServices;
 
 namespace DevDaysSpeakers.ViewModel

+ 1 - 6
HandsOnLab/Start/DevDaysSpeakers/DevDaysSpeakers.UWP/DevDaysSpeakers.UWP.csproj

@@ -127,17 +127,12 @@
       <SubType>Designer</SubType>
     </Page>
   </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\DevDaysSpeakers\DevDaysSpeakers.csproj">
-      <Project>{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}</Project>
-      <Name>DevDaysSpeakers</Name>
-    </ProjectReference>
-  </ItemGroup>
   <ItemGroup>
     <SDKReference Include="SQLite.UWP.2015, Version=3.14.2">
       <Name>SQLite for Universal Windows Platform</Name>
     </SDKReference>
   </ItemGroup>
+  <Import Project="..\DevDaysSpeakers.Shared\DevDaysSpeakers.Shared.projitems" Label="Shared" />
   <PropertyGroup Condition=" '$(VisualStudioVersion)' == '' or '$(VisualStudioVersion)' &lt; '14.0' ">
     <VisualStudioVersion>14.0</VisualStudioVersion>
   </PropertyGroup>

+ 0 - 9
HandsOnLab/Start/DevDaysSpeakers/DevDaysSpeakers.UWP/DevDaysSpeakers.UWP.nuget.props

@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="no"?>
-<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <PropertyGroup Condition="'$(NuGetPackageRoot)' == ''">
-    <NuGetPackageRoot>$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
-  </PropertyGroup>
-  <ImportGroup>
-    <Import Project="$(NuGetPackageRoot)\SQLitePCL\3.8.7.2\build\netcore451\SQLitePCL.props" Condition="Exists('$(NuGetPackageRoot)\SQLitePCL\3.8.7.2\build\netcore451\SQLitePCL.props')" />
-  </ImportGroup>
-</Project>

+ 2 - 2
HandsOnLab/Start/DevDaysSpeakers/DevDaysSpeakers.UWP/DevDaysSpeakers.UWP.nuget.targets

@@ -5,7 +5,7 @@
   </PropertyGroup>
   <ImportGroup>
     <Import Project="$(NuGetPackageRoot)\Microsoft.Bcl.Build\1.0.21\build\Microsoft.Bcl.Build.targets" Condition="Exists('$(NuGetPackageRoot)\Microsoft.Bcl.Build\1.0.21\build\Microsoft.Bcl.Build.targets')" />
-    <Import Project="$(NuGetPackageRoot)\SQLitePCL\3.8.7.2\build\netcore451\SQLitePCL.targets" Condition="Exists('$(NuGetPackageRoot)\SQLitePCL\3.8.7.2\build\netcore451\SQLitePCL.targets')" />
-    <Import Project="$(NuGetPackageRoot)\Xamarin.Forms\2.3.1.114\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets" Condition="Exists('$(NuGetPackageRoot)\Xamarin.Forms\2.3.1.114\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets')" />
+    <Import Project="$(NuGetPackageRoot)\SQLitePCLRaw.lib.e_sqlite3.v140\1.1.0\build\SQLitePCLRaw.lib.e_sqlite3.v140.targets" Condition="Exists('$(NuGetPackageRoot)\SQLitePCLRaw.lib.e_sqlite3.v140\1.1.0\build\SQLitePCLRaw.lib.e_sqlite3.v140.targets')" />
+    <Import Project="$(NuGetPackageRoot)\Xamarin.Forms\2.3.2.127\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets" Condition="Exists('$(NuGetPackageRoot)\Xamarin.Forms\2.3.2.127\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets')" />
   </ImportGroup>
 </Project>

+ 5 - 6
HandsOnLab/Start/DevDaysSpeakers/DevDaysSpeakers.UWP/project.json

@@ -1,16 +1,15 @@
 {
   "dependencies": {
-    "AppService.Helpers": "1.1.1-beta",
-    "Microsoft.Azure.Mobile.Client": "2.1.0",
-    "Microsoft.Azure.Mobile.Client.SQLiteStore": "2.1.0",
+    "Microsoft.Azure.Mobile.Client": "3.0.2",
+    "Microsoft.Azure.Mobile.Client.SQLiteStore": "3.0.2",
     "Microsoft.Bcl": "1.1.10",
     "Microsoft.Bcl.Build": "1.0.21",
     "Microsoft.Net.Http": "2.2.29",
-    "Microsoft.NETCore.UniversalWindowsPlatform": "5.0.0",
+    "Microsoft.NETCore.UniversalWindowsPlatform": "5.2.2",
     "Newtonsoft.Json": "9.0.1",
-    "SQLitePCL": "3.8.7.2",
+    "SQLitePCLRaw.bundle_green": "1.1.0",
     "Xam.Plugins.TextToSpeech": "2.0.0",
-    "Xamarin.Forms": "2.3.1.114"
+    "Xamarin.Forms": "2.3.2.127"
   },
   "frameworks": {
     "uap10.0": {}

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 610 - 438
HandsOnLab/Start/DevDaysSpeakers/DevDaysSpeakers.UWP/project.lock.json


+ 0 - 3
HandsOnLab/Start/DevDaysSpeakers/DevDaysSpeakers.iOS/AppDelegate.cs

@@ -22,10 +22,7 @@ namespace DevDaysSpeakers.iOS
         //
         public override bool FinishedLaunching(UIApplication app, NSDictionary options)
         {
-
             Microsoft.WindowsAzure.MobileServices.CurrentPlatform.Init();
-            SQLitePCL.CurrentPlatform.Init();
-
             global::Xamarin.Forms.Forms.Init();
             LoadApplication(new App());
 

+ 26 - 26
HandsOnLab/Start/DevDaysSpeakers/DevDaysSpeakers.iOS/DevDaysSpeakers.iOS.csproj

@@ -117,20 +117,16 @@
     <InterfaceDefinition Include="Resources\LaunchScreen.storyboard" />
   </ItemGroup>
   <ItemGroup>
-    <Reference Include="Azure.Mobile, Version=1.0.6037.18235, Culture=neutral, processorArchitecture=MSIL">
-      <HintPath>..\..\packages\AppService.Helpers.1.1.1-beta\lib\portable-net45+wp8+wpa81+win8+MonoAndroid10+MonoTouch10+Xamarin.iOS10+UAP10\Azure.Mobile.dll</HintPath>
+    <Reference Include="Microsoft.WindowsAzure.Mobile, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\Microsoft.Azure.Mobile.Client.3.0.2\lib\Xamarin.iOS10\Microsoft.WindowsAzure.Mobile.dll</HintPath>
       <Private>True</Private>
     </Reference>
-    <Reference Include="Microsoft.WindowsAzure.Mobile, Version=2.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <HintPath>..\..\packages\Microsoft.Azure.Mobile.Client.2.1.0\lib\Xamarin.iOS10\Microsoft.WindowsAzure.Mobile.dll</HintPath>
+    <Reference Include="Microsoft.WindowsAzure.Mobile.Ext, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\Microsoft.Azure.Mobile.Client.3.0.2\lib\Xamarin.iOS10\Microsoft.WindowsAzure.Mobile.Ext.dll</HintPath>
       <Private>True</Private>
     </Reference>
-    <Reference Include="Microsoft.WindowsAzure.Mobile.Ext, Version=2.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <HintPath>..\..\packages\Microsoft.Azure.Mobile.Client.2.1.0\lib\Xamarin.iOS10\Microsoft.WindowsAzure.Mobile.Ext.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="Microsoft.WindowsAzure.Mobile.SQLiteStore, Version=2.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <HintPath>..\..\packages\Microsoft.Azure.Mobile.Client.SQLiteStore.2.1.0\lib\portable-win+net45+wp8+wpa81+monotouch+monoandroid\Microsoft.WindowsAzure.Mobile.SQLiteStore.dll</HintPath>
+    <Reference Include="Microsoft.WindowsAzure.Mobile.SQLiteStore, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\Microsoft.Azure.Mobile.Client.SQLiteStore.3.0.2\lib\portable-win+net45+wp8+wpa81+monotouch10+monoandroid10+xamarinios10\Microsoft.WindowsAzure.Mobile.SQLiteStore.dll</HintPath>
       <Private>True</Private>
     </Reference>
     <Reference Include="Newtonsoft.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
@@ -145,15 +141,24 @@
       <HintPath>..\..\packages\Xam.Plugins.TextToSpeech.2.0.0\lib\Xamarin.iOS10\Plugin.TextToSpeech.Abstractions.dll</HintPath>
       <Private>True</Private>
     </Reference>
-    <Reference Include="SQLitePCL, Version=3.8.7.2, Culture=neutral, PublicKeyToken=bddade01e9c850c5, processorArchitecture=MSIL">
-      <HintPath>..\..\packages\SQLitePCL.3.8.7.2\lib\Xamarin.iOS10\SQLitePCL.dll</HintPath>
+    <Reference Include="SQLitePCLRaw.batteries_green, Version=1.0.0.0, Culture=neutral, PublicKeyToken=a84b7dcfb1391f7f, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\SQLitePCLRaw.bundle_green.1.1.0\lib\Xamarin.iOS10\SQLitePCLRaw.batteries_green.dll</HintPath>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="SQLitePCLRaw.batteries_v2, Version=1.0.0.0, Culture=neutral, PublicKeyToken=8226ea5df37bcae9, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\SQLitePCLRaw.bundle_green.1.1.0\lib\Xamarin.iOS10\SQLitePCLRaw.batteries_v2.dll</HintPath>
       <Private>True</Private>
     </Reference>
-    <Reference Include="SQLitePCL.Ext, Version=3.8.7.2, Culture=neutral, PublicKeyToken=bddade01e9c850c5, processorArchitecture=MSIL">
-      <HintPath>..\..\packages\SQLitePCL.3.8.7.2\lib\Xamarin.iOS10\SQLitePCL.Ext.dll</HintPath>
+    <Reference Include="SQLitePCLRaw.core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1488e028ca7ab535, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\SQLitePCLRaw.core.1.1.0\lib\Xamarin.iOS10\SQLitePCLRaw.core.dll</HintPath>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="SQLitePCLRaw.provider.sqlite3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=62684c7b4f184e3f, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\SQLitePCLRaw.provider.sqlite3.ios_unified.1.1.0\lib\Xamarin.iOS10\SQLitePCLRaw.provider.sqlite3.dll</HintPath>
       <Private>True</Private>
     </Reference>
     <Reference Include="System" />
+    <Reference Include="System.Net.Http" />
     <Reference Include="System.Net.Http.Extensions, Version=2.2.29.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
       <HintPath>..\..\packages\Microsoft.Net.Http.2.2.29\lib\Xamarin.iOS10\System.Net.Http.Extensions.dll</HintPath>
       <Private>True</Private>
@@ -165,37 +170,32 @@
     <Reference Include="System.Xml" />
     <Reference Include="System.Core" />
     <Reference Include="Xamarin.Forms.Core, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">
-      <HintPath>..\..\packages\Xamarin.Forms.2.3.1.114\lib\Xamarin.iOS10\Xamarin.Forms.Core.dll</HintPath>
+      <HintPath>..\..\packages\Xamarin.Forms.2.3.2.127\lib\Xamarin.iOS10\Xamarin.Forms.Core.dll</HintPath>
       <Private>True</Private>
     </Reference>
     <Reference Include="Xamarin.Forms.Platform, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
-      <HintPath>..\..\packages\Xamarin.Forms.2.3.1.114\lib\Xamarin.iOS10\Xamarin.Forms.Platform.dll</HintPath>
+      <HintPath>..\..\packages\Xamarin.Forms.2.3.2.127\lib\Xamarin.iOS10\Xamarin.Forms.Platform.dll</HintPath>
       <Private>True</Private>
     </Reference>
     <Reference Include="Xamarin.Forms.Platform.iOS, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">
-      <HintPath>..\..\packages\Xamarin.Forms.2.3.1.114\lib\Xamarin.iOS10\Xamarin.Forms.Platform.iOS.dll</HintPath>
+      <HintPath>..\..\packages\Xamarin.Forms.2.3.2.127\lib\Xamarin.iOS10\Xamarin.Forms.Platform.iOS.dll</HintPath>
       <Private>True</Private>
     </Reference>
     <Reference Include="Xamarin.Forms.Xaml, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">
-      <HintPath>..\..\packages\Xamarin.Forms.2.3.1.114\lib\Xamarin.iOS10\Xamarin.Forms.Xaml.dll</HintPath>
+      <HintPath>..\..\packages\Xamarin.Forms.2.3.2.127\lib\Xamarin.iOS10\Xamarin.Forms.Xaml.dll</HintPath>
       <Private>True</Private>
     </Reference>
     <Reference Include="Xamarin.iOS" />
   </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\DevDaysSpeakers\DevDaysSpeakers.csproj">
-      <Project>{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}</Project>
-      <Name>DevDaysSpeakers</Name>
-    </ProjectReference>
-  </ItemGroup>
+  <Import Project="..\DevDaysSpeakers.Shared\DevDaysSpeakers.Shared.projitems" Label="Shared" />
   <Import Project="$(MSBuildExtensionsPath)\Xamarin\iOS\Xamarin.iOS.CSharp.targets" />
   <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
     <PropertyGroup>
       <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
     </PropertyGroup>
     <Error Condition="!Exists('..\..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets'))" />
-    <Error Condition="!Exists('..\..\packages\Xamarin.Forms.2.3.1.114\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Xamarin.Forms.2.3.1.114\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets'))" />
+    <Error Condition="!Exists('..\..\packages\Xamarin.Forms.2.3.2.127\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Xamarin.Forms.2.3.2.127\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets'))" />
   </Target>
   <Import Project="..\..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets" Condition="Exists('..\..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets')" />
-  <Import Project="..\..\packages\Xamarin.Forms.2.3.1.114\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets" Condition="Exists('..\..\packages\Xamarin.Forms.2.3.1.114\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets')" />
+  <Import Project="..\..\packages\Xamarin.Forms.2.3.2.127\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets" Condition="Exists('..\..\packages\Xamarin.Forms.2.3.2.127\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets')" />
 </Project>

+ 6 - 5
HandsOnLab/Start/DevDaysSpeakers/DevDaysSpeakers.iOS/packages.config

@@ -1,13 +1,14 @@
 <?xml version="1.0" encoding="utf-8"?>
 <packages>
-  <package id="AppService.Helpers" version="1.1.1-beta" targetFramework="xamarinios10" />
-  <package id="Microsoft.Azure.Mobile.Client" version="2.1.0" targetFramework="xamarinios10" />
-  <package id="Microsoft.Azure.Mobile.Client.SQLiteStore" version="2.1.0" targetFramework="xamarinios10" />
+  <package id="Microsoft.Azure.Mobile.Client" version="3.0.2" targetFramework="xamarinios10" />
+  <package id="Microsoft.Azure.Mobile.Client.SQLiteStore" version="3.0.2" targetFramework="xamarinios10" />
   <package id="Microsoft.Bcl" version="1.1.10" targetFramework="xamarinios10" />
   <package id="Microsoft.Bcl.Build" version="1.0.21" targetFramework="xamarinios10" />
   <package id="Microsoft.Net.Http" version="2.2.29" targetFramework="xamarinios10" />
   <package id="Newtonsoft.Json" version="9.0.1" targetFramework="xamarinios10" />
-  <package id="SQLitePCL" version="3.8.7.2" targetFramework="xamarinios10" />
+  <package id="SQLitePCLRaw.bundle_green" version="1.1.0" targetFramework="xamarinios10" />
+  <package id="SQLitePCLRaw.core" version="1.1.0" targetFramework="xamarinios10" />
+  <package id="SQLitePCLRaw.provider.sqlite3.ios_unified" version="1.1.0" targetFramework="xamarinios10" />
   <package id="Xam.Plugins.TextToSpeech" version="2.0.0" targetFramework="xamarinios10" />
-  <package id="Xamarin.Forms" version="2.3.1.114" targetFramework="xamarinios10" />
+  <package id="Xamarin.Forms" version="2.3.2.127" targetFramework="xamarinios10" />
 </packages>

+ 0 - 136
HandsOnLab/Start/DevDaysSpeakers/DevDaysSpeakers/DevDaysSpeakers.csproj

@@ -1,136 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
-  <PropertyGroup>
-    <MinimumVisualStudioVersion>10.0</MinimumVisualStudioVersion>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <ProjectGuid>{9F91F4E4-10C0-4E92-9B82-A2DA72D7CBF5}</ProjectGuid>
-    <OutputType>Library</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>DevDaysSpeakers</RootNamespace>
-    <AssemblyName>DevDaysSpeakers</AssemblyName>
-    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
-    <TargetFrameworkProfile>Profile259</TargetFrameworkProfile>
-    <FileAlignment>512</FileAlignment>
-    <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
-    <NuGetPackageImportStamp>
-    </NuGetPackageImportStamp>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-    <DebugSymbols>true</DebugSymbols>
-    <DebugType>full</DebugType>
-    <Optimize>false</Optimize>
-    <OutputPath>bin\Debug\</OutputPath>
-    <DefineConstants>DEBUG;TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-    <DebugType>pdbonly</DebugType>
-    <Optimize>true</Optimize>
-    <OutputPath>bin\Release\</OutputPath>
-    <DefineConstants>TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <ItemGroup>
-    <Compile Include="App.cs" />
-    <Compile Include="Model\Speaker.cs" />
-    <Compile Include="Properties\AssemblyInfo.cs" />
-    <Compile Include="ViewModel\SpeakersViewModel.cs" />
-    <Compile Include="View\DetailsPage.xaml.cs">
-      <DependentUpon>DetailsPage.xaml</DependentUpon>
-    </Compile>
-    <Compile Include="View\SpeakersPage.xaml.cs">
-      <DependentUpon>SpeakersPage.xaml</DependentUpon>
-    </Compile>
-  </ItemGroup>
-  <ItemGroup>
-    <Reference Include="Azure.Mobile, Version=1.0.6037.18235, Culture=neutral, processorArchitecture=MSIL">
-      <HintPath>..\..\packages\AppService.Helpers.1.1.1-beta\lib\portable-net45+wp8+wpa81+win8+MonoAndroid10+MonoTouch10+Xamarin.iOS10+UAP10\Azure.Mobile.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="Microsoft.WindowsAzure.Mobile, Version=2.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <HintPath>..\..\packages\Microsoft.Azure.Mobile.Client.2.1.0\lib\portable-win+net45+wp8+wpa81+monotouch+monoandroid\Microsoft.WindowsAzure.Mobile.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="Microsoft.WindowsAzure.Mobile.SQLiteStore, Version=2.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <HintPath>..\..\packages\Microsoft.Azure.Mobile.Client.SQLiteStore.2.1.0\lib\portable-win+net45+wp8+wpa81+monotouch+monoandroid\Microsoft.WindowsAzure.Mobile.SQLiteStore.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="Newtonsoft.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
-      <HintPath>..\..\packages\Newtonsoft.Json.9.0.1\lib\portable-net45+wp80+win8+wpa81\Newtonsoft.Json.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="Plugin.TextToSpeech, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">
-      <HintPath>..\..\packages\Xam.Plugins.TextToSpeech.2.0.0\lib\portable-net45+wp8+wpa81+win8+MonoAndroid10+MonoTouch10+Xamarin.iOS10+UAP10\Plugin.TextToSpeech.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="Plugin.TextToSpeech.Abstractions, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">
-      <HintPath>..\..\packages\Xam.Plugins.TextToSpeech.2.0.0\lib\portable-net45+wp8+wpa81+win8+MonoAndroid10+MonoTouch10+Xamarin.iOS10+UAP10\Plugin.TextToSpeech.Abstractions.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="SQLitePCL, Version=3.8.7.2, Culture=neutral, PublicKeyToken=bddade01e9c850c5, processorArchitecture=MSIL">
-      <HintPath>..\..\packages\SQLitePCL.3.8.7.2\lib\portable-net45+sl50+win+wpa81+wp80+MonoAndroid10+xamarinios10+MonoTouch10\SQLitePCL.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="System.Net.Http, Version=1.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
-      <HintPath>..\..\packages\Microsoft.Net.Http.2.2.29\lib\portable-net40+sl4+win8+wp71+wpa81\System.Net.Http.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="System.Net.Http.Extensions, Version=1.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
-      <HintPath>..\..\packages\Microsoft.Net.Http.2.2.29\lib\portable-net40+sl4+win8+wp71+wpa81\System.Net.Http.Extensions.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="System.Net.Http.Primitives, Version=1.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
-      <HintPath>..\..\packages\Microsoft.Net.Http.2.2.29\lib\portable-net40+sl4+win8+wp71+wpa81\System.Net.Http.Primitives.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="Xamarin.Forms.Core, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">
-      <HintPath>..\..\packages\Xamarin.Forms.2.3.1.114\lib\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.Core.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="Xamarin.Forms.Platform, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
-      <HintPath>..\..\packages\Xamarin.Forms.2.3.1.114\lib\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.Platform.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="Xamarin.Forms.Xaml, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">
-      <HintPath>..\..\packages\Xamarin.Forms.2.3.1.114\lib\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.Xaml.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="app.config" />
-    <None Include="GettingStarted.Xamarin" />
-    <None Include="packages.config" />
-  </ItemGroup>
-  <ItemGroup>
-    <EmbeddedResource Include="View\DetailsPage.xaml">
-      <Generator>MSBuild:UpdateDesignTimeXaml</Generator>
-    </EmbeddedResource>
-  </ItemGroup>
-  <ItemGroup>
-    <EmbeddedResource Include="View\SpeakersPage.xaml">
-      <Generator>MSBuild:UpdateDesignTimeXaml</Generator>
-    </EmbeddedResource>
-  </ItemGroup>
-  <ItemGroup />
-  <Import Project="$(MSBuildExtensionsPath32)\Microsoft\Portable\$(TargetFrameworkVersion)\Microsoft.Portable.CSharp.targets" />
-  <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
-    <PropertyGroup>
-      <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
-    </PropertyGroup>
-    <Error Condition="!Exists('..\..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets'))" />
-    <Error Condition="!Exists('..\..\packages\Xamarin.Forms.2.3.1.114\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Xamarin.Forms.2.3.1.114\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets'))" />
-  </Target>
-  <Import Project="..\..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets" Condition="Exists('..\..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets')" />
-  <Import Project="..\..\packages\Xamarin.Forms.2.3.1.114\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets" Condition="Exists('..\..\packages\Xamarin.Forms.2.3.1.114\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets')" />
-  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
-       Other similar extension points exist, see Microsoft.Common.targets.
-  <Target Name="BeforeBuild">
-  </Target>
-  <Target Name="AfterBuild">
-  </Target>
-  -->
-</Project>

+ 0 - 4
HandsOnLab/Start/DevDaysSpeakers/DevDaysSpeakers/GettingStarted.Xamarin

@@ -1,4 +0,0 @@
-<GettingStarted>
-	<LocalContent>GS\XF\CS\App\GettingStarted.html</LocalContent>
-	<EmbeddedNavigation>false</EmbeddedNavigation>
-</GettingStarted>

+ 0 - 13
HandsOnLab/Start/DevDaysSpeakers/DevDaysSpeakers/Model/Speaker.cs

@@ -1,13 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace DevDaysSpeakers.Model
-{
-    public class Speaker : AppServiceHelpers.Models.EntityData
-    {
-        
-    }
-}

+ 0 - 36
HandsOnLab/Start/DevDaysSpeakers/DevDaysSpeakers/Properties/AssemblyInfo.cs

@@ -1,36 +0,0 @@
-using System.Resources;
-using System.Reflection;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-
-//Add compiled XAML
-using Xamarin.Forms.Xaml;
-
-[assembly: XamlCompilation(XamlCompilationOptions.Compile)]
-
-
-// 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("DevDaysSpeakers")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("DevDaysSpeakers")]
-[assembly: AssemblyCopyright("Copyright ©  2014")]
-[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")]

+ 0 - 19
HandsOnLab/Start/DevDaysSpeakers/DevDaysSpeakers/app.config

@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<configuration>
-  <runtime>
-    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
-      <dependentAssembly>
-        <assemblyIdentity name="Microsoft.WindowsAzure.Mobile" publicKeyToken="31bf3856ad364e35" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-2.1.0.0" newVersion="2.1.0.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-9.0.0.0" newVersion="9.0.0.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="Microsoft.WindowsAzure.Mobile.SQLiteStore" publicKeyToken="31bf3856ad364e35" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-2.1.0.0" newVersion="2.1.0.0" />
-      </dependentAssembly>
-    </assemblyBinding>
-  </runtime>
-</configuration>

+ 0 - 13
HandsOnLab/Start/DevDaysSpeakers/DevDaysSpeakers/packages.config

@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<packages>
-  <package id="AppService.Helpers" version="1.1.1-beta" targetFramework="portable45-net45+win8+wp8+wpa81" />
-  <package id="Microsoft.Azure.Mobile.Client" version="2.1.0" targetFramework="portable45-net45+win8+wp8+wpa81" />
-  <package id="Microsoft.Azure.Mobile.Client.SQLiteStore" version="2.1.0" targetFramework="portable45-net45+win8+wp8+wpa81" />
-  <package id="Microsoft.Bcl" version="1.1.10" targetFramework="portable45-net45+win8+wp8+wpa81" />
-  <package id="Microsoft.Bcl.Build" version="1.0.21" targetFramework="portable45-net45+win8+wp8+wpa81" />
-  <package id="Microsoft.Net.Http" version="2.2.29" targetFramework="portable45-net45+win8+wp8+wpa81" />
-  <package id="Newtonsoft.Json" version="9.0.1" targetFramework="portable45-net45+win8+wp8+wpa81" />
-  <package id="SQLitePCL" version="3.8.7.2" targetFramework="portable45-net45+win8+wp8+wpa81" />
-  <package id="Xam.Plugins.TextToSpeech" version="2.0.0" targetFramework="portable45-net45+win8+wp8+wpa81" />
-  <package id="Xamarin.Forms" version="2.3.1.114" targetFramework="portable45-net45+win8+wp8+wpa81" />
-</packages>

برخی فایل ها در این مقایسه diff نمایش داده نمی شوند زیرا تعداد فایل ها بسیار زیاد است