Tag uniPaaS JET

Criando uma Aplicação de Marca com a Plataforma de Aplicações uniPaaS

Glenn Johnson

Dominando o Z-Order de Controles

Hoje se fala muito sobre aplicações de marca. Geralmente são aplicativos móveis, mas às vezes um app de marca precisa ser uma aplicação web ou pelo menos uma aplicação entregue através da Internet, tal como um aplicativo RIA que flutua em uma janela acima do navegador livre de todos os problemas de segurança e confiabilidade que o navegador impõe. Então, recentemente, com as equipes da Magic da França, Alemanha, Israel e Américas indo para o Dreamforce ’11 (# DF11) me deparei querendo manter o controle de todas as sessões que eu estaria participando na conferência. Infelizmente, a aplicação Chatter Dreamforce não tem essa funcionalidade. Pareceu-me que eu deveria ser capaz de adicionar reuniões e compromissos para a seção Calendário de minha app Dreamforce, mas, infelizmente, eu poderia apenas adicionar as sessões para as quais eu era elegível para se cadastrar. Então, com um pouco de devaneio criativo, comecei a me perguntar como eu poderia criar um aplicativo de calendário de eventos no uniPaaS e torná-lo parecido com uma app de marca para o Dreamforce. E o exercício me fez pensar sobre o Z-Order dos controles.

 

 

O uniPaaS Dot Net Tutorial forneceu o programa exemplo perfeito em Events .NET Calendar. Mas eu queria fazer com que se  parecesse com uma aplicação Dreamforce. Então com uma pequena ajuda de meu browser, Photoshop e uma compreensão do Z-Order de Controles no uniPaaS, consegui criar minha aplicação exemplo com a aparência que eu queria. Eu criei uma aplicação de marca.

 


Partindo do Tutorial uniPaaS Jet Dot Net, eu cliquei em Programs Repository no Painel de Navegação no canto superior direito e dei zoom (F5) no Events .NET Calendar. Isso abre o programa no Studio.  Eu queria brincar com a aparência do programa porque o controle em si era uma espécie de controle típico do Windows, monótono e cinza.

O primeiro passo foi encontrar um par de imagens que eu queria usar. Meu editor gráfico preferido é o Photoshop. Eu colei um par de imagens no Photoshop e salvei-as como arquivos JPEG.

 

 

De volta ao Studio, selecionei o Form e dei um zoom (F5) no segundo formulário que também é chamado Events .NET Calendar. No paleta de controles, eu selecionei o ícone Image e então cliquei na posição aproximada onde eu queria que o canto superior esquerdo aparecesse.

 

 

Algum ajuste da posição da imagem era necessário. Então as coordenadas X, Y precisas podem ser configuradas na categoria Navegação da Propriedade do Controle.

 

 

Z-Order de controles em um formulário é a profundidade dos controles como você os insere. O Z-Order torna-se especialmente importante quando você sobrepõe controles.

Aqui está um exemplo onde imagens e controles são parcialmente sobrepostos. Você notará que uma das duas mulheres da fotografia não está visível. Por que? Porque o Z-Order de toda a imagem está, essencialmente, abaixo do controle .NET que contém o calendário.

 

 

O uniPaaS reconhece dois grupos de controles com relação ao Z-Order:

Grupo I Grupo II
Push buttonsCheck boxesRadio buttonsSlidersCombo boxesList boxes

OLEs

RTFs

Tree Control

Subforms

Browser Control

ImagesTabsStatic controlsEdit controlsLinesGroups

 

Você pode reorganizar o Z-Order nos dois grupos, mas não entre eles. O uniPaaS organiza automaticamente o Z-Order entre controles do Grupo I e Grupo II. Por exemplo, se você fosse colocar um controle Edit no topo de um controle Push Button, o Z-Order ordenaria os controles para que o controle Push Button fosse posicionado à frente. Você não pode trazer um controle do segundo grupo à frente de um controle do primeiro grupo. Você usa o menu de contexto Arrange ou a paleta de Comandos para exibir ou alterar o Z-Order de controles em um formulário.

Para ajustar o Z-Order você tem que certificar-se que o Z-Order Automático não está selecionado na paleta de Comandos. Esse é o ícone mostrado aqui. Você também deve aprender a usar outros ícones para Avançar um Nível, Retornar um Nível, Trazer para Frente, Enviar para Trás e Mostrar o Z-Order.

Então com muito pouco esforço, um controle pode ser melhorado com o uso de imagens e se tornar uma aplicação de marca. Quando implantei meu programa RIA da Plataforma de Aplicações uniPaaS na janela sobre a página web do Dreamforce, o resultado ficou bastante agradável de ponto de vista estético.

 

 

Glenn Johnson – Senior Vice President – Magic Software Americas

Comparando uniPaaS e Java: não podemos ficar juntos?

Glenn Johnson – Senior Vice President – Magic Software Americas

Recentemente, realizamos um desafio interessante com uniPaaS Jet. Pedimos a um desenvolvedor independente, já familiarizado com programação Java e sem nenhuma experiência anterior em uniPaaS, para fazer o download do uniPaaS Jet, estudá-lo e criar um programa simples (nós já havíamos pedido a ele para criar o mesmo programa em Java.) Solicitamos que ele anotasse cuidadosamente os recursos necessários e todo esforço envolvido. O uniPaaS mostrou-se mais eficiente em cada categoria analisada. O uniPaaS utilizou metade da memória e metade do armazenamento do arquivo. O uniPaaS exigiu apenas 1% de linhas lógicas e 7% de linhas físicas de código. O programa uniPaaS foi executado pela primeira vez em 1 décimo da quantidade de tempo. O esforço aplicado foi de 202 horas em Java e apenas 3,2 horas em uniPaaS. A duração do projeto foi de 2,63 meses em Java e parte de um único dia em uniPaaS.

Nosso objetivo em relatar esses resultados não é criticar o Java ou apontar suas fraquezas, na verdade o uniPaaS é muito amigável ao Java. Temos alguns desenvolvedores Java em nosso departamento de pesquisa e desenvolvimento. E o mais importante é que nós acreditamos que o uniPaaS pode oferecer muito para as equipes de desenvolvimento Java fornecendo-lhes ferramentas que podem tirar aproveitar de seu investimento em Java, dando-lhes o tipo de vantagens experimentado pelo desenvolvedor independente mencionado acima.

A Integração Java embutida no uniPaaS permite que o uniPaaS faça interface com uma classe Java ou Enterprise JavaBeans (EJB), usando pseudo-referências que representam instâncias de classes Java ou arquivos EJB. Pseudo-referências são um identificador que representa os valores de uma instância de classe em uma variável BLOB. Os programas devem passar este identificador para acessar os métodos e variáveis ​​de uma instância da classe. Uma classe Java é uma definição de modelo dos métodos e variáveis ​​em um determinado tipo de objeto. Um objeto pode ser uma instância específica de uma classe e pode conter valores reais ao invés de variáveis. Para a integração de classes Java através de uma aplicação uniPaaS, você pode acessar métodos estáticos e variáveis, sem a pseudo-referência.

Instâncias Java, métodos estáticos e variáveis ​​são invocados pelo Java uniPaaS e funções EJB. No Java, uma instância de classe é uma implementação específica da classe Java, enquanto um método de classe estática é um método de classe que pode ser chamado sem instanciar a classe. Da mesma forma, uma variável de classe estática é uma variável de classe que pode ser acessada sem instanciar a classe.

Um Enterprise Java Bean (EJB) é uma arquitetura para definição dos componentes do programa Java que são executados em uma rede cliente / servidor. O uniPaaS EJB Component Generator é um assistente que gera um componente contendo programas uniPaaS que chamam uma classe Java ou funções EJB. A Java Native Interface (JNI) permite que programas não-Java possam interagir com os programas Java. O Java Component Generator é um assistente que permite que o uniPaaS automaticamente  acesse classes Java ou arquivos EJB, criando um componente que elimina a necessidade de especificar assinaturas JNI. Você também pode usar o uniPaaS para gerar Enterprise Java Beans (EJBs). Clientes que rodam em um ambiente J2EE são capazes de visualizar e ativar programas uniPaaS como métodos EJB. Você cria os EJBs usando o utilitário Component Builder do uniPaaS.

O uniPaaS pode criar uma instância de uma classe Java que permite que você ative um método, ou consulte e atualize variáveis ​​usando uma pseudo-referência. A pseudo-referência é uma variável BLOB que representa a instância da classe Java. Quando um método é invocado, a variável BLOB retorna ​​para o programa uniPaaS como códigos de retorno de função. Métodos estáticos de classes e variáveis ​​também podem ser acessados ​​sem uma instância da classe Java usando o nome da classe e o método ou o nome da variável.

As funções uniPaaS Java são usadas ​​para simular os métodos de chamada em Java. Cada contexto do motor internamente mapeia entre a pseudo-referência e a referência real.

Por exemplo, um programa uniPaaS pode chamar a função JCreate para criar uma pseudo-referência como Variável Virtual A. A referência real para a instância é, então, internamente, associada com o Variável Virtual A. Qualquer programa uniPaaS no contexto será capaz de acessar os métodos e variáveis ​​do objeto usando JCall (A ,…).

As funções do Java pode ser chamadas por um programa uniPaaS para:

• Criar uma nova instância de uma classe Java
• Chamar um método diretamente da classe Java ou de uma instância
• Reportar e retornar exceções
• Consultar e atualizar valores de variáveis

As funções EJB permitem ao uniPaaS explorar e chamar Enterprise JavaBeans.

Acho que a mensagem importante aqui é que o uniPaaS pode ajudar programadores Java a fazerem uso eficiente de classes Java e EJBs enquanto se beneficiam da eficiência da plataforma de aplicativos inteligente do uniPaaS. Para maiores informações acesse o Magic Software DevNet ou contate nosso representante local.

Iniciando a Programação de Computadores de forma Simplificada: Por favor, Apertem Seus Cintos

Glenn Johnson – Senior Vice President – Magic Software Americas

Quem já tentou aprender a escrever novas aplicações de software pode avaliar que a programação de computadores exige uma habilidade especial. E qualquer um que tenha prestado atenção à taxa de falha de projetos de desenvolvimento de novos softwares sabe que a média do setor é alarmante. 

As linguagens de programação de computadores evoluíram tanto e tão rapidamente que eles não são utilizáveis pela maioria. Isso não é uma simples conjectura. Dan Bricklin documentou o fenômeno em seu artigo “Por que Johnny não pode programar”, relatando que entre 30 a 60% dos que iniciam um curso de programação de computadores falham em seu primeiro curso. Então, mesmo entre aqueles que desejam aprender programação e a escolheram como futura carreira profissional, é muito difícil. Este fracasso coletivo levou muitos iniciantes a dizer “deve haver uma maneira melhor.”   

Mas, mesmo entre programadores profissionais especializados em uma linguagem de programação, as falhas são comuns. O Standish Group Chaos Report divulgou que as taxas de sucesso no desenvolvimento de projetos de software são de apenas 34%. É claro que eles usaram as medidas tradicionais de “prazo, orçamento e especificações” para medir o sucesso. Mesmo quando os próprios programadores estão autorizados a definir os critérios de sucesso, quase 30% dos projetos de software falham (ver Ambler). Assim, mesmo programadores de computador experientes muitas vezes dizem “deveria existir uma maneira melhor.” 

A mais recente tentativa de superar o desafio de formar novos programadores e retreinar os já existentes com ferramentas que superam o dilema de usabilidade da maioria das plataformas de desenvolvimento de software é o  uniPaaS Jet. uniPaaS Jet é uma ferramenta gratuita para desenvolvimento e implantação de aplicativos de software. A idéia é simples: um desenvolvedor – um usuário – distribuição ilimitada. O download gratuito inclui um banco de dados SQL Lite e acesso a aulas gratuitas de auto-aprendizagem e centenas de vídeos, programas exemplo e tutoriais. Pode-se fazer o upgrade, é claro, para uma solução de desenvolvedor ilimitado – usuários ilimitados – distribuição licenciada, chamada uniPaaS Enterprise. Ambos podem construir Rich Internet Applications (RIA), bem como aplicações tradicionais. 

Em minha opinião, ele se destina àqueles que procuram uma maneira simplificada para criar aplicações simples. Resta saber se ele atrai apenas novos programadores da atual geração de graduados na faculdade ou se ele vai se tornar uma causa célebre entre os codificadores. 

Um amigo meu recentemente criou um vídeo no You Tube chamado “And So You  Code” e ele colocou o dedo na ferida. A última vez que verifiquei, o vídeo tinha mais de 500.000 exibições. Fiquei espantado com a forma como muitos programadores odeiam a codificação linha por linha, consideram o trabalho penoso, odeiam seus chefes e querem um caminho melhor. 

Há todos os tipos de deficiências na programação ou codificação de computadores tradicional. Por exemplo, é sabido que um programa Java pode ser sintaticamente correto, mas ainda não compila devido a erros relacionados com a semântica da linguagem. 

E a Microsoft admite em seu próprio website que “a maioria das linguagens não suporta a compatibilidade binária em tudo, e muitas fazem pouco para facilitar a compatibilidade de origem. De fato, algumas linguagens contêm falhas que tornam impossível, em geral, a evolução de uma classe ao longo do tempo sem quebrar pelo menos algum código do cliente. ” 

A meu ver, o uniPaaS Jet é uma tentativa de passar por cima de toda toda a confusão, frustração e fracasso com a programação de computadores e desenvolvimento de software tradicional e fornecer uma ferramenta superior que pode ser usada com metodologias de programação/desenvolvimento ágil, interativa, tradicional e outras.  

O que isso significa para usuários de software ERP e outras aplicações de negócio? Isso significa que a criação de interfaces simplificadas com base nestes aplicativos corporativos de retaguarda é muito mais fácil. Ao quebrar a barreira da complexidade, uma abordagem como uniPaaS Jet pode tornar acessíveis  as extensões e aprimoramentos ao ERP, onde antes isso seria incontrolável, complexo e sujeito a falhas. Tenho certeza que vou ter mais a dizer sobre isto no futuro. Fique atento. Entretanto, “caros passageiros do  uniPaaS Jet, por favor, apertem os cintos. Vocês estão prestes a experimentar um novo nível de poder e facilidade de uso no desenvolvimento de software. ”