quarta-feira, 30 de novembro de 2011

Desenvolvendo Connectable Web Parts para o SharePoint 2010


Mostrarei aqui como desenvolver web parts para o SharePoint 2010 através do Visual Studio 2010 que comuniquem entre si, ou seja, enviem e recebam informações de umas para as outras que estão contidas na mesma página.
Começaremos criando um novo projeto “Empty SharePoint Project”, escolha “Deploy as a farm solution”.

Vamos agora criar a interface quem iremos utilizar para definir os valores que iremos enviar e receber.

Aqui vamos criar uma interface básica com uma simples string.

public interface IWPInterface02
{
    string Text { get; set; }
}



Com a interface criada, vamos agora adicionar duas Web Parts ao projeto (botão direito no projeto -> Add - > New item -> Web Part):

Obs.: Neste exemplo não estou utilizando “Visual Web Part”.



-WPConsumer: Web part que irá receber o valor e exibir através de um TextBox.

-WPProvider: Web part que irá enviar um texto digitado em um TextBox e será enviado ao clique de um Button.

Com as duas web parts devidamente criadas, vamos agora adicionar o código necessário para realização da funcionalidade.

No arquivo .cs da WPProvider adicionamos o seguinte código:

//Devemos adicionar a interface "IWPInterface02" pois faremos a implementação dela abaixo
[ToolboxItemAttribute(false)]
public class WPProvider : WebPart, IWPInterface02
{

    //Declaração dos controles utilizados
    private Label lbl;
    private TextBox txt;
    private Button btn;
    public String _text = String.Empty;

    //Implementação de get e set
    [Personalizable()]
     public string Text
    {
        get
        {
            return _text;
        }

        set
        {
            _text = value;
        }
    }


    protected override void CreateChildControls()
    {

        //Criação dos controles na web part

        Controls.Clear();

        lbl = new Label();
        lbl.ID = "lbl";
        lbl.Text = "Digite um texto:";

        Controls.Add(lbl);


        txt = new TextBox();
        txt.ID = "txt";
        txt.Text = "";

        Controls.Add(txt);

        Controls.Add(new LiteralControl("<br>"));


        btn = new Button();
        btn.ID = "btn";
        btn.Text = "Enviar texto";
        btn.Click += new EventHandler(Button1_Click);

        Controls.Add(btn);

    }


    //Conexão
    [ConnectionProvider("Provider for String From TextBox", "TextBoxStringProvider")]
    public IWPInterface02 TextBoxStringProvider()
    {
        return this;
    }


    //Evento Click do botão que fará o envio do texto digitado para a propriedade Text
    void Button1_Click(object sender, EventArgs e)
    {

        if (txt.Text != String.Empty)
        {
            Text = txt.Text;
            txt.Text = String.Empty;
        }
    }

}



Agora vamos adicionar o código abaixo no arquivo .cs da WPConsumer.

[ToolboxItemAttribute(false)]
public class WPConsumer : WebPart
{
    private IWPInterface02 provider02;

    //Declaração do controle
    private TextBox txt;

    protected override void CreateChildControls()
    {
        //Criação dos controles na web part
        Controls.Clear();
        txt = new TextBox();
        txt.ID = "txtConsumer";
        txt.Text = "";

        Controls.Add(txt);
    }

    //Conexão
    [ConnectionConsumer("String Consumer", "StringConsumer")]
    public void TextBoxStringConsumer(IWPInterface02 Provider)
    {
        provider02 = Provider;
    }



    protected override void OnPreRender(EventArgs e)
    {
        EnsureChildControls();

        if (provider02 != null)

        {
            //Atribui o valor presente no provider para o TextBox
            txt.Text = provider02.Text;
        }
    }

}



Os códigos acima adicionados estão todos comentados a respeito da funcionalidade de cada bloco.
Agora basta realizar o deploy através do próprio Visual Studio 2010 e adicionar as duas web parts em uma mesma página e ver o resultado.

Desenvolvimento e deploy de sandboxed web parts no SharePoint 2010



Mostrarei aqui como realizar o desenvolvimento  e o deploy de uma web part como sandboxed solution.



Começaremos criando um novo projeto do tipo “Empty SharePoint Project” em SharePoint -> 2010.

Na tela que aparecerá selecione “Deploy as a sandboxed solution”.

Com o nosso projeto criado agora devemos adicionar uma web part, clicando com o botão direito do mouse sobre o nosso projeto e no menu que irá aparecer clicar em Add-> New Item.

Na janela que aparecerá selecione “Web Part”. Agora vá até o .cs de sua web part e no método CreateChildControls adicione o seguinte código:

base.CreateChildControls();

try
{

    Label label = new Label();
    label.ID = "lblTexto";
    label.Text = "Sandboxed web part deployed !";
    label.Visible = true;

    this.Controls.Add(label);

}
catch (Exception ex)
{
    throw ex;
}


No código acima apenas adicionei um label à web part e alterei sua propriedade Text para podermos visualizar a web part adicionada em uma página do SharePoint.
Com isso agora basta você dar um Build (clique com botão direito no projeto -> Build) e em seguida um Package (clique com botão direito no projeto -> Package) no projeto para gerar o .wsp que iremos realizar o deploy no servidor.

Com seu arquivo .wsp gerado com sucesso vá até o site do SharePoint 2010 onde deseja utilizar a solução.

Clique em Site Actions -> Site Settings na próxima página clique em Solutions em Galleries.

Na aba Solutions clique em Upload Solution e selecione o arquivo .wsp gerado que se encontra na pasta bin/Debug do seu projeto do Visual Studio 2010.

Agora, na janela que irá aparecer com as informações de sua solução, clique em Activate.
Pronto, sua web part estará pronta para utilização. Basta adicionar a sua web part na página onde desejar.

terça-feira, 8 de novembro de 2011

Manipulando lista do SharePoint 2010 com WCF Data Services

Apresentarei neste post como manipular uma lista do SharePoint através da utilização de WCF Data Services para isto.

Primeiro, devemos adicionar ao nosso projeto a referência do serviço que iremos utilizar, que neste caso se chama “ListData”.

Para isso você deve acessar o Service Reference na aba Solution Explorer e adicionar um serviço.




Na tela que irá aparecer, digite http://nome_do_seu_servidor/_vti_bin/ListData.svc e clique em Go. Agora altere o nome do Namespace para WCFListData.




Com a referência criada, agora vamos ao nosso código, neste exemplo adicionei o código abaixo no evento Click de um botão criado simplesmente para executar esta ação.

Você deve ajustá-lo da maneira como melhor se adequar ao seu projeto, pois neste exemplo estou utilizando minha lista que se chama “Lista002”, desta maneira você deve alterar os métodos por métodos equivalentes para a sua lista.


WCFListData.HomeDataContext dc = new WCFListData.HomeDataContext(new Uri("http://nome_do_seu_servidor/_vti_bin/ListData.svc"));
dc.Credentials = CredentialCache.DefaultCredentials;

//CÓDIGO RESPONSÁVEL POR LER VALORES DA LISTA E ADICIONAR
//O VALOR CONTIDO NO CAMPO TITLE DE CADA ITEM EM UMA LISTA

var lista = dc.Lista002;
List<string> TitleList = new List<string>();
foreach (var item in lista)
{
    TitleList.Add(item.Title);
}


//CÓDIGO RESPONSÁVEL POR ADICIONAR UM ITEM NA LISTA
WCFListData.Lista002Item itemLista002 = new WCFListData.Lista002Item();
itemLista002.Title = "Item - Hora: " + DateTime.Now.ToLongTimeString();
dc.AddToLista002(itemLista002);
dc.SaveChanges();


No código acima inicializamos o HomeDataContext com o mesmo endereço adicionado como Serviço. É sempre bom lembrar que devemos sempre definir as credenciais de acesso que serão utilizadas para realizar as ações.

As outras ações implementadas são de fácil entendimento, mas vale ressaltar também a importância do método SaveChanges ao final para salvar as alterações realizadas, como por exemplo ao adicionar um novo item em nossa lista.

Após a execução deste código você poderá ver o resultado acessando sua lista.

quinta-feira, 3 de novembro de 2011

Adicionando itens de uma lista do SharePoint 2010 com .NET

Neste post mostrarei através de um projeto Windows Forms no Visual Studio 2010 como utilizar a referência Microsoft.SharePoint.dll para adicionar itens em uma lista do SharePoint 2010.


Neste exemplo estou utilizando um Form com um botão e vou adicionar um item na lista de Avisos, que é padrão do SharePoint 2010.

Primeiro devemos adicionar como referência do projeto o Microsoft.SharePoint:




Depois basta você inserir o código abaixo no código de algum evento que você deseja, neste exemplo inseri no evento OnClick de um botão localizado no meu Formulário principal:

//Acessamos o site utilizando sua URL
using (SPSite site = new SPSite("
http://matheusdev"))
{

    //Acessamos a web application utilizando seu nome que neste caso é vazio
    using (SPWeb web = site.AllWebs[""])
    {

        //Acessamos a lista utilizando seu nome
        SPList list = web.Lists["Avisos"];

        SPListItem item = list.Items.Add();
        item["Título"] = "Título do item adicionado às " + DateTime.Now.ToShortTimeString();
        item["Corpo"] = "Corpo do item adicionado";
        item["Vencimento"] = DateTime.Now.AddDays(10);

        item.Update();
    }
}

O código acima está todo comentado, para você utilizar na sua aplicação você deve alterar o nome do site, nome da web application, nome da lista e o nome dos campos da lista.

Assim você poderá conferir seus dados visitando sua lista do SharePoint:







OBS.: É sempre bom lembrar que ao utilizar as classes SPSite e SPWeb devemos utilizar o using ou caso não seja usado, lembrar sempre de realizar o Dispose dos objetos criados para evitar qualquer dado não utilizado na memória.

quarta-feira, 2 de novembro de 2011

Introdução ao Windows Phone 7

Pessoal,

Segue um link para um vídeo do MSDN muito bom a respeito de desenvolvimento para Windows Phone 7, inclusive dando uma visão geral de como as aplicações são distribuídas.


http://msdn.microsoft.com/pt-br/windowsphone/hh207458