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 xpa, ela 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:
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” e “.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 xpa, mesmo 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
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”)
Veja aqui:
https://magicsoftware.my.salesforce-sites.com/PublicKnowledge/articles/bl_Reference/103-ERR-APP-NOT-FOUND-xpa-4x/?q=-103&l=en_US
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.
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.
Boa tarde.
Santo, o ECF é uma versão binária dos códigos fontes, não é possível fazer a engenharia reversa dele e extrair o fonte xml do projeto.
Infelizmente.