SharePoint 4 Developers

Guia de referência adicional em desenvolvimento .NET / SharePoint

Apresentação no SPUG Auckland

Oi pessoal,

Estarei apresentando no SharePoint User Group Auckland dia 20 de maio sobre "Leveraging SharePoint Single Page Apps".

Nesta apresentação vou abordar como usufruir da arquitetura de Apps no SharePoint com a utilização de Single Page Apps. 

Vamos ver o conceito, pros, cons e frameworks de javascript utilizados no desenvolvimento. Os superheróis da Liga da Justica estarão por lá, se puder dê uma passada por lá.

Mais detalhes: http://www.meetup.com/Auckland-SharePoint-User-Group/events/179945782/

[]'s,

Marcel Medina

Clique aqui para ler o mesmo conteúdo em Inglês.

SocialCommentControl - html5 bug

Este post mostra o fix para fazer o controle SocialCommentControl funcionar com Html5. No SP2013 este controle foi descontinuado (deprecated), o que explica o porquê de nada ter sido feito ao controle. Veja como corrigir o bug.

Oi pessoal,

Bom estar de volta falando sobre minhas experiências com SharePoint 2013. Já faz um tempinho desde meu último post, dessa vez estou postando sobre um fix para fazer o controle SocialCommentControl funcionar com Html5.

No SP2013 este controle foi descontinuado (deprecated), o que explica o porquê de nada ter sido feito ao controle. Ao adicioná-lo a uma page layout o markup quebra.

Nesse post estou falando desse controle, mas se você está usando SocialCommentWebpart o comportamento é o mesmo, pois ele empacota o controle com propriedades da webpart.

Googling não ajudou muito, então decidi fazer engenharia reversa dos assemblies SharePoint e ver a implementação. O problema está na html div tag. Com Html 5 self-closing tags não funcionam, e esse controle utiliza esse tipo de implementação, veja abaixo:

  1. protected override void CreateChildControls()
  2. {
  3.     base.CreateChildControls();
  4.     if (!this.IsUPAEnabled)
  5.     {
  6.         string text = SPHttpUtility.HtmlEncode(StringResourceManager.GetString(LocStringId.SocialComment_NeedAuthenticatedMessage));
  7.         text = string.Format(CultureInfo.InvariantCulture, "<span>{0}</span>", new object[]
  8.         {
  9.             text
  10.         });
  11.         this.Controls.Add(new LiteralControl(text));
  12.         return;
  13.     }
  14.     this.Controls.Add(new LiteralControl("<div class=\"ms-socialCommentContents\" id=\"" + this.RootElementId + "\">"));
  15.     if (this.IsShowNewArea)
  16.     {
  17.         this.RenderNewArea();
  18.     }
  19.     this.RenderEditArea();
  20.     this.RenderErrorArea();
  21.     this.RenderPagingControlContainer();
  22.     this.Controls.Add(new LiteralControl("<div id=\"" + this.ClientID + "_PlaceHolder\" />"));
  23.     this.Controls.Add(new LiteralControl("</div>"));
  24. }
A linha 14 mostra o problema. A tag div é self-closed, o que não funciona com html 5.

A solução para esse caso é simples. Pelo fato de não haver uma closing tag, adicionando-a o problema é eliminado.

Crie uma nova classe, faça a herança de SocialCommentControl e override o método CreateChildControls() adicionando a closing tag. Conforme exibido abaixo:

  1. public class SocialCommentHtml5Control : SocialCommentControl
  2.     {
  3.         protected override void CreateChildControls()
  4.         {
  5.             base.CreateChildControls();
  6.             this.Controls.Add((Control)new LiteralControl("</div>"));
  7.         }
  8.     }

É isso. Adicione o controle a sua page layout e utilize no SP2013.

Espero que isso ajude.

[]’s,

Referência:
Microsoft Forum

Clique aqui para ler o mesmo conteúdo em Inglês.

Renomeando os databases do Search service application no SharePoint 2013

Se voc&#234; estiver utilizando esse artigo http://technet.microsoft.com/pt-br/library/jj219654.aspx para renomear search service application databases, preste aten&#231;&#227;o que a seguinte abordagem n&#227;o funciona para alguns databases. Segue aqui o workaround.

Oi pessoal,

Se você estiver utilizando esse artigo: http://technet.microsoft.com/pt-br/library/jj219654.aspxpara renomear search service application databases, preste atenção que a seguinte abordagem não funciona:

 
Para renomear os bancos de dados usando o SQL Server Management Studio
  1. No Management Studio, conecte-se à instância de fonte do SQL Server e expanda o nó Banco de Dados.

  2. Clique com o botão direito no banco de dados do aplicativo de serviço de Pesquisa que deseja renomear, clique em Renomear e digite o novo nome. Repita essa etapa para cada banco de dados que deseja renomear.

OBS: Isso não é correto se aplicado a todos os databases!

Essa abordagem só funciona com o AnalyticsReporting database!

Aqui está a parte crítica que não é explicada no artigo:

Se você quiser renomear os databases Crawl e Links, faça o backup de cada um deles e então faça o restore com os novos databases renomeados.

Então prossiga com o artigo. Preste atenção que existem erros de digitação com os trechos de código fornecidos, conforme já mencionado aqui.

Espero que isso ajude,

[]'s,

Marcel Medina

Clique aqui para ler o mesmo conteúdo em Inglês.