Archive

Posts Tagged ‘Client Object Model’

Como fazer Upload de arquivos no SharePoint 2010 usando Client Object Model

October 17, 2010 Leave a comment

Olá! Smile

Para fazer upload de arquivos no SharePoint 2010 usando o Client Object Model, use o seguinte código:

Code Snippet
  1. using (ClientContext clientContext = new ClientContext("http://notebook01/sites/bi"))
  2.                 {
  3.                     using (FileStream fs = new FileStream("Chart.xlsx", FileMode.Open))
  4.                     {
  5.                         Microsoft.SharePoint.Client.File.SaveBinaryDirect(clientContext, "/sites/bi/Documents/Chart.xlsx", fs, true);
  6.                     }                    
  7.                 }

 

Lembre-se de adicionar as Referências necessárias para utilizar o Client OM do SharePoint 2010.

image

Code Snippet
  1. using Microsoft.SharePoint.Client;

 

Abraço!

Acessando e processando dados externos de planilhas via Excel Services Web Services usando uma WebApplication e SharePoint 2010 Client Object Model

October 17, 2010 1 comment

Olá! Smile

Overview:

Este post mostra como atualizar dados externos de planilhas no Excel Services em runtime, usando uma WebApplication e SharePoint 2010 Client Object Model.

No final deste post, encontre informações de como fazer o mesmo procedimento usando uma WebPart. Além disso, toda a explicação do motivo do código desenvolvido abaixo.

SOLUÇÃO:

Como o post relacionado abaixo explica o cenário de utilização do meu código, vamos direto ao ponto. Bom proveito! J

Code Snippet
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Web;
  5. using System.Web.UI;
  6. using System.Web.UI.WebControls;
  7.  
  8. using System.Web.Services.Protocols;
  9. using SampleExcelServiceApplication.ExcelService;
  10. using Microsoft.SharePoint.Client;
  11. using System.IO;
  12.  
  13. namespace SampleExcelServiceApplication
  14. {
  15.     public partial class _Default : System.Web.UI.Page
  16.     {
  17.         protected void Page_Load(object sender, EventArgs e)
  18.         {
  19.             ExcelService.ExcelService es = new ExcelService.ExcelService();
  20.  
  21.             string workbookpath = "http://notebook01/sites/bi/documents/Chart.xlsx";
  22.             Status[] outStatus;
  23.  
  24.             es.Credentials = System.Net.CredentialCache.DefaultCredentials;
  25.  
  26.             try
  27.             {
  28.                 string sessionid = es.OpenWorkbook(workbookpath, "en-US", "en-US", out outStatus);
  29.                                 
  30.                 es.Refresh(sessionid, "notebook01_sqlexpress SSAS Teste Eventos");
  31.  
  32.                 byte[] contents = es.GetWorkbook(sessionid, WorkbookType.FullWorkbook, out outStatus);
  33.  
  34.                 using (ClientContext clientContext = new ClientContext("http://notebook01/sites/bi"))
  35.                 {
  36.                     Microsoft.SharePoint.Client.File.SaveBinaryDirect(clientContext,"/sites/bi/Documents/Chart.xlsx",new MemoryStream(contents),true);
  37.                 }
  38.  
  39.                 es.CloseWorkbook(sessionid);
  40.             }
  41.             catch (Exception ex)
  42.             {
  43.                 Label lblmensagem = new Label();
  44.                 lblmensagem.Text = ex.ToString();
  45.                 this.Controls.Add(lblmensagem);
  46.             }
  47.         }
  48.     }
  49. }

 

Abraço!

Post relacionado: https://thiagottss.wordpress.com/2010/10/17/acessando-e-processando-dados-externos-de-planilhas-via-excel-services-web-services/

Usando Client Object Model do SharePoint 2010 para melhorar a Experiência do Usuário (UX)

April 25, 2010 Leave a comment

Overview

Com o lançamento do SharePoint Foundation 2010 e SharePoint Server 2010, a Microsoft introduziu novas funcionalidades ao produto. Uma delas, o Client Object Model, usando Javascript podemos, rapidamente, dar uma experiência muito mais rica ao usuário que utilizar a plataforma SharePoint 2010.

Neste artigo, vou detalhar como podemos utilizar o Dialog Box, Notification Area e o Alert Area. Veja, nas imagens abaixo estes recursos em ação:

Dialog Box – SP.UI.ModalDialog

image

Notification Area – SP.UI.Notify

image

Alert Area – SP.UI.Status

image

Solução

Para essa solução vou trabalhar com os seguintes produtos e tecnologias:

· Windows 7 Enterprise;

· SharePoint Foundation 2010 BETA;

· Visual Studio 2010 Ultimate BETA;

· SQL Server 2008 Express;

Vamos nessa?! Go! Go!

Criando nosso projeto no Visual Studio 2010 para SharePoint 2010

Este artigo não irá detalhar como criar, configurar e efetuar o deploy de WebParts no SharePoint 2010, caso precise de informações sobre este passo, veja: Visual Web Parts no SharePoint 2010.

1. Usando o Dialog Box do SharePoint 2010

1.1. Crie uma nova Visual WebPart, dê o nome de UIDemo (vamos utilizar esta mesma Web Part em todas as demonstrações realizadas neste artigo) e depois clique em Add;

image

1.2. Automaticamente, o Visual Studio irá abrir o arquivo .ascx, ou, no nosso caso, o UIDemoUserControl.ascx. Logo abaixo das tags de registro, adicione o seguinte script que usa o SP.UI.ModalDialog:

<script type="text/javascript">

//Abrir o Dialog

function OpenDialog() {

var options = SP.UI.$create_DialogOptions(); //variável que recebe as opções do Dialog

options.url = "http://www.bing.com.br/&quot;; //URL que o Dialog irá abrir

options.width = 500; //largura do Dialog

options.height = 400; //altura do Dialog

options.dialogReturnValueCallback = Function.createDelegate(null, null); //função que recebe a resposta da ação do usuário, iremos usar isso posteriormente

SP.UI.ModalDialog.showModalDialog(options); //chamando o Dialog Box

}

</script>

1.3. Logo abaixo da tag de fechamento do Script, vamos usar um hyperlink para iniciar a função, algo bem simples, como este código abaixo:

<br /> <a href="Javascript:OpenDialog();">Clique aqui</a> para iniciar a Demo!

1.4. Ao realizar estas tarefas, seu código deve se parecer com este abaixo:

image

1.5. Efetue o deploy da nossa WebPart e depois adicione-a ao seu site SharePoint, vamos testá-la!

image

image

Neste ponto, utilizamos o Dialog Box para abrir uma URL que escolhemos. No próximo passo, vamos utilizar o Notification Area pegando o Callback do Dialog Box, e assim mudando a mensagem pro usuário de acordo com a ação Ok ou Cancel do Dialog Box.

2. Usando o Notification Area juntamente com o Dialog Box

2.1. Voltando ao nosso projeto, vamos adicionar mais linhas ao nosso script. Adicione o seguinte:

var messageId; //variável que irá receber a notificação

//função que recebe a resposta da ação do usuário

function CloseCallback(result, target) {

if (result === SP.UI.DialogResult.OK) //Se o usuário fechar clicando em Ok ou Save

{

messageId = SP.UI.Notify.addNotification("<img src=’_layouts/images/loadingcirclests16.gif’> Operação realizada com <b>sucesso!</b>…", false, "", null);

}

if (result === SP.UI.DialogResult.cancel) //Se o usuário fechar clicando em Cancel ou fechando a janela no ‘X’

{

SP.UI.Notify.addNotification("A Operação foi cancelada…", false, "", null);

}

}

2.1.1. Nota: Observem que usei tags HTML no Notification Area.

2.2. Mude a linha do script do Dialog para pegar esta função, remova as definições de tamanho do Dialog, e altere a URL para uma URL válida de New Item de uma das listas do SharePoint. Veja como fica a função atualizada:

//Abrir o Dialog

function OpenDialog() {

var options = SP.UI.$create_DialogOptions(); //variável que recebe as opções do Dialog

options.url = "http://doneit-note-002/Lists/Announcements/NewForm.aspx?RootFolder=&IsDlg=1&quot;; //URL que o Dialog irá abrir

options.dialogReturnValueCallback = Function.createDelegate(null, CloseCallback); //função que recebe a resposta da ação do usuário

SP.UI.ModalDialog.showModalDialog(options); //chamando o Dialog Box

}

2.3. Ao final de todas estas modificações, seu código deverá se parecer com este aqui:

image

2.4. Agora vamos lá, Deploy e vamos testar nossa WebPart atualizada:

image

2.4.1. Ao cancelar a janela:

image

2.4.2. Ao salvar o item:

image

Neste ponto, usamos o Notification Area para quando a resposta do usuário ao Dialog Box, exibir determinada mensagem. Agora vamos um pouco mais de funcionalidade à nossa demo usando o Alert Area.

3. Usando o Alert Area para indicar uma área restrita do site

3.1. Voltando ao nosso projeto, vamos adicionar mais linhas ao nosso script. Adicione o seguinte à nossa função de retorno da ação do DialogBox (CloseCallback):

//adicionando o alerta, vejam que aqui também podemos utilizar Tags HTML

statusId = SP.UI.Status.addStatus("Alerta: ",

"Área Restrita. <a href=’#’ onclick=’javascript:RemoveStatus();’>Clique aqui</a> para remover este aviso.", true);

SP.UI.Status.setStatusPriColor(statusId, "red"); //setando a cor do respectivo alerta

3.2. E também a função que chamamos para remover o Alerta:

//função para remover o Alerta

function RemoveStatus() {

SP.UI.Status.removeStatus(statusId);

}

3.3. Como obersaram usei um nova variável, então, também devemos declará-la no código:

var statusId; //variável que irá receber os alertas para Alert Area

3.4. No final, implementei mais uma função para ilustrar um pouco, como podemos usar essas novas funcionalidades para melhorar a Experiência do Usuário:

//função apenas para ilustrar como podemos usar o Notification Área

function Loading() {

SP.UI.Notify.addNotification("<img src=’_layouts/images/loadingcirclests16.gif’> loading…", false, "", null);

}

3.5. Nosso código deverá se parecer com este:

<script type="text/javascript">

//Abrir o Dialog

function OpenDialog() {

var options = SP.UI.$create_DialogOptions(); //variável que recebe as opções do Dialog

options.url = "http://doneit-note-002/Lists/Announcements/NewForm.aspx?RootFolder=&IsDlg=1&quot;; //URL que o Dialog irá abrir

options.dialogReturnValueCallback = Function.createDelegate(null, CloseCallback); //função que recebe a resposta da ação do usuário

SP.UI.ModalDialog.showModalDialog(options); //chamando o Dialog Box

}

var messageId; //variável que irá receber a notificação

var statusId; //variável que irá receber os alertas para Alert Area

//função que recebe a resposta da ação do usuário

function CloseCallback(result, target) {

if (result === SP.UI.DialogResult.OK) //Se o usuário fechar clicando em Ok ou Save

{

messageId = SP.UI.Notify.addNotification("<img src=’_layouts/images/loadingcirclests16.gif’> Operação realizada com <b>sucesso!</b>…", false, "", null);

//adicionando o alerta, vejam que aqui também podemos utilizar Tags HTML

statusId = SP.UI.Status.addStatus("Alerta: ", "Área Restrita. <a href=’#’ onclick=’javascript:RemoveStatus();’>Clique aqui</a> para remover este aviso.", true);

SP.UI.Status.setStatusPriColor(statusId, "red"); //setando a cor do respectivo alerta

}

if (result === SP.UI.DialogResult.cancel) //Se o usuário fechar clicando em Cancel ou fechando a janela no ‘X’

{

SP.UI.Notify.addNotification("A Operação foi cancelada…", false, "", null);

}

}

//função para remover o Alerta

function RemoveStatus() {

SP.UI.Status.removeStatus(statusId);

}

//função apenas para ilustrar como podemos usar o Notification Área

function Loading() {

SP.UI.Notify.addNotification("<img src=’_layouts/images/loadingcirclests16.gif’> loading…", false, "", null);

}

</script>

<br /> <a href="Javascript:Loading();OpenDialog();">Clique aqui</a> para iniciar a Demo!

3.6. Vamos lá, novo teste! Faça o Deploy da Webpart e vamos testar o que acontece quando salvamos um novo item:

image

É isso aí pessoal! Enjoy it!

Conclusão

Nesse artigo nós apresentamos como utilizar três das principais novidades na Experiência do Usuário (UX) usando o novo SharePoint 2010.

Como puderam perceber, podemos utilizar estes recursos em nossas aplicacões customizadas e garantir uma boa experiência do usuário que utiliza a plataforma SharePoint 2010.

E o SharePoint 2010 não para por aqui, ainda há muito coisa nova, como os Ribbons, por exemplo!

Informações adicionais:

Podemos utilizar o Client Object Model do SharePoint para muita coisa e não somente para UI. Confiram:

http://msdn.microsoft.com/en-us/library/ee857094(office.14).aspx – Using the SharePoint Foundation 2010 Managed Client Object Model