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
});
Links relacionados
- Lista e lista itens de referência de API REST (Artigo MSDN)
- Definições de lista / modelos de lista (receita de modelo de suplemento do SharePoint)
- Modelos de documento e lista com modelo de aplicativo (Vídeo PnP do O365)
- Artigos de diretrizes em https://aka.ms/OfficeDevPnPGuidance
- Referências no MSDN em https://aka.ms/OfficeDevPnPMSDN
- Vídeos em https://aka.ms/OfficeDevPnPVideos
Exemplos de PnP
- ECM. DocumentLibraries (O365 PnP Code Sample)
- Exemplos e conteúdo em https://github.com/SharePoint/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.