Inquiridor
Criando Web Part

Pergunta
-
a tarde,
Estou estudando a criação de web part para a importação e utilização no Sharepoint Service 2.
Para isso estou seguindo um tutorial existente no site Linha de Código conforme o link abaixo:
http://www.linhadecodigo.com.br/artigos.asp?id_ac=457&pag=1
Estou tentando iniciar com alguma coisa simples, de inicio queria só uma web part que pudesse exibir um Hello W....., mas não estou entendendo bem o funcionamento.
Abri o Visual Studio 2005 e criei um novo projeto do tipo Web Control Library utilizando a liguagem VB.NET.
Aberto o arquivo deixei da seguinte forma:
Code SnippetImports System
Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.Text
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Xml
Imports System.Xml.Serialization
Imports Microsoft.SharePoint.WebPartPages
<DefaultProperty("Text"), ToolboxData("<{0}:WebPartWagner runat=server></{0}:WebPartWagner>")> _
Public Class wagner
Inherits WebPart
Protected Sub ExibeHello()
Write("Hello")
End Sub
End Class
Feito isso, criei as configurações necessárias para que ao compilar o projeto ele fosse depositado no caminho , ou Build output path, esse caminho leva até a pasta BIN\1046 do Sharepoint.
\\Svnova\web server extensions\60\BIN\1046\
Compileio o projeto e criei um arquivo XML para que pudesse importar a WebPart para dentro do Sharepoint da seguinte forma:
Code Snippet<?xml version="1.0"?>
<WebPart xmls="http://schemas.microsoft.com/v2">
<Assembly>WFJWP, Version=1.0.0.0, Culture=Neutral, PublicKeyToken=</Assembly>
<TypeName>WFJWP.wagner</TypeName>
<Title>Teste Wagner</Title>
</WebPart >
Feito isso, fui até o sharepoint, criar pagina, adiconar Web Part, importa e localizei esse arquivo.
Cliquei no botão carregar e ele carrega a web part, mas quando vou importar ele exibe a seguinte mensagem:
Não é possível reconhecer o espaço para nome XML desta Web Part.
Não sei o que pode ser, alguém poderia me ajudar?
Alguém teria algum exemplo de desenvolvimento de Web Part para que eu possa acompanhar?
Obnrigado
Todas as Respostas
-
Oi !
Veja para a versão anterior : http://www.devaspnet.com.br/colunas/coluna0118.aspx , não creio que seja muito diferente do método usado na nova versão.
[]'s
-
Oi Dennes..
Então, estou seguindo o seu tutorail...
Mas tenho algumas dúvidas.
por exemplo..
Baixei o template, executei a extração dos arquivos e ele me deu a mensagem de que os arquivos haviam sido instalados de acordo, mas quando abro o visual Studio 2005 não é exibio o template...
tem algum outro macete?
Na criação da Web Part... Estou utilizando o Web Control Library...
Estou desenvolvendo em minha maquina e fazendo referenceia a dll, Microsodt.Sharepoint.dll no servidor de produção, existe algum problema nisso?
Criei uma pasta bin onde esta meu site e alterei o web.config existente na pasta do meu site conforme exibido abaixo:
Code Snippet<SafeControls>
<SafeControl Assembly="System.Web, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" Namespace="System.Web.UI.WebControls" TypeName="*" Safe="True" />
<SafeControl Assembly="System.Web, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" Namespace="System.Web.UI.HtmlControls" TypeName="*" Safe="True" />
<SafeControl Assembly="Microsoft.SharePoint, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" Namespace="Microsoft.SharePoint" TypeName="*" Safe="True" />
<SafeControl Assembly="Microsoft.SharePoint, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" Namespace="Microsoft.SharePoint.WebPartPages" TypeName="*" Safe="True" />
<SafeControl Assembly="Microsoft.SharePoint, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" Namespace="Microsoft.SharePoint.WebControls" TypeName="*" Safe="True" />
<SafeControl Assembly="Microsoft.SharePoint, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" Namespace="Microsoft.SharePoint.ApplicationPages" TypeName="*" Safe="True" />
<SafeControl Assembly="Microsoft.SharePoint, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" Namespace="Microsoft.SharePoint.SoapServer" TypeName="*" Safe="True" />
<SafeControl Assembly="Microsoft.SharePoint, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" Namespace="Microsoft.SharePoint.Meetings" TypeName="*" Safe="True" />
<SafeControl Assembly="wagner, Version=1.0.0.0, Culture=Neutral" Namespace="wagner" TypeName="*" Safe="True"/>
</SafeControls>
Adicionei essa liha:
<SafeControl Assembly="wagner, Version=1.0.0.0, Culture=Neutral" Namespace="wagner" TypeName="*" Safe="True"/>
Tenho dúvida quanto a localizar o PublicKeyToken!
Saberia me orientar em relação a isso? Onde eu verifico esse valor no meu Assembly?
O Xml eu mesmo estou criando, estou colocando ele dentro da pasta bin que eu criei para deixar a o meu Assembly.
Quando vou importa no sharepoint, eu seleciono esse arquivo, ele carrega o arquivo e exibe o titulo da web part, mas quando clico no botão importa ele exibe asseguinte mensagem:
Um Controle de Formulário da Web ou de Web Part não pode ser exibido ou importado porque não está registrado neste site como seguro.
O que pode estar errado?
A Minha classe criada esta da seguinte forma:
Code SnippetImports System
Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.Text
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports Microsoft.SharePoint.WebPartPages
<DefaultProperty("Text"), ToolboxData("<{0}:wagner runat=server></{0}:wagner>")> _
Public Class nova
Inherits WebPart
Private Sub Imprimevalor()
Write("Wagner")
End Sub
End Class -
Oi !
O publicKeyToken é gerado por uma assinatura digital na DLL, que é feita com a ferramenta SN.
Veja em http://msdn2.microsoft.com/en-us/library/k5b5tt23(vs.71).aspx
[]'s
-
-
Poxa deve existir alguma coisa errada ainda, continua dando aquele erro :
Eu fiz tudo direitinho aparentemente agora...
Meu Custon Control Library esta assim:
Code SnippetImports System
Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.Text
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Xml.Serialization
Imports Microsoft.SharePoint.WebPartPages
<DefaultProperty("Text"), ToolboxData("<{0}:WebParTeste runat=server></{0}:WebParTeste>")> _
Public Class webparteste
Inherits WebPart
Dim Label As Label
Protected Overrides Sub RenderWebPart(ByVal output As System.Web.UI.HtmlTextWriter)
Label = New Label
Label.Text = "Testando essa porcaria"
Me.Controls.Add(Label)
Label.RenderControl(output)
End Sub
End Class
Copilei o projeto e gerei a DLL... blz
Fui em "F:\Sites\diretório que foi criado meu site" e criei uma pasta bin, lá eu tenho duas Dll's o "Microsoft.SharePoint.dll " junto com um Xml do mesmo nome criado na hora que compileio o meu projeto e a minha, WebPartTeste.dll, junto com outros arquivos gerados no momento da compilação:
webparteste.DWP
WebPartTeste.PDB
WebPartTeste.xml
WebPartTeste.Resources.resources
WebPartTeste.vbproj.GenerateResource.Cache
O XMl que eu criei e depois modifiquei a extensao para .DWP é o seguinte:
Code Snippet<?xml version="1.0" encoding="utf-8" ?>
<WebPart xmlns="http://schemas.microsoft.com/WebPart/v2">
<Assembly>WebPartTeste</Assembly>
<TypeName>WebPartTeste.webparteste</TypeName>
<Title>WebParteste</Title>
</WebPart>
Fui até o diretório do meu site e abri o web.config ....
adicionei a linha
<SafeControl
Assembly="WebPartTeste, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1dabd180483ef116"
Namespace="WebPartTeste.webparteste"
TypeName="*"
Safe="True"
/>
Além de adicionar , também fui em :
C:\Program Files\Common Files\Microsoft Shared\web server extensions\60\CONFIG
Abri o web.config existente e adicionei o SafeControl junto as demais SafeControls existentes.
<SafeControl
Assembly="WebPartTeste, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1dabd180483ef116"
Namespace="WebPartTeste.webparteste"
TypeName="*"
Safe="True"
/>
Mas, aquela maldita mensagem continua aparecendo quando faço o procedimento de importar uma webpart...
Um Controle de Formulário da Web ou de Web Part não pode ser exibido ou importado porque não está registrado neste site como seguro. -
-