Publicando Aplicações RIA

Manoel Frederico – Gerente de Produto e Magic Evangelista

As aplicações RIA Magic xpa, como mencionado desde o princípio, são soluções nativas do SO (Windows, Android, BlackBerry e iOS) e dispensam a necessidade de um navegador web.

Porém, elas não deixam de ser aplicações Web (Internet/Intranet). E por isso, existe um passo a mais que é necessário, para que os usuários possam acessar estas aplicações: publicá-las.

Publicar significa exatamente isso: tornar a aplicação visível a todos os usuários, através da Internet/Intranet. Existem diferentes formas de se fazer uma publicação.

No caso do Magic xpaela se dá com o auxílio de um produto externo (de terceiros), não incluído na instalação do Magic, que é o WebServer. Os WebServers mais populares, IIS e Apache, são gratuitos.

Além da publicação padrão do Magic xpa na Internet (que o instalador já realiza, integrado ao IIS), onde a pasta “Scripts” é tornada pública através de um WebAlias (Diretório Virtual) no WebServer, para as soluções RIA é necessário ainda uma outra publicação: a aplicação em si.

Nos últimos posts, falamos a respeito de detalhes desta publicação (de aplicações) para Mobile:

que em síntese, são todas muito parecidas: disponibilizar o deployment da plataforma (BB, iOS ou Android) para download e instalação, e também o XML (DevProps) de conexão ao RIA Server.
Nota: Lembrando que não há nenhuma obrigação que este XML de conexão tenha o nome de “DevProps”, ou mesmo a extensão “XML”. Este arquivo poderia muito bem ser chamado, por exemplo, “MyAppConn.txt“.
Vamos agora neste post focar na publição de soluções Magic xpa RIA para outra plataforma: estações MS-Windows.
A publicação para desktops MS-Windows é diferente do Mobilee baseada na solução MicroSoft chamada: ClickOnce.Net ClickOnce permite que programas sejam gerados e disponibilizados (publicados) através da Internet/Intranet, para que os usuários possam acessá-los, baixá-los, instalá-los e executá-los localmente (na sua própria máquina). É desta forma que o deployment  Magic xpa RIA para MS-Windows funciona: ele é instalado na máquina do usuário, conecta-se remotamente ao RIA Server (através de um WebServer e protocolo HTTP/S), e inicia a execução da aplicação.
Relembre um pouco desta arquitetura, aqui neste outro post.
Para realizar esta tarefa, é necessário gerar alguns arquivos exigidos pelo .NET ClickOnce. Isso é feito através de um assistente do Magic xpa Studio:
Uma sequência de telas irá solicitar informações de aplicações, WebServer, certificado digital:
E no final, é criada uma pasta com o nome da aplicação dentro da pasta “PublishedApplications”:
 E dentro dela, todos os arquivos necessários para instalação do deployment do Magic xpa na máquina do usuário (incluindo um arquivo .html e um .application).
Como esta pasta (PublishedApplications) também está publicada no WebServer:

Tudo o que o usuário precisa fazer é acessar este conteúdo através da sua Internet:

 

E terá acesso imediato à instalação e execução desta aplicação.

O próprio assistente fornece o endereço (URL) que o usuário precisa utilizar:

Curiosidade….

Se as soluções RIA do Magic xpa dispensam a necessidade de um navegador web, porque o usuário tem de abrir a página (.html) gerada pelo assistente, justamente dentro de um navegador web?

A resposta é que ele não tem que fazer isso. Esta página (arquivo com extensão .htmlé “opcional” na arquitetura. Porém, ela facilita muito a vida do usuário, no seu primeiro acesso e instalação. Recomendamos o seu uso, a fim de evitar dificultar o processo de deployment.

Contudo, todavia, entretanto…

As instruções acima completam o processo de publicação. Contudo, existe um “porém” neste processo.

Observe que nas telas do assistente, são informados dados específicos do ambiente de execução (servidor, WebAlias da pasta “Scripts” do Magic, nome do Requester Magic, e alguns outros dados). Estas informações normalmente se referem a instalação do Magic xpa da máquina onde o assistente está sendo executado, que por sua vez, tende a ser a máquina de desenvolvimento/testes. Elas são gravadas nos arquivos “.html” “.application” que são gerados.

É grande a chance de que a máquina de produção, onde haverá uma instalação do Magic xpa servindo (RIA Server) aos usuários, seja outra. Logo, é preciso ajustar estes dois arquivos (.application e .html) para refletir as informações do ambiente de produção. Senão, o sistema não funcionará.

Não há nenhum dilema nisso. Ao copiar-se a pasta da aplicação para o ambiente de produção, basta abrir o arquivo da página Web (.html) e ajustar estes dados.

Mas há um empecilho: o arquivo base da aplicação (.application) é assinado digitalmente (veja que um certificado digital foi usado pelo assistente), e por isso não se pode tirar ou acrescentar uma vírgula sequer ao seu conteúdo.

E é também provável que na máquina de produção não haja instalação do Magic xpa Studio, nem os fontes do projeto (para rodar novamente o assistente). Deverá existir apenas a instalação do Magic xpa RIA Server e a aplicação já compilada (arquivo .ecf).

Como fazer?

O detalhe, é que quem criar todos estes arquivos para publicação da aplicação não é realmente o assistente, mas sim um utilitário .NET, chamado “Mage” (Manifest Generation Tool):

Ele está presente nas instalações do Magic xpamesmo quando é apenas o RIA Server (sem Studio). É um utilitário de “linha de comando”, e o assistente funciona apenas como uma interface visual para ele.

Por isso, no ambiente de produção, podemos fazer uma nova publicação da aplicação (considerando agora os dados do ambiente de produção) apenas invocando este utilitário e passando os argumentos que ele exige, gerando um novo arquivo “.application”.

E sem precisar do Magic xpa Studio.

São estes os argumentos necessários:

u <nom_completo_arquivo_Application>

appm <nom_completo_arquivo_Manifest>

appc <nom_completo_URL_Manifest>

certfile <senha_arquivo_Certificado_Digital>

– password <senha_arquivo_Certificado_Digital>

 Supondo que desejemos implantar a aplicação “Mobile Demo” numa máquina de produção, onde o endereço Internet/Intranet do servidor é www.MagicXpaServer.com.br” , o webAlias da pasta “Scripts” do Magic xpa é “MagicXpaWeb”a pasta onde a aplicação foi copiada chama-se “H:\Magic\RIAServer\Apps”, esta pasta é pública na Internet/Intranet através de um webAlias chamado “MagicXpaApps”usando um certificado digital que está no arquivo “K:\Docs\Seguros\WebDigCert.pfx”e a senha deste certificado seja “Xpa2012Magic”, seriam estes três procedimentos:

1. Copiar a pasta completa da aplicação (ex:Mobile Demo) para a pasta da produção que está publicada na Internet/Intranet (ex: H:\Magic\RIAServer\Apps)

2. Editar normalmente a página da Web (arquivo .html), ajustando os nomes do servidor e os webAlias:

3.  Executar o utilitário “Mage”, com os argumentos explicados acima, para gerar um novo arquivo application”:

 Isso irá gerar um novo arquivo base da aplicação (padrão MicroSoft .NET ClickOnce), agora contendo os dados do servidor de produção, e que os usuários poderão acessar para baixar e instalar o deployment do RIA Magic xpa para MS-Windows.

Manoel Frederico Silva

Product Manager & MAGIC Evangelist / Magic Software Brasil

5 comentários

  1. Ao acessar a aplicação está ocorrendo o erro (-103) mesmo com o background startado. O que pode ser? (Está sendo executado na mesma máquina do ria server, com licença “sue”)

      1. Estranho, porque quando acessado pelo Android esse erro não ocorre, somente para Windows Desktop!
        O broker está startado e utilizado o Magic.ini (modificado), não uso o Mgreq.ini.

  2. Olá, eu fiz uma pequena aplicação para o trabalho de conclusão da faculdade, no semestre passado estava desenvolvendo o software, porém perdi o computador e agora só consegui o arquivo compilado ecf do que eu tinha feito( e nem sei o quanto estava feito nesse arquivo) e queria saber se tem como o magic studio importar esse ecf? Ou alguma forma de recuperar as programações.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *