Rodrigo Romano – MVP SharePoint Server

Registros de um Especialista SharePoint :)

Windows 10 – Technical Preview

leave a comment »


Olá SharePointers,

Para quem não está muito antenado com as novidades, hoje (01/10) foi liberado para o público em geral os testes do Windows 10 – Technical Preview. Para quem quiser fazer o download, está disponível aqui: http://windows.microsoft.com/pt-br/windows/preview-download

ATENÇÃO: Para quem quiser instalar, lembre-se de fazer um backup e pontos de restauração para voltar a máquina ao estado original.

Como um “Early Adopter”, instalei em minha máquina…. Confiram o resultado:

A tela de instalação é semelhante à do Windows 8.1

image

Achei bem interessante à interligação com o OneDrive. Tudo nativo, sem instalar nenhum utilitário.

image

 

Esse é o seu desktop, logo após a instalação:

image

Menu Iniciar

image

 

image

Janelas sem bordas, menu iniciar expandido:

image

Suporte à multiplos desktops

image

E o mais importante…… kkkk CTRL+C e CTRL+V dentro do command e do powershell 😀

 

O que acharam?

Written by Rodrigo Romano

October 1, 2014 at 3:02 pm

MVP Showcast – 2014

leave a comment »


Olá SharePointers,

Anualmente acontece uma série de Webcasts realizados por MVPs brasileiros que abordam assuntos diversos de suas especialidades. São 3 trilhas, infra-estrutura, desenvolvimento e produtividade.

O conteúdo das palestras são bem interessantes, vale a pena conferir. O site do evento é: https://mvpshowcast.azurewebsites.net.

Eu participarei desse evento fazendo um webcast junto com o Carlos Citrangulo falando sobre produtividade com o SharePoint 2013. Inscrevam-se: https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032594716&Culture=pt-BR&community=0

Abraços!

Written by Rodrigo Romano

August 26, 2014 at 10:53 am

Posted in Dicas, SharePoint

Tagged with , , ,

SharePoint 2013: Shredded storage

leave a comment »


Olá SharePointers,

Hoje vou falar um pouco sobre Shredded storage e como o SharePoint se comporta utilizando esse recurso.

Antes de mais nada, vamos ao significado do verbo “Shred” que significa cortar, despedaçar, retalhar. Trazendo para o mundo do SharePoint, Shredded storage é uma grande melhoria na gestão de objetos binários (os “BLOBs” – que basicamente são arquivos como Planilhas do Excel, Documentos do Word, Vídeos, etc.).

Quem trabalha com o SharePoint desde as versões anteriores (pode ser a 2010 :D) sabe que versionamento, por exemplo, era um grande problema quando o ponto de vista era armazenamento. A cada alteração no documento, o SharePoint realizava uma cópia completa do arquivo e armazenava isso no banco de dados.

Agora, imaginem o seguinte cenário: Supondo que em arquivo de 10MB seja alterado 5 vezes por dia, logo, consumirá 50MB de espaço por dia.

É importante ressaltar que os softwares client da Microsoft (leia: o Pacote Office – Word, Excel, PowerPoint, etc.) já possuiam a tecnologia para que quando um arquivo aberto do SharePoint fosse salvo, somente o diferencial era enviado pela rede (over-the-wire, de volta ao SharePoint) e o SharePoint fazia o trabalho de fazer um “Merge” do arquivo original com o diferencial e salvar esse arquivo inteiro novamente.

O que mudou?

Com o SharePoint 2013 e a criação do Shredded storage (que utiliza o Cobalt –Sincronização de arquivos via SOAP – HTTP), esse BLOB que antes era armazenado em 1 linha do banco de dados SQL Server, agora é dividido em várias linhas. Quando um usuário faz a alteração em algum arquivo, o SharePoint é capaz de identificar qual registro foi alterado e alterar somente esse pedaço – bem reduzido – do arquivo, reduzindo o overhead de utilização de disco, estimada em 2x.

Isso funciona somente com arquivos do Office?

Não. A grande sacada é que funciona com qualquer tipo de arquivo. Não precisa ser do Office e nem muito menos a versão mais atual do Office. Qualquer arquivo se beneficiará dessa tecnologia.

 

Como ficou o armazenamento do BLOB?

Até a versão 2010, os documentos eram armazenados da seguinte forma: os metadados (propriedades do arquivo e do formato) e o stream contendo a representação binária do arquivo.

Com o SharePoint 2013, isso mudou! Temos uma tabela adicional no banco de dados de conteúdo (DocStreams) para armazenar cada pedaço do BLOB do arquivo e, ainda, temos um cache para otimizar a leitura do arquivo.

image

 

Para mais detalhes sobre o assunto, consultem as referências abaixo:

http://blogs.technet.com/b/wbaer/archive/2012/11/12/introduction-to-shredded-storage-in-sharepoint-2013.aspx

http://www.metalogix.com/blog/blog-article/13-03-18/Dispelling_the_Myths_of_Shredded_Storage_in_SharePoint_2013

http://www.microsoft.com/en-us/download/details.aspx?id=39719

Written by Rodrigo Romano

August 25, 2014 at 9:14 am

Office 365 + Salesforce

leave a comment »


Olá SharePointers,

Para quem ainda não sabe, a Microsoft investe cada vez mais em integração de forma a consolidar a sua plataforma de nuvem como sólida e líder de mercado.

A plataforma Office 365 (SharePoint, Exchange, Lync e outros produtos – http://office.microsoft.com/en-001/business/what-is-office-365-for-business-FX102997580.aspx) assume um papel interessante no mercado e sua oferta e funcionalidades fazem com que o produto seja cada vez mais lúder de mercado.

Gartner_Social_Software_Workplace.png

Magic Quadrant for Social Software in the Workplace

Além disso, vimos “recentemente” a aquisição e integração do Yammer com essa plataforma, adicionando recursos ainda mais intereressantes para o usuário final.

Não bastasse isso, foi anunciado há algum tempo uma integração forte com o Salesforce, vejam o anúncio aqui: http://www.microsoft.com/en-us/news/press/2014/may14/05-29mayannouncementpr.aspx.

Essa notícia não é propriamente nova, mas como muitos desconhecem achei que valia a pena escrever um post e comentar sobre o assunto.

O que vocês acham disso?

 

Abraços 🙂

Written by Rodrigo Romano

August 22, 2014 at 2:59 pm

SharePoint Apps: Como utilizar o People Picker?

leave a comment »


Olá SharePointers,

Hoje vou falar sobre como utilizar o People Picker quando estamos desenvolvendo uma app para SharePoint.

O primeiro passo, é carregar os scripts que serão utilizados (ver imagem abaixo) e colocar a div quer será utilizada para criação do controle dinamicamente.

image

 

Após a criação dos controles acima, basta colocar o código abaixo em um arquivo .js e adicioná-lo a página como referência que o People Picker funcionará perfeitamente.

 

// Run your custom code when the DOM is ready. $(document).ready(function () { // Specify the unique ID of the DOM element where the // picker will render. initializePeoplePicker('peoplePickerDiv'); }); // Render and initialize the client-side People Picker. function initializePeoplePicker(peoplePickerElementId) { // Create a schema to store picker properties, and set the properties. var schema = {}; schema['PrincipalAccountType'] = 'User,DL,SecGroup,SPGroup'; schema['SearchPrincipalSource'] = 15; schema['ResolvePrincipalSource'] = 15; schema['AllowMultipleValues'] = true; schema['MaximumEntitySuggestions'] = 50; schema['Width'] = '280px'; // Render and initialize the picker. // Pass the ID of the DOM element that contains the picker, an array of initial // PickerEntity objects to set the picker value, and a schema that defines // picker properties. this.SPClientPeoplePicker_InitStandaloneControlWrapper(peoplePickerElementId, null, schema); } // Query the picker for user information. function getUserInfo() { // Get the people picker object from the page. var peoplePicker = this.SPClientPeoplePicker.SPClientPeoplePickerDict.peoplePickerDiv_TopSpan; // Get information about all users. var users = peoplePicker.GetAllUserInfo(); var userInfo = ''; for (var i = 0; i < users.length; i++) { var user = users[i]; for (var userProperty in user) { userInfo += userProperty + ': ' + user[userProperty] + '<br>'; } } $('#resolvedUsers').html(userInfo); // Get user keys. var keys = peoplePicker.GetAllUserKeys(); $('#userKeys').html(keys); // Get the first user's ID by using the login name. getUserId(users[0].Key); } // Get the user ID. function getUserId(loginName) { var context = new SP.ClientContext.get_current(); this.user = context.get_web().ensureUser(loginName); context.load(this.user); context.executeQueryAsync( Function.createDelegate(null, ensureUserSuccess), Function.createDelegate(null, onFail) ); } function ensureUserSuccess() { $('#userId').html(this.user.get_id()); } function onFail(sender, args) { alert('Query failed. Error: ' + args.get_message()); }

Bem simples, não acharam?

 

Abraços! 😀

 

Referência

http://msdn.microsoft.com/en-us/library/jj713593.aspx

Written by Rodrigo Romano

August 11, 2014 at 9:47 am

Troubleshooting SharePoint/Office365: Sideloading of apps is not enabled on this site

leave a comment »


Olá SharePointers,
Estava desenvolvendo uma SharePoint Hosted app para o Office 365 e, para minha surpresa, apareceu o erro abaixo.
Esse erro acontecia quando quando tentava fazer o deploy via Visual Studio.

 

Para resolver esse erro, basta rodar o script que está disponível nesse link: http://1drv.ms/1qDs0oy

 

Referência:

http://blogs.msdn.com/b/officeapps/archive/2013/12/10/enable-app-sideloading-in-your-non-developer-site-collection.aspx

Abraços! 😀

Written by Rodrigo Romano

August 2, 2014 at 12:28 pm

Troubleshooting: Failed to call GetTypes on assembly Microsoft.Office.TranslationServices

leave a comment »


 

Olá SharePointers,

Hoje peguei um cenário “diferente”.

Após aplicar o Cumulative Update de Março/2013 no SharePoint 2013 RTM, todas as vezes que tentava rodar o Configuration Wizard aparecia o erro abaixo:

Failed to initial the upgrade sequence.

An exception of type Microsoft.SharePoint.Upgrade.SPUpgradeException was thrown. Additional exception information: Exception of type ‘Microsoft.SharePoint.Upgrade.SPUpgradeException’ was thrown.

Fui no REGEDIT e alterei o valor da chave SetupType para CLEAN_INSTALL. O caminho da chave é: "HKLM\Software\Microsoft\Shared Tools\Web Server Extensions\14.0\WSS".

Após esse processo, rodei novamente o erro abaixo apareceu:

image

 

Após verificar o Cumulative Update, identifiquei que o que foi utilizado era para SharePoint Foundation e não SharePoint Server, o que fez com que algumas dlls não estivessem mais disponíveis.

 

Abraços 😀

Written by Rodrigo Romano

July 30, 2014 at 3:54 pm