locked
Migração Silverlight 2 para Silverlight 4 RRS feed

  • Pergunta

  • Alguém já fez a migração do silverlight 2 para o 4 sem problemas? Tenho uma aplicação que roda em silverlight 2, e quero migrar para o 4 para acrescentar por exemplo a funcionalidade de impressão/relatórios. Já tenho o visual studio 2010 professional, e o blend 4 também.
    Guilherme Carvalho
    sexta-feira, 9 de julho de 2010 18:22

Respostas

  • Em teoria não deveria haver nenhum problema na migração mas só há como ter certeza de fato testando. Todos os projetos em que trabalhei até agora que precisei migrar funcionaram sem problemas.

    Para migrar, basta abrir o seu projeto no Visual Studio 2010 que ele vai perguntar se você quer atualizar para a última versão do Silverlight (você já deve ter o Silverlight 4 Tools para VS2010 instalado). Se, por algum motivo ele não perguntar se você quer migrar, você pode fazer isso entrando nas propriedades do projeto.

    Faça o teste e nos avise dos seus resultados (sejam eles positivos ou não)


    Atenciosamente,
    Kelps Leite de Sousa
    blog: http://kelps.net
    twitter : http://twitter.com/kelps

    Não se esqueça de "marcar como resposta" o ítem que lhe ajudou.
    • Marcado como Resposta Daniel Ferreira terça-feira, 13 de julho de 2010 17:59
    sexta-feira, 9 de julho de 2010 22:05
  • Guilherme,

    Normalmente a conversão funciona OK.

    Faça o seguinte, caso você tenha um backup da sua versão em SL 2, tente converte-la novamente.

    Caso o problema persista, cheque as References do seu projeto, se não há nenhuma com uma exclamação amarela indicando que a mesma não está sendo encontrada. Caso tenha, tente refazer essa referencia apontando para as dlls do SL 4 que ficam na aba .Net ou na pasta:

    {DRIVE}\{ARQUIVOS DE PROGRAMAS}\Microsoft SDKs\Silverlight\v4.0\Libraries

    Qualquer dúvida poste novamente.

    []´s


    Ricardo Dorta - Arquiteto de Software - MCP,MCAD,MCSD - Ajudou? Marque como reposta!!!. blog: http://blogs.makesys.com.br/dorta twitter : http://twitter.com/dortaway
    • Marcado como Resposta Daniel Ferreira terça-feira, 13 de julho de 2010 18:00
    sábado, 10 de julho de 2010 11:41
  • Guilherme.

    Funciona assim:

    Você tem de colocar o arquivo no diretório para onde o site configurado no IIS está apontando.

    No seu caso acredito que ele esteja apontando para a pasta web ou para a pata aplicacaosilverlight.

    Verifique no seu IIS qual é o diretório padrão do Website e coloque o arquivo lá. Deve resolver


    Ricardo Dorta
    Arquiteto de Software
    MCP,MCAD,MCSD
    Ajudou? Marque como reposta!!!.
    blog: http://blogs.makesys.com.br/dorta
    twitter : http://twitter.com/dortaway
    terça-feira, 13 de julho de 2010 22:38

Todas as Respostas

  • Em teoria não deveria haver nenhum problema na migração mas só há como ter certeza de fato testando. Todos os projetos em que trabalhei até agora que precisei migrar funcionaram sem problemas.

    Para migrar, basta abrir o seu projeto no Visual Studio 2010 que ele vai perguntar se você quer atualizar para a última versão do Silverlight (você já deve ter o Silverlight 4 Tools para VS2010 instalado). Se, por algum motivo ele não perguntar se você quer migrar, você pode fazer isso entrando nas propriedades do projeto.

    Faça o teste e nos avise dos seus resultados (sejam eles positivos ou não)


    Atenciosamente,
    Kelps Leite de Sousa
    blog: http://kelps.net
    twitter : http://twitter.com/kelps

    Não se esqueça de "marcar como resposta" o ítem que lhe ajudou.
    • Marcado como Resposta Daniel Ferreira terça-feira, 13 de julho de 2010 17:59
    sexta-feira, 9 de julho de 2010 22:05
  • Na primeira vez que abri ele perguntou, mas como não tinha instalado ainda o Silverlight 4 Tools para VS2010 escolhi não fazer, e agora como eu faço "Se, por algum motivo ele não perguntar se você quer migrar, você pode fazer isso entrando nas propriedades do projeto."
    Guilherme Carvalho
    sábado, 10 de julho de 2010 00:56
  • Você não precisa ter o Toolkit instalado, só o Tools do Silverlight 4 para VS2010. Você só precisa do Toolkit se o seu projeto usar ele (Toolkit é o pacote com controles extras como WrapPanel e DatePicker e que está no codeplex em http://silverlight.codeplex.com)

    Para mudar a versão do Silverlight do seu projeto, abra a tela de propriedades do projeto Silverlight (clique com o botão direito e vá em Properties ou dê um duplo clique no ítem properties do projeto). Lá você verá uma opção chamada "Target Silverlight Version". É só mudar pra Silverlight 4, salvar e compilar.


    Atenciosamente,
    Kelps Leite de Sousa
    blog: http://kelps.net
    twitter : http://twitter.com/kelps

    Não se esqueça de "marcar como resposta" o ítem que lhe ajudou.
    sábado, 10 de julho de 2010 02:20
  • Kelps,

    Fiz o que vocÊ falou, primeiro baixando o Tools e depois solicitando para converter, a conversão não retornou nenhum erro, mas na hora de executa a aplicação, ou mesmo de trabalhar com ela tá gerando um tipo de erro que não poderia acontecer. Quando eu abro um simples .xaml para trabalhar nele são retornados erro como este.

    Error 1 Assembly 'System.Windows.Controls' was not found. Verify that you are not missing an assembly reference. Also, verify that your project and all referenced assemblies have been built. F:\sistemas.NET\Advogaweb WCF Silverlight 4\AdvogawebWCF\AdvogawebWCF\cwCadastrarAndamento.xaml 4 27 F:\sistemas.NET\Advogaweb WCF Silverlight 4\

    Aqui está o começo do arquivo xaml que ele diz conter o erro, a linha do erro está em sublinhada e destacada com *, já a coluna que ele relata com erro é logo depois do primeiro sinal de igual controls=" Esta aspa é a coluna 27 da linha 4.

     

     

     

     


    Guilherme Carvalho

     

     

     

     

     

     

     

     

    controls:ChildWindow x:Class="AdvogawebWCF.cwCadastrarAndamento"
    xmlns=http://schemas.microsoft.com/winfx/2006/xaml/presentation 
    xmlns:x=http://schemas.microsoft.com/winfx/2006/xaml 
    * xmlns:controls="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls" 
    Width="400" Height="300"
    Title="" 
    sábado, 10 de julho de 2010 10:11
  • Guilherme,

    Normalmente a conversão funciona OK.

    Faça o seguinte, caso você tenha um backup da sua versão em SL 2, tente converte-la novamente.

    Caso o problema persista, cheque as References do seu projeto, se não há nenhuma com uma exclamação amarela indicando que a mesma não está sendo encontrada. Caso tenha, tente refazer essa referencia apontando para as dlls do SL 4 que ficam na aba .Net ou na pasta:

    {DRIVE}\{ARQUIVOS DE PROGRAMAS}\Microsoft SDKs\Silverlight\v4.0\Libraries

    Qualquer dúvida poste novamente.

    []´s


    Ricardo Dorta - Arquiteto de Software - MCP,MCAD,MCSD - Ajudou? Marque como reposta!!!. blog: http://blogs.makesys.com.br/dorta twitter : http://twitter.com/dortaway
    • Marcado como Resposta Daniel Ferreira terça-feira, 13 de julho de 2010 18:00
    sábado, 10 de julho de 2010 11:41
  • Kelps, boa tarde

    A migração funcionou tranquilo, agora estou tendo problema com o clientaccesspolicy, apesar de ter o arquivo configurado quando tento rodar no servidor de produção dá a famosa mensagem de cross-domain, abaixo está a configuração do arquivo de configuração.

    <?xml version="1.0" encoding="utf-8" ?>
    <access-policy>
     <cross-domain-access>
      <policy>
       <allow-from http-request-headers="*">
        <domain uri="*" />
       </allow-from>
       <grant-to>
        <resource path="/" include-subpaths="true" />
       </grant-to>
      </policy>
     </cross-domain-access>
    </access-policy>
    Lembrando que estou em fase de desenvolvimento por isto está liberado para tudo.


    Guilherme Carvalho
    terça-feira, 13 de julho de 2010 20:25
  • Guilherme,

    Certifique-se que você colocou o xml do clientaccesspolicy na pasta raiz onde seu projeto esta publicado.

    []´s


    Ricardo Dorta
    Arquiteto de Software
    MCP,MCAD,MCSD
    Ajudou? Marque como reposta!!!.
    blog: http://blogs.makesys.com.br/dorta
    twitter : http://twitter.com/dortaway
    terça-feira, 13 de julho de 2010 20:55
  • Ricardo a estrutura está assim no servidor

     

    Diretório raiz
    web
        aplicacaosilverlight
            backend (webservice)
            frontend (aplicacao silverlight)

    O arquivo cleintaccesspolicy está no diretório backend.

    O que acho engraçado é que antes de migrar estava funcionando normalmente com esta mesma configuração. Mas de qualquer maneira esta é a configuração no servidor.


    Guilherme Carvalho
    terça-feira, 13 de julho de 2010 22:35
  • Guilherme.

    Funciona assim:

    Você tem de colocar o arquivo no diretório para onde o site configurado no IIS está apontando.

    No seu caso acredito que ele esteja apontando para a pasta web ou para a pata aplicacaosilverlight.

    Verifique no seu IIS qual é o diretório padrão do Website e coloque o arquivo lá. Deve resolver


    Ricardo Dorta
    Arquiteto de Software
    MCP,MCAD,MCSD
    Ajudou? Marque como reposta!!!.
    blog: http://blogs.makesys.com.br/dorta
    twitter : http://twitter.com/dortaway
    terça-feira, 13 de julho de 2010 22:38
  • Infelizmente não tenho acesso as configurações do IIS, então por via das dúvidas coloquei o arquivo nos 3 diretórios (web, aplicacaaosilverlight, backend) e o erro continua. A mensagem de erro que estou recebendo bem detalhada é esta aqui.

    System.ServiceModel.CommunicationException was unhandled by user code
      Message=An error occurred while trying to make a request to URI 'http://http//www.advogaweb.com.br/advogawebwcf/backend/wsAgenda.asmx'. This could be due to attempting to access a service in a cross-domain way without a proper cross-domain policy in place, or a policy that is unsuitable for SOAP services. You may need to contact the owner of the service to publish a cross-domain policy file and to ensure it allows SOAP-related HTTP headers to be sent. This error may also be caused by using internal types in the web service proxy without using the InternalsVisibleToAttribute attribute. Please see the inner exception for more details.


    Guilherme Carvalho
    quarta-feira, 14 de julho de 2010 11:09
  • Resolvido.

    A todos que viram esta discussão, o problema foi resolvido, foi um erro meu na hora de mudar publicar esqueci de mudar o parâmetro abaixo tinha deixado como localhost.

    Mas valeu para que eu podesse descobrir, que para os clientes da Locaweb o arquivo clientaccesspolicy deve ser colocado na pasta web (raiz do site).

    Obrigado Ricardo e Kelps

    endpoint address="......".


    Guilherme Carvalho
    • Sugerido como Resposta André Cordeiro sábado, 26 de fevereiro de 2011 14:04
    quarta-feira, 14 de julho de 2010 12:04
  • Olá Guilherme,

    Estou com o mesmo problema à três dias.

    Alterei o meu endpoint de :
    <endpoint address="" ...
    para
    <endpoint address="http://SiaFinder.Web/Services/ServiceCampanhaConfEmail.svc" ...

    Porém quando vou debugar no client pelo fiddler vejo que está tentando pegar algo do tipo
    <endpoint address="http://localhost/SiaFinder.Web/Services/ServiceCampanhaConfEmail.svc" ...

    Ou seja, ele está colocando o localhost...
    Sabe o que pode ser?
    Preciso colocar essa aplicação no cliente hoje, por isso vim trabalhar neste sábado.
    Muito obrigado,
    André Cordeiro 41 92131445

    sábado, 26 de fevereiro de 2011 14:07
  • Olá Guilherme,

    Só complementando.. no degub quando entro na aplicação olha os passos do debug:

    http://siafinder/SiaFinder.Web/SIaFinderTestPage.aspx
    http://siafinder/SiaFinder.Web/Silverlight.js
    http://siafinder/SiaFinder.Web/Silverlight.js

    Dai para a tela de login, informo meu usuário e minha senha da aplicação, e ele chama os arquivos do localhost, e não do SERVIDOR.
    http://localhost/clientaccesspolicy.xml
    http://localhost/crossdomain.xml

    http://localhost/SiaFinder.Web/Services/ServiceValidaLoginMenu.svc

    Ele deveria chamar esse serviço no SERVIDOR para validar.

    Att.

    André Cordeiro
    41 92131445

    sábado, 26 de fevereiro de 2011 14:43