Nesse artigo vou ensinar como criar uma solution bem simples em Sharepoint 2010.
Primeiramente abra o visual studio 2010 e crie um novo projeto "Empty Sharepoint Project" como mostra a imagem abaixo.
Específique o site do sharepoint ao qual você pretende realizar os testes de desenvolvimento e escolha a opção "Deploy as farm solution". Click em "Finish".
Obs.:
- Sandboxed Solution
Sandboxed Solutions são soluções seguras que são executadas em um processo separado do servidor. Tais soluções são restringidas a serem executadas somente com subset de APIs e dentro do mesmo Site Collection. Estas soluções são monitoradas e caso alguma delas traga alguma instabilidade são automaticamente finalizadas, o que traz mais segurança à estabilidade do farm.
O objetivo principal da utilização de Sandboxed Solutions é de agilizar os negócios, permitindo que as soluções sejam criadas e disponibilizadas rapidamente, sem que haja a relutância do deploy por Administradores do Farm uma vez que são soluções mais seguras.
Agora já temos um Projeto para o sharepoint para começarmos a criar o que queremos.
Nesse exemplo vamos fazer algo muito simples, vamos criar uma lista. Clique com o botão direito sobre o projeto depois vá em Add --> New Item.
Escolha a opção "List Definition"
Defina o nome da lista, escolha o tipo da lista para "Custom field" e marque a opção "Add a list instance for this list definition" igual na imagem abaixo:
Clique em "finish" e alguns arquivos serão adicionados a sua solution. Repare que foi criado uma feature, um list definition e um list instance.
Dê um Rebuild no projeto e verifique se está compilando corretamente.
Agora vamos fazer o deploy!!!
Clique com o botão direito sobre o projeto e clique em "Deploy".
Aguarde aparecer no canto esquerdo inferior a mensagem "Deploy Succeeded".
Abra o site escolhido por você para realizar o deploy e verifique se o a lista aparece igual a imagem abaixo.
Como demonstrado é bem simples realizar o deploy com o Sharepoint 2010 comparado com o Sharepoint 2007.
Agora vamos melhorar nossa solution e incluir mais campos a nossa lista.
Renomei o "ListInstance1" para "SampleList".
Em Elements.xml dentro de SampleList mude o Title para apenas "Sample List"
Clique em Feature1 e mude o título para "Project Test feature"
Clique com o botão direito sobre Feature1 e depois clique em "add event Receiver"
Será criado uma classe com os eventos da Features vamos descomentar por enquanto o evento FeatureActivated
Adicione o código abaixo para criar algun campos na nossa lista.
public override void FeatureActivated(SPFeatureReceiverProperties properties)
{
using (SPWeb web = ((SPWeb)properties.Feature.Parent))
{
SPList sampleList = web.Lists["Sample List"];
string fldDescriptionName = sampleList.Fields.Add("Description", SPFieldType.Text, false);
string fldDateName = sampleList.Fields.Add("Date", SPFieldType.DateTime, true);
sampleList.Update();
SPFieldText fldDescription = (SPFieldText)sampleList.Fields[fldDescriptionName];
fldDescription.MaxLength = 250;
fldDescription.Update();
SPFieldDateTime fldDate = (SPFieldDateTime)sampleList.Fields[fldDateName];
fldDate.DisplayFormat = SPDateTimeFieldFormatType.DateOnly;
fldDate.Update();
}
}
Agora vamos testar novamente, clique em Deploy e veja novamente o resultado.