mar 20 2009

Deploy de Aplicações Flex + .Net

Categoria: C#.net, Flex, Visual StudioVinícius Sandim @ 12:01

Tenho recebido vários emails e comentários de pessoas perguntando como fazer a publicação de aplicações Flex com .Net.

Sendo assim resolvi fazer um post para mostrar que este processo é bem simples, então vamos lá.

1 – Crie uma pasta em um diretório de sua preferência para gerarmos os arquivos para a publicação.

2 - No Visual Studio, clique sobre o seu projeto web site no Solution Explorer, e vá até o menu Build > Publish WebSite…

3 – Em Target Location, clique sobre o botão […], em seguida escolha Fyle System e encontre a pasta que criamos anteriormente.

4 – Para o restante das opções, deixe marcado apenas a Allow this precompiled site to be updatable.

5 – Finalmente clique em OK para que ele gere os arquivos necessários.

6 – Feito isso vamos gerar os arquivos do Flex Builder.

7 – Primeiramente altere o seu arquivo services-config.xml, que deve estar parecido com isso:

<channel-definition id="my-amf" class="mx.messaging.channels.AMFChannel">
    <endpoint uri="http://localhost:1505/Net/Gateway.aspx" 
        class="flex.messaging.endpoints.AMFEndpoint"/>
</channel-definition>

8 – Altere o valor do atributo uri da tag endpoint, deixando-o apenas assim:

<channel-definition id="my-amf" class="mx.messaging.channels.AMFChannel">
    <endpoint uri="Gateway.aspx" 
        class="flex.messaging.endpoints.AMFEndpoint"/>
</channel-definition>

Isto acontece porque o arquivo swf gerado estará na mesma pasta de nosso Gateway.aspx.

9 – Agora clique sobre o seu projeto no Flex Navigator, e vá até o menu Project > Export Release Build…

10 – Caso não esteja selecionado, selecione o seu projeto no combo em Project.

11 – Em seguida, caso não esteja selecionada, selecione a aplicação principal de seu projeto em Application.

12 – Em Export to folder, selecione a pasta que geramos os arquivos do Visual Studio.

13 – Finalmente, altere o nome do arquivo que foi gerado na pasta NomeDaSuaApplication.html para Index.html.

Pronto é isso, agora basta subir os arquivos que estão na pasta que criamos para a pasta root de seu servidor FTP.

17 Responses to “Deploy de Aplicações Flex + .Net”

  1. Gustavo says:

    Grande Vinicius!!!

  2. Vinícius Sandim says:

    \o/

  3. Rafael says:

    Olá!
    Cara, estou quebrando a cabeça com um deploy, vc trabalha com Fluorine logo deve saber o q estou fazendo de errado, aliás comeceia utilizar o Fluorine depois de seu tutorial com acesso a dados, depois dele não parei mais. Em remoting não tenho mais problemas, te agradeço por isso =)

    Mas agora estou tentando publicar aquele exemplo que vem com o FluorineFx chamado VideoChat, acredite, eu ja fiz isso no passado tive o mesmo problema resolvi q agora não lembro como fiz =)
    O exemplo funciona perfeitamente local, mas depois de enviado ao servidor não consegue estabelecer conexao… verifiquei o services-config.xml, algums recomendam usar localhost em lugar do {server.name} q me lembre eu não alterei isto da vez anterior e funcionou. crossdomain.xml… uma serie de diferentes uris mas nada =\
    Como vc faria o deploy daquele exemplo?
    Agradeço

  4. Vinícius Sandim says:

    Cara, primeiramente; você conseguir rodar aquele exemplo??? heheheh
    Qual versão do Flex você usa?
    Sabe porque a pergunta, é que no services-config daquele exemplo ele tem uma referência para uma classe do Live Cycle Data Services.
    Você chegou a instalar o LCDS?

  5. Rafael says:

    Não mas faz o service-config assim que rola legal

  6. Rafael says:

    (?xml version=”1.0″ encoding=”utf-8″ ?>
    (services-config>
    (channels>
    (channel-definition id=”my-rtmp” class=”mx.messaging.channels.AMFChannel”>
    (endpoint uri=”rtmp://{server.name}:1935″ class=”flex.messaging.endpoints.AMFEndpoint”/>
    (/channel-definition>
    (/channels>
    (/services-config>

  7. Marcelo Rangel says:

    Olá Vinicius,

    Estou tentando colocar o gateway.aspx dentro de uma pasta e não consigo alterei no services-config.xml, coloquei a url completa e apresenta o erro “Channel.Connect.Failed error NetConnection.Call.Failed: HTTP: Status 404: url: ‘http://localhost:82/conta/a/Gateway.aspx’”, só funciona na raiz do site.

    Abraço

  8. Marcelo Rangel says:

    Vinicius,

    Você utiliza o Authentication, do fluorine?

  9. Vinícius Sandim says:

    Olá Marcelo, boa noite.

    O caso de não colocar a Gateway no root funciona, porém você tem que criar um aplicação virtul no IIS.

    Antes de subir qualquer arquivo do Flex, abra a página Gateway.aspx no navegador, veja se não aparece nenhum erro.

    Não o Authentication não é usado no exemplo. Dá uma olhada nos Samples do FluorineFx que tem lá como você deve proceder.

    Eu sei que tem que herdar algumas classes e implementar umas interfaces. Não é tão complicado.

  10. Carlos Jefferson says:

    Olá Vínicius,

    Ótimo trabalho o seu parabéns.

    Tenho uma dúvida estou com um problema na hora de publicar um projeto meu no servidor IIS. Não consigo encontrar uma solução, quando vou abrir o site da a seguinte erro “Client.Error.MessageSend: Send Failed”, estou utilizando o FluorineFX + VB.Net + Flex 3.0. Tudo que você colocou no post tentei fazer mas não foi.

    Se puder me ajudar agradeço.

  11. David says:

    Boas Vinicius,
    Parabéns pela didatica e conhecimento do assunto.
    Estou a aventurar-me por este mundo e gostaria de saber se o arquivo “services-config.xml”
    pode ser utilizado para outras finalidades como armazenar variaveis de ambiente. tipo o web.config do dot.net. se não se existe algum com esta funcionalidade.
    desde já agradeço.

  12. Flavio says:

    Caro Vinicius, fiz um o exemplo do site do Igor Musado (http://www.igormusardo.com.br/2009/01/26/construindo-aplicacoes-ricas-de-internet-com-adobe-flex-3-e-aspnet/) e não encontrei o arquivo services-congif.xml na aplicação. Você sabe como procder?
    desde já agradeço

  13. Vinícius Sandim says:

    Cara acontece que o Igor Musardo usa WebOrb e não FluorineFx, portanto a configuração é bem diferente. Talvez ele não precise do arquivo.

  14. Ricardo says:

    Olá Vinicius. Muito bom o tutorial, tanto esse como os outros que você ensina a integração do asp.net com Flex. Porem eu não consegui fazer o deploy que vc ensina aqui, o que acontece é o seguinte: A aplicação ja rodava perfeitamente pelo Flex (estou usando a aplicação que vc ensina no tutorial “integração adobe flex - fluorineFx parte 1 e 2″), então criei uma pasta e publiquei todos os arquivos la exatemente como vc explica. Porem, quando eu executo a aplicação pelo arquivo html gerando pelo Flex na hora da exportação, a aplicação fica sendo executada a vida inteira e na da resultado (aquele relogio do Flex q significa carregando nunca para de girar rs). Ai reparei q quando o Flex exportou os arquivos, na pasta não tinha o arquivo service-config.xml, copiei ele para a pasta e executei e continuou do mesmo jeito, vc sabe o que pode ser?

  15. Ricardo says:

    Opa! Então vinicius, configurei a pasta que eu exportei os arquiovs no IIS e a aplicação rodou!

  16. Mauro says:

    Senhores, dica importante:
    Caso sua aplicação rode no ambiente de desenvolvimento, porém não funcione no site de hospedagem, e se o erro for: “NetConnection.Call.BadVersion”, mude a configuração do IIS de “Integrado” para “Classico”.
    Eu estava tendo esse problema no UOLHost e após mudar a configuração passou a funcionar.
    O KingHost, LocalHost e demais sites mais famosos de hospedagem contemplam essa opção.
    Até mais. Mauro.

  17. Vinícius Sandim says:

    Valeu Mauro! Muito obrigado pela dica! Fica arquivado por aqui.
    Abraços!

Leave a Reply