Различия управляемой объектной модели и объектной модели ECMAScript
Дата последнего изменения: 15 июля 2010 г.
Применимо к: SharePoint Foundation 2010
Доступно на сайте SharePoint Online
Необходимо быть в курсе следующих важных различий между ECMAScript (JavaScript, JScript) и управляемыми клиентскими объектными моделями.
Подпись методов может отличаться, как в конструкторе ClientContext() (JavaScript: ClientContext(serverRelativeUrl)). В JavaScript этот конструктор принимает URL-адрес относительно сервера, а управляемая версия этого конструктора принимает либо полный URL-адрес, либо Uri.
Эти две объектные модели используют разные типы данных. Объектная модель JavaScript не имеет эквивалентов для всех типов данных, имеющихся в управляемой объектной модели .NET Framework. JavaScript рассматривает StringCollection как string[]. С другой стороны, JavaScript имеет некоторые значения, отсутствующие в .NET Framework, например NaN или отрицательная и положительная бесконечность.
В объектной модели JavaScript разрешается проверка подлинности Forms, но для подключения к серверу нельзя указывать этот механизм проверки подлинности. Сведения об управляемых клиентских моделях и проверке подлинности Forms см. в статье Проверка подлинности в управляемых клиентских объектных моделях.
При создании элемента и добавлении его в существующую коллекцию последующие обновления этой коллекции нельзя выполнять до тех пор, пока запрос остается не выполненным. Эта проблема относится к добавлению элемента в коллекцию; с другой стороны, несколько клиентов могут одновременно выполнять чтение и запись в существующие элементы коллекции.
В качестве части общей безопасности запрещено использовать объектную модель JavaScript на странице для работы с данными Microsoft SharePoint Foundation 2010, если эта страница не содержит элемент управления "Сводка формы", например <SharePoint:FormDigest runat="server"/>.
Обычно нельзя совместно использовать переменные в разных областях, поэтому нельзя использовать и общие шаблоны программирования для операторов try/catch/finally.
Объект RoleDefinitionBindingCollection, используемый при создании назначений ролей, не имеет идентификации объекта. Таким образом, при создании нового объекта RoleDefinitionBindingCollection и последующей попытке использования его после создания назначения роли возникает ошибка.
Некоторые сравнения без учета регистра работают по-разному на клиенте и на сервере. Некоторые сравнения на стороне сервера выполняются с использованием языка веб-сайта, в то время как клиент использует только инвариантные язык и региональные параметры, чтобы избежать частных круговых путей. SharePoint Foundation 2010 не поддерживает сравнения без учета регистра, если сервер использует язык веб-сайта.
Вследствие ограничений асинхронной обратной передачи может обнаружиться, что встроенный скрипт не вызывается, когда страница находится в определенных режимах, например когда вики-страница находится в режиме редактирования. В таком случае следует с помощью элемента управления ScriptManager и его метода RegisterStartupScript() зарегистрировать блок скриптов запуска для выполнения кода, а не использовать встроенный скрипт.
См. также
Концепции
Проверка подлинности в управляемых клиентских объектных моделях
Распространение и развертывание клиентской объектной модели
Другие ресурсы
Библиотека классов для клиента
Использование управляемой объектной модели клиента SharePoint Foundation 2010
Центр ресурсов для объектной модели клиента (Возможно, на английском языке)