docs: function MobileServiceClient(applicationUrl) {
  
      Validate.isString(applicationUrl, 'applicationUrl');
      Validate.notNullOrEmpty(applicationUrl, 'applicationUrl');
  
      this.applicationUrl = applicationUrl;
  
      var sdkInfo = Platform.getSdkInfo();
      var osInfo = Platform.getOperatingSystemInfo();
      var sdkVersion = sdkInfo.fileVersion.split(".").slice(0, 2).join(".");
      this.version = "ZUMO/" + sdkVersion + " (lang=" + sdkInfo.language + "; " +
                                              "os=" + osInfo.name + "; " +
                                              "os_version=" + osInfo.version + "; " +
                                              "arch=" + osInfo.architecture + "; " +
                                              "version=" + sdkInfo.fileVersion + ")";
      this.currentUser = null;
      this._serviceFilter = null;
      this._login = new MobileServiceLogin(this);
  
      var _syncContext = new MobileServiceSyncContext(this);
  
      /**
       * Get the associated {@link MobileServiceSyncContext} instance.
       * 
       * @returns {MobileServiceSyncContext} The associated {@link MobileServiceSyncContext}.
       */
      this.getSyncContext = function() {
          return _syncContext;
      };
  
      /**
       * Gets a reference to the specified backend table.
       * 
       * @param {string} tableName The name of the backend table. 
       * 
       * @returns {MobileServiceTable} A reference to the specified table in the backend.
       */
      this.getTable = function (tableName) {
  
          Validate.isString(tableName, 'tableName');
          Validate.notNullOrEmpty(tableName, 'tableName');
          return new MobileServiceTable(tableName, this);
      };
  
      /**
       * Gets a reference to the specified local table.
       * 
       * @param {string} tableName The name of the table in the local store. 
       * 
       * @returns {MobileServiceSyncTable} A refence to the specified table in the local store.
       */
      this.getSyncTable = function (tableName) {
  
          Validate.isString(tableName, 'tableName');
          Validate.notNullOrEmpty(tableName, 'tableName');
  		
          return new MobileServiceSyncTable(tableName, this);
      };
  
      if (Push) {
          /**
           * @member {Push} push Push registration manager.
           * @instance
           * @memberof MobileServiceClient
           */
          this.push = new Push(this, MobileServiceClient._applicationInstallationId);
      }
      
  }