Category Archives: Sem categoria

SharePoint Best Practices Conference, “Melhores práticas,” e o elefante na sala

Tive a sorte de participar e apresentar na conferência de SharePoint Best Practices na semana passada. Eu ainda sou novo ao todo falando de coisa"" and, francamente, Eu estava um pouco nervoso no primeiro semestre, enquanto eu suava e esperar para falar de mim mesmo. Esse sentimento meio nervoso dificultou um pouco para me dar atenção aos apresentadores (Não que eu ignorei-os). Em vez disso, Concentrei-me um pouco mais sobre os participantes.

Conferências sempre definir minha corrida de mente e havia uma tomada muito em para esta. Esta conferência foi excelente. Acho que não era comum em várias maneiras. Não foi uma conferência de desenvolvedores pesado. Certamente havia partes dev-, Mas acho que foi pelo menos 60% centrado em questões não-dev, Talvez tão alta quanto 80%. Acho que fala da natureza em evolução do mercado de SharePoint. As empresas estão implementando o SharePoint em uma variedade de maneiras e que procuram orientação sobre como fazer isso direito. E não apenas orientações sobre como criar recursos/soluções (que até agora, foi muito bem estabelecida).

Eu acredito que a conferência foi tremendamente valiosa para a maioria de todos que assistiram e eu sei que os organizadores planejam fazer a conferência novamente no início do próximo ano.

Tendo dito isso, Acredito que houve uma oportunidade perdida, que eu espero que o próximo endereços de conferência. Eu digo que é uma oportunidade perdida, Mas isso não é uma coisa ruim. Descobrir uma necessidade de comunidade é em si uma coisa boa. A conferência discutiu uma série de práticas recomendadas em uma variedade de áreas como governança, treinamento, levantamento de requisitos, pesquisa, desenvolvimento, arquitetura de informação, etc. Acho que a oportunidade perdida tem a ver com o campo verde"" pressupostos subjacentes a muitas das melhores práticas.

Quando falamos de campo verde, Queremos dizer que o SharePoint não tem entrado em produção e estamos começando com uma ficha limpa. Isto é ideal porque você pode começar imediatamente, utilizando as melhores práticas para a definição e gestão de governança, arquitetura de informação, etc. No entanto … o que acontece quando você já está em produção com milhares de usuários (ou do 10 de milhares) e você não seguiu as melhores práticas no início? Já vi empresas com … Aham … um muito ímpar arquitetura de informação, cozida em seu ambiente. Não acho que esta conferência forneceu muita orientação para organizações com esse tipo de problema (e não me refiro a IA, Mas a governança, pesquisa, muitas outras áreas). É claro, sabendo que você tem um problema é uma grande parte da solução e isso é muito valioso..

Acho que a comunidade de SharePoint online não tem feito muito para resolver isso também. Eu sei que não tenho. É um problema muito difícil de resolver em muitos níveis. Tecnicamente, é difícil. Budget-Wise é difícil. Culturalmente, é difícil. No entanto, Provavelmente é um problema do mundo real maior do que a maioria. Desde a conferência terminou, Eu tenho pensado sobre esses tipos de problemas e como um iria resolvê-los. Tem que haver uma resposta melhor do que, "desinstalar e reinstalar" e a comunidade precisa enfrentá-lo na cabeça.

Acho que isso uma grande oportunidade para a comunidade de Blogs e experientes pensou líderes para esquematizar alguma orientação sobre como reparar seus ambientes. Acho que há um pequeno, mas o risco não-zero SharePoint pode acabar com uma reputação ruim e duradoura como resultado de mal arquitetados implementações que falham devido a má governação, IA, etc.

</fim>

Subscreva ao meu blog.

Technorati Tags:

SharePoint Dashboards seminário on-line

Meu amigo on-line, Mark Miller sobre e Usuário final SharePoint (www.endusersharepoint.com) está em execução um seminário gratuito de uma hora como alvejado, como ele sempre faz., na Comunidade de usuário do SharePoint. Ela ocorre em 1 pm EDT. Os detalhes estão aqui: http://www.endusersharepoint.com/?p=785

Sentei um dos seu seminário on-line no mês passado e foi feito muito bem e se você está interessado em alguma informação muito prática em painéis no SharePoint, Tenho certeza de que vale a pena o 1 investimento de hora.

</fim>

Subscreva ao meu blog.

Technorati Tags: ,

FBA e SQL Server: Uma história de amor

Meu colega tem trabalhado em uma web part em um ambiente de FBA. Entre outras coisas, a web part puxa alguns dados do SQL server. O grande plano para este projeto dita que um DBA configura o nível de segurança de dados em SQL (em oposição a incorporação de um ID de usuário em uma consulta SQL ou outra abordagem).

O problema é que do SQL server não sabe de nada sobre o nosso ambiente de FBA para que ele não pode confiar em nós. Nós resolvemos esse problema por, por falta de uma palavra melhor, manualmente, fingindo ser um usuário do AD para que nós pôde se conectar ao SQL tais que obras de segurança de nível de dados SQL.

Mesmo que o FBA é um recurso do ASP.NET, Nós, povo de nação do SharePoint têm ensinado os vários motores de busca que você está consultando para FBA, Você deve dizer que você quer saber como configurar o FBA no SharePoint. Não consegui encontrar encontrar qualquer informação sobre como habilitar um FBA orientado ASP.NET aplicativo para se comunicar com o SQL da forma que precisávamos.

No decurso de pesquisando sobre isso, Vamos voltar a ler este artigo: Representação do ASP.net

Mais pesquisa nos levou a este artigo de codproject: http://www.codeproject.com/KB/cs/cpimpersonation1.aspx

Que nos ajudou a escrever nosso código, que eu incluí abaixo. Não é a coisa mais elegante, Mas funcionou. Espero que você ache útil.

Aqui está o código que trabalhou para nós:

protegido Sub btnSearchCarrier_Click(Object sender, EventArgs e)
 {
 Tente
 {
 ImpersonateUser iU = Novo ImpersonateUser();
 // TODO: Substituir iU.Impersonate de credenciais("Nome_do_domínio", "UserName", "Senha");

//
 CÓDIGO
//

 iU.Undo();
 }
 pegar (Exceção ex)
 {

 }
 }

// Usando a classe de representação como mencionado abaixo.

público Classe ImpersonateUser
 {
 [DllImport("advapi32. dll", SetLastError = verdadeiro)]
 público estático extern bool LogonUser(
 LpszUsername de seqüência de caracteres,
 LpszDomain de seqüência de caracteres,
 LpszPassword de seqüência de caracteres,
 int dwLogonType,
 int dwLogonProvider,
 Ref IntPtr phToken);

 [DllImport("Kernel32. dll", CharSet = Charset. auto)]
 privada extern estático bool CloseHandle(IntPtr handle);

 privada estático IntPtr tokenHandle = Novo IntPtr(0);
 privada estático ImpersonatedUser WindowsImpersonationContext;

 // Se você incorporar esse código em uma DLL, Certifique-se de exigir que ele
 // corre com FullTrust.
 [PermissionSetAttribute(SecurityAction. Demand, Nome = "FullTrust")]
 público void Impersonate(seqüência de caracteres nome de domínio, seqüência de caracteres nome de usuário, senha de seqüência de caracteres)
 {
 Tente
 {

 // Use a função LogonUser gerenciada para obter o usuário token para
 // o usuário especificado, domínio, e senha.
 const int LOGON32_PROVIDER_DEFAULT = 0;

 // Passando este parâmetro faz com que LogonUser criar um token primário.
 const int LOGON32_LOGON_INTERACTIVE = 2;
 tokenHandle = IntPtr. zero;

 // Passo -1 Chamada LogonUser para obter um identificador para um token de acesso.
 As Boolean returnValue = LogonUser(
 nome de usuário,
 domainName,
 senha,
 LOGON32_LOGON_INTERACTIVE,
 LOGON32_PROVIDER_DEFAULT,
 Ref tokenHandle); // tokenHandle - novo token de segurança

 se (false = = returnValue)
 {
 int ret = GetLastWin32Error();
 Console. WriteLine("Chamada LogonUser falha com código de erro : " +
 RET);
 jogar novo System. ComponentModel.Win32Exception(RET);
 }

 // Passo - 2
 WindowsIdentity newId = Novo WindowsIdentity(tokenHandle);
 // Passo -3
 impersonatedUser = newId.Impersonate();

 }
 pegar (Exceção ex)
 {
 Console. WriteLine("Ocorreu uma exceção. " + ex.Mensagem);
 }
 }


 /// <Resumo>
 /// Representação de paragens
 /// </Resumo>
 público Sub desfazer()
 {
 impersonatedUser.Undo();
 // Grátis os tokens.
 se (tokenHandle != IntPtr. zero)
 CloseHandle(tokenHandle);
 }
 }

</fim>

Subscreva ao meu blog.

Technorati Tags:

Adicionando o Lore: SSRS Me diz “rsAccessDenied”, Mas … Eu realmente tenho acesso

Algumas semanas atrás, Eu estava trabalhando com o meu colega desenvolvedor num projeto envolvendo SQL Server Reporting Services plug-in para MOSS. Ele estava desenvolvendo uma web part que fornece uma front-end para o relatório apropriado de fantasia (a principal característica de ser uma pesquisa inteligente em um parâmetro de vários valores de mil pesquisáveis por trás).

Isto estava trabalhando muito bem no ambiente de desenvolvimento, mas no teste de aceitação do usuário (UAT) meio ambiente, Não funcionaria. Disparar o depurador, Veremos os detalhes de exceção como este:

As permissões concedidas ao usuário 'UAT_domainmosssvc' são insuficientes para efectuar esta operação.(rsAccessDenied).

Se você fizer uma pesquisa ao vivo sobre o erro acima, Acha que é bastante comum. Assustadoramente comum. O pior tipo de comum porque tem muitos diferentes potenciais raiz causa e a solução sugerida "sente" direito. Nós provavelmente tentou tudo.

No nosso caso, o problema era que tínhamos feito uma backup/restauração de DEV para UAT. Em algum lugar nos dados, algo ainda estava se referindo a "DEV_domain" (em vez do atualizado "UAT_Domain"). Criamos um novo site, adicionado que a web part e que resolveu nosso problema.

Esperemos que isto salvará alguém uma hora ou duas para baixo da linha.

</fim>

Subscreva ao meu blog.

Technorati Tags:

Anúncio público menor: As configurações de segurança ao vivo de Windows e entrar em contato com os proprietários do espaço

Recebo um punhado de mensagens de indivíduos através do built-in "Enviar uma mensagem" função Microsoft fornece com espaços ao vivo (que também hospeda o meu blog) todos os meses.

Cerca de um terço do tempo, os usuários têm garantido conta seus espaços ao vivo tal que eu não posso responder. Isso é algum tipo de característica de anti-spam, que eu assumo.

</fim>

São “Erro desconhecido” Mensagens realmente melhor do que um rastreamento de pilha?

Eu estava lendo o post do blog do Manu sobre como Habilitar monitores de rastreamento de pilha e agora eu estou querendo saber: Por que não mostramos sempre um rastreamento de pilha?

Quem inventou essa regra e por isso seguimos?

Os usuários finais saberá que algo está errado em ambos os casos. Pelo menos com um rastreamento de pilha, Eles podem pressionar control-printscreen, copiar/colar em um e-mail e enviá-lo para. Que claramente iria reduzir o tempo e o esforço necessário para resolver o problema.

</fim>

Technorati Tags:

É por isso que eu não como usar ferramentas de dia Zero

http://groups.google.com/group/microsoft.public.sharepoint.portalserver.development/browse_thread/thread/41e8cbe4f15e8b4c/76506ea401403e35?#76506ea401403e35

Se a ferramenta está fazendo coisas que você não entende, e depois falhar no passo n de um número desconhecido de passos, Você está morto na água…

</fim>

ID do evento 1023: “O Windows não pode carregar MSSCNTRS de DLL de contador extensível”

ATUALIZAÇÃO (04/08/08): Parece ter resolvido esse problema. Na linha de comando, Eu corri "c:\windowssystem32lodctr /R" como por uma entrada falando sobre InstallShield problemas e que parece ter resolvido-lo para mim.

Tenho notado que ultimamente, meu fã de desktop/servidor nunca desliga. Eu sei que costumava desligar. Eu levei um momento para verificar para fora notado que a um processo de VMware estava correndo um consistente 20% utilização em um da CPU. Eu verifiquei o log de eventos e vi esses erros no log do aplicativo acontece dezenas de vezes por minuto:

O Windows não pode carregar o UGatherer de DLL de contador extensível, a primeira DWORD na secção de dados é o código de erro do Windows.

O Windows não pode carregar o UGTHRSVC de DLL de contador extensível, a primeira DWORD na secção de dados é o código de erro do Windows.

O Windows não pode carregar MSSCNTRS de DLL de contador extensível, a primeira DWORD na secção de dados é o código de erro do Windows.

Se me aprofundar nos detalhes de uma dessas mensagens, Eu começ este:

Fonte: Perflib

Tipo: Erro

Categoria: Nenhum

ID do evento 1023

Fiz algumas pesquisas e havia alguma indicação de que poderia ser um problema de permissão em termos de acesso às DLLs em questão. Eu brinquei com essas coisas, mas não pode afetar as coisas de uma forma positiva, então desisti do que.

VMware tinha me atormentando sobre como executar uma atualização há muito tempo, assim que eu anotou para baixo a versão que eu tinha instalado (aparentemente "1.0.1 construir 29996") e fiz a atualização. Isto me atualizado para v 1.04. Infelizmente, Ele não corrigiu o problema.

Eu posso parar o número insano de mensagens vai meu log de aplicativo se eu desligar um serviço chamado "VMware Authorization Service". Isto me impede de usar o software VMware, Portanto, … Não uma ótima opção.

O sistema operacional é Windows XP 64 bit.

Eu não acho que isso sempre aconteceu, mas não me lembro de qualquer evento específico que poderia ter conduzido a ele.

Eis porque eu odeio computadores.

</fim>

Technorati Tags:

Fórum de discussão: Impor a conformidade com as práticas recomendadas em ambiente não-Trivial de musgo

Um companheiro, "Mark", foi iniciado um debate de newsgroup potencialmente interessante enfocando "estabelecendo excelente Governança SharePoint desde o início" para um 35,000 ambiente do usuário.

A discussão é aqui: http://groups.google.com/group/microsoft.public.sharepoint.portalserver/browse_thread/thread/6d9a738d981af772/1c390b15c5407db6?#1c390b15c5407db6

Pop em sobre e contribuir!

</fim>