Que conceitos de desenvolvimento SharePoint são os mais difíceis para ASP.Net desenvolvedores de entender?

StackOverflow https://stackoverflow.com/questions/1424643

Pergunta

Eu estou tentando montar SharePoint 2007 (e, eventualmente, de 2010) materiais de treinamento para desenvolvedores ASP.NET experientes e, havendo feito SharePoint durante anos, eu realmente não me lembro onde os piores pontos de atrito foram no início -. para não mencionar a quantidade de conteúdo googlable SharePoint é maior por uma ordem de magnitude do que há dois anos

Dito isto, o que conceitos SharePoint são os mais difíceis de entender, e / ou que partes do SharePoint são suficientes esotérica para ser não-óbvio para um novato desenvolvedor SharePoint apenas mergulho em?

Foi útil?

Solução

Greg,

Na minha experiência, a emissão relativas à eliminação objeto apropriado ( SPWeb e SPSite objetos que, por sua vez, referência SPRequest wrappers COM torno não gerenciado objetos) são uma pegadinha comum e a fonte de muitos escalabilidade, desempenho e outros problemas de codificação. Uma vez que a Microsoft percebeu a escala do problema e o grau de desenvolvedor confusão nesta área, eles escreveram um artigo de grande orientação ( http://msdn.microsoft.com/en-us/library/aa973248.aspx ) e desenvolveu a ferramenta SPDisposeCheck ( http://code.msdn.microsoft.com/SPDisposeCheck ).

Esse é o meu voto para "não-óbvio para um novato desenvolvedor SharePoint apenas mergulho em": -)

Por que vale a pena!

Outras dicas

A minha lista de coisas mais difíceis de entender são:

  • A segurança de acesso ao código e todo o outros recursos de segurança
  • Diferença entre site / aplicativo páginas e personalizado / uncustomized páginas
  • CAML em ambas as consultas e todos os definições
  • O que já está em SharePoint para que você Não reinventar a roda
  • Abrir mão do controle.

    Você não controlar quais partes da web são em uma página e como eles estão conectados. Você deve apenas fazer-lhes possível reutilização

    Você não controlam qual lista está em um site ou quais campos contêm

  • falta de suporte para múltiplos línguas
  • Do SPWeb Não descarte e SPSite se obtê-los de SPContext.Current
  • controles delegado

Outras coisas que são novos, mas parece ser mais fácil de entender são:

  • Soluções / recursos
  • Todos os espaços reservados em masterpages

* Falta de controle *

Esta é a questão-chave como Per Jakobsen menciona . Movendo ao longo ...

  1. Não é possível simplesmente entrar e editar arquivos .aspx e .master onde quer que você sente como. Há conseqüências como unghosting, apoio e que muitas vezes simplesmente não funciona como seria de esperar. Um bom entendimento de como SharePoint compõe páginas é crítica.

  2. Não há nenhuma maneira (suportado e confiável) para consultar o banco de dados diretamente. Isso é extremamente frustrante para desenvolvedores ASP.NET que são usados ??para projetar / trabalhar com bancos de dados construídos de propósito e bem desenhados. consultas CAML são nenhum substituto para o poder de consultas SQL bem otimizados.

  3. (Mais de uma 2b): suporte fraco de dados relacionais entre listas. Estranho para um aplicativo corporativo.

  4. Um pouco off topic, mas HTML marcação e CSS foi um pesadelo em 2003 e não muito melhor em 2007. É doloroso para trabalhar com e não muito também. Você tem que ir para grandes comprimentos para produzir um site totalmente compatível com os padrões web e boas práticas.

Para resumir, as coisas geralmente precisa ser feito "o caminho SharePoint". Isso muitas vezes não é a forma mais eficiente ou elegante que um dev ASP.NET reta prefere. Desenvolvedores como elegância e eles não como abrir mão do controle.

Além disso, existem armadilhas do outro lado do produto ( Sean mencionado uma chave ) à espreita como pequenos tripwires para os desavisados. A única maneira de saber e compreendê-los é saber SharePoint -. E é uma grande produto

Veja mais discussão sobre esse em Por que os desenvolvedores ASP.NET não use WSS? em SharePointDevWiki.

O que é já no SharePoint para que você não reinventar a roda. Eu voto para isso.

Por cobriu cobriu a maior parte fora dos pontos para me no entanto vou acrescentar mais um par:

  1. SPContext - O conceito de execução de código conecptual por exemplo SPContext.Current ou propriedades de objeto em um receptor de evento.

  2. Na sequência do contexto, é também importante compreender que o código está sendo executado como e therfore quais ações ele pode concluir - Elevadores (priviliges Elevate), Impersonating (fichas) e execução (web services / receptores de eventos) .

  3. Tratamento de erros - Todo mundo grita quando o único erro tona é "um erro ocorreu", tão compreensivo SP Logs e códigos de erro é crítica. Isso é importante para reduzir o tempo desperdiçado perseguindo um erro XML irritante.

  4. Visual Studio Tools -. WSPBuilder, ferramentas VS para Sharepoint etc. Reduzir a dor de implantação e debuging, encurtando o ciclo de integração

Criar relatório / dashboard utilizando os serviços do SQL Server Reporting para problemas do mundo real e mostrá-la no site do SharePoint. Número de examples / tutorial encontrado online sem este assunto ainda é insufficiente (eu acho).

Tudo relacionado à arquitetura mundo real e implementações. Eu sou um desenvolvedor, mas eu tenho que pegar minha mão suja se eu quiser ter o mais próximo possível do ambiente do cliente em meus ambientes virtuais sem esperar por um apoio oficial de TI. Tente criar uma pequena fazenda com uma intranet, internet, extranet, mecanismo de autenticação misto, mapeamentos alternativos de acesso, configuração de cabeçalho de host e assim por diante. Isso é um trabalho dedicado todo, mas um que você vai ter que mergulhar se você quer desenvolver algum meio para implementações de grande escala.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top