none
Capturar postagens recentes de um subsite do tipo blog RRS feed

  • Pergunta

  • Boa Tarde,

    Eu tenho site em que preciso mostrar na home dele os 3 últimos posts (de forma resumida/truncado) de um blog que na verdade é um subsite. Gostaria de ajuda para fazê-lo  pela administração do site e/ou pelo visual studio usando LINQ ou qq outra forma de pesquisa. Tentei pela adm do site mas não consegui e não sei onde são criados os posts dentro so sharepoint para que possa  tentar capturá-los pelo visual studio usando LINQ.

    Obrigado,

    Eduardo

    • Editado Eduardo Araújo segunda-feira, 2 de agosto de 2010 19:11 completar
    segunda-feira, 2 de agosto de 2010 19:08

Respostas

Todas as Respostas

  • Eduardo,

    Quando você cria um blog, internamente o SharePoint cria uma lista chamada Posts (Postagens). Você pode fazer suas consultas a partir desta lista, ok?

     

    Abraços

    Rodrigo A. Romano
    -
    SharePoint Specialist
    Microsoft MCP e MCTS
    -

    http://rodrigo-romano.spaces.live.com
    http://www.canalsharepoint.com.br

    http://www.doneit.com.br

     


    Rodrigo A. Romano 

    • Marcado como Resposta Eduardo Araújo segunda-feira, 2 de agosto de 2010 19:26
    segunda-feira, 2 de agosto de 2010 19:21
    Moderador
  • Obrigado Romano,

    Vou testar e depois compartilho a experiência.

    Como ainda sou novo no SharePoint, gostaria de saber sua opinião neste caso:

    Seria melhor eu criar uma visual webpart no visual studio e fazer as consultas via LINQ nessa lista de postagens ou ir pela administração do site Pai e criar uma lista/webpart a partir da lista de Posts do subsite (Blog) ?

    Obrigado novamente,

    Eduardo

     

     

    segunda-feira, 2 de agosto de 2010 19:30
  • Eduardo,

    Depende muito de como você quer tratar esta modificação. Por exemplo, você pode fazer isso com o SharePoint Designer utilizando XSLT. Assim você não "desenvolve" código para colocar no servidor - Sem Web Parts - o que torna, por exemplo, uma futura migração mais fácil.

    Entretanto, desenvolver webpart você consegue ter mais "poderes" para realizar solicitações e tratá-las conforme necessário. Sendo assim, LINQ to SharePoint é uma boa opção, também.

    Abraços

    Rodrigo A. Romano
    -
    SharePoint Specialist
    Microsoft MCP e MCTS
    -

    http://rodrigo-romano.spaces.live.com
    http://www.canalsharepoint.com.br

    http://www.doneit.com.br

     


    Rodrigo A. Romano 

    • Marcado como Resposta Eduardo Araújo segunda-feira, 2 de agosto de 2010 19:41
    segunda-feira, 2 de agosto de 2010 19:38
    Moderador
  • Entendi Rodrigo,

    Vou tentar usando LINQ, mas caso eu precise futuramente, vc poderia me passar algum exemplo de utilização de XSLT nesse caso, ainda não tive tempo para desvendar o sharepoint designer. Desde que começei com sharepoint (1 mês +-) eu foquei no training kit e nas aulas do Learn do site oficial. Se vc tiver algo eu ficaria muito grato.

    Muito obrigado,

     

    Eduardo

    segunda-feira, 2 de agosto de 2010 19:47
  • Eduardo,

    Pode deixar.

    Se você precisar, de ajuda, não hesite em perguntar!

     

    Abraços

    Rodrigo A. Romano
    -
    SharePoint Specialist
    Microsoft MCP e MCTS
    -

    http://rodrigo-romano.spaces.live.com
    http://www.canalsharepoint.com.br

    http://www.doneit.com.br

     


    Rodrigo A. Romano 

    segunda-feira, 2 de agosto de 2010 19:49
    Moderador
  • Obrigado Rodrigo, estou no aguardo.

    Rapaz nosso Brasil é muito pequeno mesmo. Eu trabalho no MIC - Microsoft Innovation Center - de Vitória, mostrei sua reposta para meu colega de trabalho e ele me disse que vc quando veio aqui com a equipe do canal sharepoint no TechShare e vcs precisaram fazer algumas coisas na sede do MIC, foi a minha baia q vc usou, rsrsrs.

    Pois é, depois daquele evento paramos de desenvolver nosso portal em asp.net e já está saindo a primeira versão dele em SharePoint. Vai depender de como vou me virar com essas consultas LINQ rsrsrs.

    Thanks a lot,

    Eduardo

     

     

    segunda-feira, 2 de agosto de 2010 20:17
  • Eduardo,

     

    Nossa!! Jura?? Que coincidência!!

    Legal saber disso cara! Realmente muito pequeno! Se você precisar de qualquer coisa aí pode falar, ok! =D

    Gostei muito do pessoal do MIC Vitória. Manda um abraço para todos!

     

    Abraços

    Rodrigo A. Romano
    -
    SharePoint Specialist
    Microsoft MCP e MCTS
    -

    http://rodrigo-romano.spaces.live.com
    http://www.canalsharepoint.com.br

    http://www.doneit.com.br

     


    Rodrigo A. Romano 

    segunda-feira, 2 de agosto de 2010 20:28
    Moderador
  • Isso ai Pessoal!

    A comunidade é assim, estamos todos conectados. :)

    Somente comentando... A seguir um exemplo de como criar um XSLT Data View para visualizar listas no SharePoint 2007:

    Creating an XSLT DataView for a Sharepoint List
    http://www.sharepoint-tips.com/2007/05/sharepoint-designer-article-2-creating.html

    Abraços!

    Wagner Amorim
    -
    Sharepoint Specialist
    MSF & SCRUM Practitioner 
    Microsoft MCP, MCTS e MCPD
    -

    http://www.doneit.com.br
    http://www.canalsharepoint.com.br
    http://waamorim.spaces.live.com
    Wagner M. Amorim
    • Marcado como Resposta Eduardo Araújo terça-feira, 3 de agosto de 2010 18:03
    terça-feira, 3 de agosto de 2010 01:02
  • Olá Rodrigo, tive um problema ao tentar customizar uma visual web part via visual studio, vou explicar:

    Tenho um site criado com o template blank site e nele add um subsite blog.

    Quando criei a visual webpart eu vinculei a url do SUBSITE e cliquei em OK,

    Add as referencias necessarias,

    Add uma Sharepoint grid view só pra ver se o retorno a popularia:

    <SharePoint:SPGridView ID="spGridView" runat="server" AutoGenerateColumns="false">
        <HeaderStyle HorizontalAlign="Left" ForeColor="Navy" Font-Bold="true" />
        <Columns>
            <SharePoint:SPBoundField DataField="Title" HeaderText="Title">
            </SharePoint:SPBoundField>
            <SharePoint:SPBoundField DataField="Body" HeaderText="Body">
            </SharePoint:SPBoundField>
            <SharePoint:SPBoundField DataField="Category" HeaderText="Category">
            </SharePoint:SPBoundField>
            <SharePoint:SPBoundField DataField="Published" HeaderText="Published">
            </SharePoint:SPBoundField>
            
        </Columns>
    </SharePoint:SPGridView>

    Criei um mapeamante de Entidades:

    set path=%path%;c:\program files\common files\microsoft shared\web server extensions\14\bin

    spmetal.exe /web:http://intranet.contoso.com

    /namespace:SPCHOL302_Ex1.SPLinqDemoWebPart /code:SPLinq.cs

     mudando, é claro, a url e o name space,

    criei um metodo para fazer a consulta e popular a gridview:

            private void PopulaGridView()
            {
                var dc = new SPLinqDataContext(SPContext.Current.Web.Url);
                var Employees = dc.GetList<Post>("Posts");
                var empQuery = from post in Employees
                               select new
                               {
                                   post.Title,
                                   post.Body,
                                   post.CategoryTitle,
                                   Published = post.Published.Value.ToShortDateString(),



                               };
                spGridView.DataSource = empQuery;
                spGridView.DataBind();
            }

    Faço o Deploy e na hora de add essa webpart no site PAI, mando add uma webpart custom, escolho essa feita e add,

    Na hora q add aparece o seguinte erro:

    Error

    An unexpected error has occurred.

     

    Troubleshoot issues with Microsoft SharePoint Foundation.

    Correlation ID: 90593d59-e976-40bd-b964-4bc961a6bf68

    Date and Time: 8/3/2010 3:40:58 PM

    verifiquei que quando visualizo a webpart no modo design, existe o seguiinte erro:
    There was an error rendering the control.
    Object reference not set to an instance of an object.
    Tem mais uma coisa, deixei a web parte em debug e fui no site PAI e tentei add essa webpart, lembrando que essa webpart foi codificada para busca a lista Posts que fica no subsite, então... qdo mando depurar, obviamente ele abre no browser o subsite, mas como quero add essa webpart no site pai, tento navegar para ele, nesse momento aparece uma exeção dizendo que essa lista Posts não existe no site PAI, seria esse o problema? E se for como corrijo?
    Fiz tudo que minha pouca experiência me permitiu fazer, agradeçeria vossa ajuda.
    Obrigado,
    Eduardo
    terça-feira, 3 de agosto de 2010 18:54
  • Eduardo,

    As configurações de BoundFields e Colunas geradas em sua Query estão diferentes, veja:

     <SharePoint:SPBoundField DataField="Title" HeaderText="Title">
            </SharePoint:SPBoundField>
            <SharePoint:SPBoundField DataField="Body" HeaderText="Body">
            </SharePoint:SPBoundField>
            <SharePoint:SPBoundField DataField="Category" HeaderText="Category">
            </SharePoint:SPBoundField>
            <SharePoint:SPBoundField DataField="Published" HeaderText="Published">
            </SharePoint:SPBoundField>

     var empQuery = from post in Employees
                               select new
                               {
                                   post.Title,
                                   post.Body,
                                   post.CategoryTitle,
                                   Published = post.Published.Value.ToShortDateString(),



                               };

    Elas precisam ser iguais para funcionar.

     

    Outra coisa, como você está fazendo o desenvolvimento? Você tem uma máquina com o SharePoint instalado para isso?

     

    Abraços

    Rodrigo A. Romano
    -
    SharePoint Specialist
    Microsoft MCP e MCTS
    -

    http://rodrigo-romano.spaces.live.com
    http://www.canalsharepoint.com.br

    http://www.doneit.com.br

     


    Rodrigo A. Romano 

    terça-feira, 3 de agosto de 2010 20:06
    Moderador
  • Opa Rodrigo,

    Eu poderia fazer

    Category = post.CategoryTitle;?

    Pq o mapeamento de entidade só me da duas propriedades: CategoryTitle e CategoryId

    Vc leu no final do poste que o site pai tbm não esta enxergando a lista Post? Coloquei a Webpart em debug e quando naveguei para o site pai tive essa exeção propragada.

    Aqui nossa equipe e infra são assim:

    Pra esse projeto temos um rapaz na infra, um designer e eu desenvolvendo.

    Como só eu vou desenvolver nós fizemos o seguinte, temos aqui umas maquinas parrudonas e colocamos em uma  o sharepoint server e eu faço acesso a acesso via RDP, nela tem tudo para o desenvolvimento, como uso dual dysplay aqui (vc deve lembrar) fica facil trabalhar assim.

    O nosso designer  fica em outra maquina parrudona e acessa o meu site via sharepoint designer e faz as customizações. Nesse momento de testes eu criei uma webapp a parte para "fuçar" ao maximo e levar para o ambiente de desenvolvimento apenas oq ja sei q vai funfar.

    Para as customizações nós temos tbm um TFS2010 já integrado com sharepoint server 2010.

    Prefiro o acesso via RDP na maquina parrudona pq ela é um HP touch de 23", mas eu prefiro dois monitores de 17".

    Depois do desenvolvimenteo, temos um ambiente de homologação onde a nossa chefe vai testar.

    Depois mandamos para produção q é uma hospedagem fora.

    Sobre esses ultimos 2 pontos eu aproveito pra perguntar como q faço a integração continua das porções funcionais do projeto que vou entregar e cada sprint. Na hospedagem, por exemplo, só somos owners do site, ou seja, nada de stsadmin.

    Minha Sprint termina quinta e acho q to meio atrasado, omg.

    Obrigado,

    Eduardo

     

     

     

     

    terça-feira, 3 de agosto de 2010 20:44
  • Eduardo,

     

    Você pode fazer desta maneira, sem problemas.

    Ahh Eu perguntei do modelo de desenvolvimento para saber se você tinha como debugar e entender o problema que estava acontecendo.

    Abraços

    Rodrigo A. Romano
    -
    SharePoint Specialist
    Microsoft MCP e MCTS
    -

    http://rodrigo-romano.spaces.live.com
    http://www.canalsharepoint.com.br

    http://www.doneit.com.br

     


    Rodrigo A. Romano 

    quarta-feira, 4 de agosto de 2010 00:25
    Moderador
  • Legal, da pra debugar sim.

    Mas eu ainda não descobri como resolver o problema:

    deixei a web parte em debug e fui no site PAI e tentei add essa webpart, lembrando que essa webpart foi codificada para busca a lista Posts que fica no subsite, então... qdo mando depurar, obviamente ele abre no browser o subsite, mas como quero add essa webpart no site pai, tento navegar para ele, nesse momento aparece uma exeção dizendo que essa lista Posts não existe no site PAI, seria esse o problema? E se for como corrijo?

    E se tento simplesmente add a web part sem que ela esteja em debug, aparece o seguinte erro:

    Error

    An unexpected error has occurred.

     

    Troubleshoot issues with Microsoft SharePoint Foundation.

    Correlation ID: 90593d59-e976-40bd-b964-4bc961a6bf68

    Date and Time: 8/3/2010 3:40:58 PM

    Obrigado,

     

    Eduardo 

    quarta-feira, 4 de agosto de 2010 10:14
  • Eduardo

    Veja, nesta linha:

      var dc = new SPLinqDataContext(SPContext.Current.Web.Url);

    você definine a URL do Site onde você vai trabalhar. Certo?

     

    A url do Site Pai é diferente do Site Filho, a sua lista só existe no site Filho, então ele não está encontrando a lista, entendeu?

    Por Exemplo:

    Site Pai: http://teste

    Site Filho: http://teste/filho

    Quando você coloca a webpart no site Pai, a url retornada em SPContext.Current.Web.Url é http://teste e no filho http://teste/filho

    Entendeu o problema?

     

    Abraços

    Rodrigo A. Romano
    -
    SharePoint Specialist
    Microsoft MCP e MCTS
    -

    http://rodrigo-romano.spaces.live.com
    http://www.canalsharepoint.com.br

    http://www.doneit.com.br

     


    Rodrigo A. Romano 

    • Marcado como Resposta Eduardo Araújo quarta-feira, 4 de agosto de 2010 12:56
    quarta-feira, 4 de agosto de 2010 12:54
    Moderador
  • Rodrigo,

    O problema eu havia ententido, não dessa forma clara que vc explicou, mas suspeitei disso.

    Agora como eu resolvo isso, pq na criação da webpart eu faço a vinculação dela com o site filho, ok?

    Faço a pesquisa da lista Post q está no site filho, ok?

    Como vc disse, qdo eu tentar colocar essa webpart no site Pai, terei esse erro pois o Pai não "enxerga" a lista Post. So, how to fix this?

    Eu teria que deixar essa lista do site filho "visivel" para o site Pai e manter a mesma contrução da web part? Como faria a Lista visivel?

    Eu poderia nessa linha:

    var dc = new SPLinqDataContext(SPContext.Current.Web.Url);

    fixar o contexto do site filho ao invén de usar o current?

    Desculpa o incomodo Rodrigo, vc está  sendo extremamente prestativo, mas aqui no forum foi o único lugar que achei pessoas como vc q realmente compartilham conhecimento.

    Obrigado,

    Eduardo

    • Editado Eduardo Araújo quarta-feira, 4 de agosto de 2010 13:06 completar
    quarta-feira, 4 de agosto de 2010 13:04
  • Eduardo,

    Compartilhar o conhecimento faz parte da vida de um SharePointer..kk (Share = Compartilhar =D)

    Você poderia fazer de forma fixa: var dc = new SPLinqDataContext(SPContext.Current.Web.Url + "/filho");

    ou criar uma propriedade para a webpart (Recomendado).

    Sabe quando você vai editar a web part e aparece o menu do lado direito, com as guias aparências, etc?

    Então, você pode fazer uma propriedade nova para receber a url do site e deixar a sua webpart dinâmica e configurável para cada site.

    [

     

    WebBrowsable(true),

     

     

    WebDisplayName("URL do Site:"),

     

     

    WebDescription("Insira a url do Site."),

     

     

    Personalizable(PersonalizationScope.Shared),

     

     

    Category("Configurações"), DefaultValue("")]

     

     

    public string SiteUrl { get; set; }

     

    Abraços

    Rodrigo A. Romano
    -
    SharePoint Specialist
    Microsoft MCP e MCTS
    -

    http://rodrigo-romano.spaces.live.com
    http://www.canalsharepoint.com.br

    http://www.doneit.com.br

     


    Rodrigo A. Romano 

    • Marcado como Resposta Eduardo Araújo quarta-feira, 4 de agosto de 2010 13:57
    quarta-feira, 4 de agosto de 2010 13:17
    Moderador
  • Rodrigo,

    Vou tentar fazer oq é recomendado então, mas fiquei meio perdido.

    Esse menu de edição q vc mencionou é aquele ja no site com a webpart instalada? Se for isso como farei sendo q nem consigo inseri-la q ja aparece o erro?

    Ou esse código eu add no corpo da minha webpart fora do page load?

    quarta-feira, 4 de agosto de 2010 13:37
  • Eduardo,

    Quando você cria uma Visual Web Part, você tem um User Control para fazer o Layout dela e tem um Arquivo .cs com o nome da Web Part que herda da classe WebPart, certo?

    Neste arquivo você cola o que eu te mandei.

    Se precisar de ajuda, me adiciona no msn: rodrigo.romano@live.com

     

    Abraços

    Rodrigo A. Romano
    -
    SharePoint Specialist
    Microsoft MCP e MCTS
    -

    http://rodrigo-romano.spaces.live.com
    http://www.canalsharepoint.com.br

    http://www.doneit.com.br

     


    Rodrigo A. Romano 

    • Marcado como Resposta Eduardo Araújo quarta-feira, 4 de agosto de 2010 13:52
    quarta-feira, 4 de agosto de 2010 13:45
    Moderador
  • Obrigado,

    Add vc no msn

    quarta-feira, 4 de agosto de 2010 17:33