Partilhar via


Lista de instância no modelo de suplemento do SharePoint

A abordagem que você adota para criar instâncias de lista é diferente no novo modelo de Suplemento do SharePoint do que com o Código de Confiança Total. Em um cenário típico de FTC (Full Trust Code) / Farm Solution, as instâncias de lista foram criadas com código declarativo e implantadas por meio das Soluções do SharePoint.

Em um cenário de modelo de suplemento do SharePoint, o padrão de provisionamento remoto é usado para criar instâncias de lista.

Diretrizes de alto nível

Como regra geral, gostaríamos de fornecer as diretrizes de alto nível a seguir para criar instâncias de lista.

  • Use o padrão de provisionamento remoto para criar instâncias de lista.
  • Não use código declarativo (elements.xml) para criar instâncias de lista.

Introdução

O vídeo e o exemplo de código O365 PnP a seguir demonstram como criar um Suplemento do SharePoint que fornece uma interface do usuário que permite que os usuários finais criem novas bibliotecas de documentos. Ele também demonstra como criar uma biblioteca de documentos com configurações específicas que representam coletivamente um modelo. Neste exemplo, você encontrará o código que cria uma instância de lista.

O vídeo a seguir percorre o exemplo de código.

Use o método AddList no CSOM do SharePoint para criar uma instância de lista por meio do padrão de provisionamento remoto. O código a seguir retirado do ECM. DocumentLibraries (O365 PnP Code Sample) ilustra como fazê-lo.

private void CreateLibrary(ClientContext ctx, Library library, string associateContentTypeID)
{
    if (!ctx.Web.ListExists(library.Title))
    {
      // Create List Instance
        ctx.Web.AddList(ListTemplateType.DocumentLibrary, library.Title, false);
        List _list = ctx.Web.GetListByTitle(library.Title);

      //Set Description
        if(!string.IsNullOrEmpty(library.Description))
        {
        _list.Description = library.Description;
        }

      //Turn on versioning
        if(library.VerisioningEnabled) {
          _list.EnableVersioning = true;
        }

    //Turn on Content Types
        _list.ContentTypesEnabled = true;
        _list.Update();

      //Add Content Type to List
        ctx.Web.AddContentTypeToListById(library.Title, associateContentTypeID, true);

        //Remove the default Document Content Type
        _list.RemoveContentTypeByName(ContentTypeManager.DEFAULT_DOCUMENT_CT_NAME);

        ctx.Web.Context.ExecuteQuery();
    }
}

O exemplo de código a seguir ilustra como criar uma instância de lista com a API REST do SharePoint. Este exemplo vem da referência de API REST de Listas e itens de lista (Artigo MSDN)

executor.executeAsync({
  url: "<app web url>/_api/SP.AppContextSite(@target)/web/lists
    ?@target='<host web url>'",
  method: "POST",
  body: "{ '__metadata': { 'type': 'SP.List' }, 'AllowContentTypes': true, 'BaseTemplate': 100,
    'ContentTypesEnabled': true, 'Description': 'My list description', 'Title': 'Test title' }",
  headers: { "content-type": "application/json;odata=verbose" },
  success: successHandler,
  error: errorHandler
});

Exemplos de PnP

Aplicável a

  • Office 365 Multilocatário (MT)
  • Office 365 dedicado (D) parcialmente
  • SharePoint 2013 local, parcialmente

Os padrões para dedicados e locais são idênticos às técnicas de modelo do suplemento do SharePoint, mas há diferenças nas possíveis tecnologias que podem ser usadas.