WrapPanel em Silverlight
Publicado por Danilo Barreto em Sharepoint em julho 26, 2010
Olá.
De uns tempos pra cá eu me iniciei no mundo do Silverlight. Está sendo bem legal pelo desafio, diferenças na hora de pensar na solução, estudo, etc.
Uma necessidade recente que tive que sanar envolvia usar um painel em que eu pudesse colocar os itens fossem preenchendo e criando novas linhas, conforme uma linha acabava.
Por padrão o Silverlight não possui este painel. Pesquisando eu achei um que resolve inteiramente o problema.
Segue o arquivo em anexo:
Abs.,
Criar Site em um modelo WSP
Publicado por Danilo Barreto em Development, Médio, Sharepoint em julho 22, 2010
Recentement eu precisei criar um site baseado em um modelo no Sharepoint 2010. No Sharepoint 2007, basta referenciar o nome do modelo, um arquivo gravado com extensão .stp.
Na nova versão quando gravamos um modelo de site, ele gravada um solução sandbox. Com isso precisei pesquisar como fazer essa criação e achei o seguinte código:
using(SPWeb web = properties.Web){ string sUrl = properties.ListItem.Title.ToLower().Replace(" ", "_"); string template = (from x in web.GetAvailableWebTemplates(1033).OfType<SPWebTemplate>() where x.Title == "Componente" select x.Name).FirstOrDefault<string>(); web.Webs.Add( sUrl, properties.ListItem.Title, (string)properties.ListItem["Description"], 1033, template, false, false); properties.ListItem["Site"] = "/" + sUrl; properties.ListItem.Update(); }
Problema resolvido! Com esse código é possível criar um site dinamicamente no Sharepoint 2010.
Abraços e até a próxima,
Sharepoint: Diferença em 2007 x 2010
Publicado por Danilo Barreto em Sharepoint em abril 16, 2010
Eu encontrei esta listagem de diferenças entre as versões 2007 e 2010 do Sharepoint. Não é uma listagem oficial da Microsoft, mas tenho certeza de que irá ajudar muita gente.
| Microsoft Office Sharepoint Server 2007 | Sharepoint Server 2010 |
| Client do Office é necessário para visualizar e editar os documentos | OWA permite abrir os documentos na Web usando Silverlight e Javascript |
| Sem capacidade de co-authoring | Co-authoring para Word e Powerpoint via client e Excel tambem via web |
| Muitos postback | Maior uso do Ajax |
| Sem suporte inerente a Ajax e Silverlight | Totalmente suportados |
| Temas estáticos e sem preview na aplicação | Você pode selecionar um tema, customizá-lo e visualizá-lo antes de aplicar no site |
| Sem bookmarking, tagging ou rating | Totalmente aplicados |
| Escopo de Content Type para Site Collection | Hub de Content Types que podem ser compartilhados entre as aplicações web |
| BDC usado para guardar informações no Sharepoint | BCS lê os dados em tempo real |
| Suporte a 5 milhões de itens nas bibliotecas | Suporte a 10 milhões |
| Views geradas por CAML | Views geradas por Xslt |
| Uso de CAML para buscar em listas | Busca em lista por LINQ, Javascript e API do Silverlight |
| Sem restrições para instalação | Capacidade de prevenir pessoas de instalar o Sharepoint (via AD) |
| Escopo de Shared Services por Farm | Arquitetura do Shared Services alterada para ser mais fácil e compartilhada através da Farm |
| Sincronia do profile pode ser feita por qualquer pessoa | Checagem adicional de permissões para sicnronia de profile |
| Web Analytics básico | Web Analytics melhorado |
| Resultado de busca estático | Clicar em um resultado de busca afeta o resultado de buscas com a mesma palavra-chave |
| Para prevenir códigos que podem danificar o sistema, CAS Policies deveriam ser definidas para cada aplicação | Sandbox é utilizado para retringir o escopo do código. |
| Pessoas com permissão de contribuição podem subir páginas aspx | Pessoas com permissão de contribuição não podem subir páginas aspx |
| Contribuidores podem editar parâmetros do tool pane | Não editável pelos contribuidores |
| Explorer view no browser | Abre no Windows Explorer com Web DAV |
| Exibição simples em mobiles com recursos OOTB | Possibilidade de criação de páginas mobile mais ricas |
| Uso do Outlook para acesso off-line | Uso do Sharepoitn Workspace |
| Não é possível ter um único ID de documento indepente dele ter sido movido para outras listas | Um ID pode ser associado ao documento independente de onde esteja localizado |
| Para subir um arquivo, o usuário deve acessar, o site/subsite e a lista apropriada | O organizador de conteúdo move o documento para a biblioteca apropriada baseado em regras de metadados |
| Quando um arquivo com o mesmo nome é gravado numa lista, é gerado uma nova versão | Opção de criar uma versão nova ou atribuir um novo ID ao documento |
| Layout fixo com webpart zones definidas | UI mais fluído, permitindo subir webparts sem webpart zones |
| Políticas de retenção só permitem deletar ou invocar workflow por padrão | Diversas outras opções |
| EBS – para guardar documentos fora do Sharepoint, possível mas difícel de configurar | RBS – gerenciado pelo SQL |
| Precisa de sistema operacional Server para rodar | Pode ser instalado no Windows 7 (x64) e no Windows Server 2008 (x64) |
| Sem validações de campo | Validações de campo disponíveis |
| Não é possível mover um workflow criado no SPD para o Visual Studio | Workflows podem ser definidos no Visio, com regras adicionadas no SPD e importado para o Visual Studio |
| Layouts baseados em tabelas | Layouts baseados em DIV |
Fonte:http://jacksonc.wordpress.com/2010/02/20/moss-2007-vs-sharepoint-2010/
Adicionar WP na criação de MySite
Publicado por Danilo Barreto em Complexo, Development, Sharepoint, Solution em março 10, 2010
Olá Pessoal!
Vamos ao problema da vez. Minha necessidade era colocar uma WP no MySite toda vez que ele fosse criado. Comecei a pesquisar como resolver o problema.
Alterar o modelo direto nos arquivos de sistema não é uma opção, pois ele deixa o Sharepoint em modo não suportado, além do risco de perder a modificação no caso de uma atualização. Dada a premissa vi que a minha única saída era usar o Feature Stapling.
De modo resumido o Feature Stapling permite que eu associe uma feature a um determinado modelo de site. Com isso pensei no seguinte: crio uma feature que abre a página e adiciona uma nova WP onde eu quero e depois crio uma Feature Stapling e jogo isso no modelo do MySite. Então vamos lá. Primeiro criei a feature:
<Feature Id="CCFCF585-E187-4b81-87F6-028F0F1D2753" Title="Feature" Scope="Web" Hidden="FALSE" ReceiverAssembly="MeuAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=0301ba6f5945c5ab" ReceiverClass="Minha Classe" xmlns="http://schemas.microsoft.com/sharepoint/"> <ElementManifests> <ElementFile Location="MinhaWP.webpart"/> <ElementManifest Location="elements.xml"/> </ElementManifests> </Feature>
Nela Atribui um ReceiverAssembly e um ReceiverClass onde eu programei o comportamento para adicionar a minha WP na página, no momento da ativação:
SPWeb oWeb = properties.Feature.Parent as SPWeb; SPFile file = oWeb.GetFile("default.aspx"); if (file.Exists) { oWeb.Title = "The File Exists!"; SPLimitedWebPartManager oWPManager = oWeb.GetLimitedWebPartManager("http://meusite.bancotiopatinhas.com.br/personal/asdrubal/default.aspx", System.Web.UI.WebControls.WebParts.PersonalizationScope.Shared); MyColleagues oWP = new MyColleagues(); oWPManager.AddWebPart(oWP, "Middle Right Zone", 0); } oWeb.Update();
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, “Courier New”, courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
`
Depois disso criei o pacote normalmente e fiz o deploy. Teste a ativação e funcionou perfeitamente. O próximo passo foi criar o Feature Stapling:
Arquivo feature.xml:
<Feature Id="{96520B84-3287-46e5-AD4A-768DD4691D23}" Title="Stapler de criação do My Site" Scope="Farm" xmlns="http://schemas.microsoft.com/sharepoint/" > <ElementManifests> <ElementManifest Location="elements.xml" /> </ElementManifests> </Feature>
Arquivo Elements.xml:
<Elements xmlns="http://schemas.microsoft.com/sharepoint/" > <FeatureSiteTemplateAssociation Id="CCFCF585-E187-4b81-87F6-028F0F1D2753" TemplateName="SPSPERS#0"/> </Elements>
Note que o Id do arquivo Elements.xml do Feature Stapling é o mesmo Id da Feature que eu criei acima. Achando que tinha me livrado fácil eu fiz o deploy, criei um novo MySite e… nada! Deu erro!
Debugando o problema (horas a mais e cabelos a menos) descobri que no momento da ativação da Feature a página default.aspx não havia sido criada ainda, então eu não tinha como alterar. Pesquisando no Google descobri que várias pessoas estavam com o mesmo problema.
Mais horas e menos cabelos depois fiz o seguinte. Peguei uma página completa com a minha WP configurada, copiei para o meu projeto, e provisionei para jogar na raiz do site na ativação da feature. Segue a modificação:
<Feature Id="CCFCF585-E187-4b81-87F6-028F0F1D2753" Title="Feature" Scope="Web" Hidden="FALSE" ReceiverAssembly="MeuAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=0301ba6f5945c5ab" ReceiverClass="Minha Classe" xmlns="http://schemas.microsoft.com/sharepoint/"> <ElementManifests> <ElementFile Location="MinhaWP.webpart"/> <ElementFile Location="default.aspx"/> <ElementManifest Location="elements.xml"/> </ElementManifests> </Feature>
e no elements:
<Elements Id="37411303-55FF-456b-84DA-C3D64A86A8F8" xmlns="http://schemas.microsoft.com/sharepoint/" > <Module Name="WebParts" List="113" Url="_catalogs/wp"> <File Path="MinhaWP.webpart" Url="MinhaWP.webpart" Type="GhostableInLibrary"> <Property Name="Group" Value="Minhas WPs"/> </File> </Module> <Module Name="DefaultWeb"> <File Url="default.aspx"></File> </Module> </Elements>
Funcionou em partes. Eu notei que dessa forma ele duplicou todas as WPs da página, exceto a minha.
Solução: criei a página com toda a estrutura e sem nenhuma WP exceto a minha (mas com todo o resto, WPs zones e etc.). E voilá! Funcionou! Está é uma saída boa para este problema!
Até,
Erro ao modificar o Xsl de um resultado de busca
Publicado por Danilo Barreto em Sharepoint em janeiro 27, 2010
Olá pessoal!
A dica de agora veio de um problema que eu encontrei ao modificar o Xsl de um resultado de busca. Após fazer uma mudança insignificante no Xsl veio o seguinte erro:
System.ArgumentException: An item with the same key has already been added. at System.ThrowHelper.ThrowArgumentException(ExceptionResource resource) at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add) at Microsoft.Office.Server.Search.WebControls.PeopleCoreResultsWebPart.SetSortedRefinementDataOnHiddenObject() at Microsoft.Office.Server.Search.WebControls.PeopleCoreResultsWebPart.GetXPathNavigator(String viewPath)
Voltei o Xsl ao estado original e o erro persistiu. Na verdade eu não tenho exatamente a solução pra ele, mas quando publiquei novamente a página o erro sumiu e os dados foram exibidos corretamente.
De qualquer forma eu recomendo gravar uma versão da página inteira antes de alterar esse item. Mas, se esse problema acontecer com você e antes de arrancar os cabelos, publique a página!
Espero que essa dica ajude como me ajudou!
Abs.,
Danilo
Administrador da Farm não consegue abrir o site dentro do próprio servidor
Publicado por Danilo Barreto em Médio, Sharepoint, Troubleshoiting em janeiro 21, 2010
Falae galera! Já faz algum tempo que não escreve, mas resolvi passar aqui e deixar essa dica.
Cenário: Estava acessando um site Sharepoint de dentro da minha VM de desenvolvimento. Essa VM roda com um Windows 2003 Enterprise e MOSS 2007. Quando acessei o site (que estava configurado para login no AD – padrão) ele me pediu usuário e senha. Isso seria normal se eu já não estivesse logado na máquina como administrador, que também é o administrador da Farm desse site Sharepoint. Mesmo criando outro usuário e dando os mesmo poderes ainda assim não consegui entrar no site.
Solução: Falando com o meu amigo Hélio Sá, ele me passou o seguinte. O problema ocorre quando o site usa a autenticação integrada e tem um nome mapeado para o endereço de loopback local. Basta alterar uma chave no registro, reiniciar a máquina e voilá! o site volta a funcionar. A chave é a HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\DisableLoopbackCheck. Caso ela não exista é só criar e atribuir o valor 1.
O passo a passo está neste kb http://support.microsoft.com/kb/896861/.
See ya!
Project Natal
Publicado por Danilo Barreto em Xbox em junho 4, 2009
Eae pessoal? Passei para dar uma postada rápida sobre o project Natal do Xbox. Achei o video de demo fantástico! Se for 50% disso, o negócio vai ser revolucionário.
Segue o vídeo abaixo:
Recursos de teste de performance pra Sharepoint
Publicado por Danilo Barreto em Sharepoint, Tools em maio 15, 2009
Pessoal, segue abaixo link para várias ferramentas, artigos, white papers e outros recursos para medir e testar a performance da implementação do Sharepoinit. Por Sanjay Narang: http://blogs.msdn.com/sanjaynarang/archive/2009/04/18/sharepoint-performance-stress-load-testing.aspx
Access Denied on Search
Publicado por Danilo Barreto em Complexo, Search, Sharepoint, Troubleshoiting em abril 8, 2009
Sessão troubleshooting. Fiz uma instalação e configuração de MOSS com Search. Tudo funcionando bonitinho. Ou quase. Fui checar o crawl da busca e vi que ele não indexou nenhum item. além disso no log estava constando vários erros de access denied (Access is denied. Check that the Default Content Access Account has access to this content, or add a crawl rule to crawl this content, para ser mais exato).
Pois bem. Comecei a procurar e fui olhar nos lugares óbvios. Conta de acesso do serviço de indexação. Conta padrão de acesso ao conteúdo. Como estava na VM de desenvolvimento, coloquei o administrador, para que não houvesse dúvidas. O problema persistiu.
Foi quando eu descobri um KB relatando esse problema. Isso acontece em ambientes Windows 2003 com SP1, e quando se usa diversos host headers para webapplications diferentes.
O fix para esse problema é a inclusão de uma chave no registro. A chave é HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa. Dentro adicionar uma DWORD com o nome DisableLoopbackCheck. Depois setar o valor para 1.
Reinicie a maquina e voilá! Agora o indexador funciona perfeitamente!
Para mais detalhes do fix: http://support.microsoft.com/default.aspx/kb/896861
Danilo
Sharepoint Designer Free!
Publicado por Danilo Barreto em Sharepoint em abril 6, 2009
O Dênis me mandou essa mensagem há algum tempo, mas eu não acreditei, porque lá dizia que a data em que iria começar era 1o. de abril. Bom, mas eu vi agora e é verdade. Vou divulgado no blog do time de produto do Sharepoint que o Sharepoint Designer passar a ser grátis.
Isso vem para somar e ajudar com os deploys, especialmente de pacotes menores.
Quem quizer saber mais sobre o assunto, veja o post do time de produto.
Danilo