{"id":12918,"date":"2022-07-07T13:53:24","date_gmt":"2022-07-07T16:53:24","guid":{"rendered":"http:\/\/kb.elipse.com.br\/?p=12918"},"modified":"2022-12-22T09:48:42","modified_gmt":"2022-12-22T12:48:42","slug":"melhores-praticas-para-o-desenvolvimento-de-uma-aplicacao-elipse-e3","status":"publish","type":"post","link":"https:\/\/kb.elipse.com.br\/en\/melhores-praticas-para-o-desenvolvimento-de-uma-aplicacao-elipse-e3\/","title":{"rendered":"Melhores pr\u00e1ticas para o desenvolvimento de aplica\u00e7\u00f5es E3."},"content":{"rendered":"<p style=\"text-align: justify;\">Este artigo tem como objetivo apresentar um roteiro com as melhores pr\u00e1ticas para desenvolvimento de uma aplica\u00e7\u00e3o Elipse E3.<br \/>\nCom base nos m\u00f3dulos existentes no software, ser\u00e3o enunciados diversos artigos e dicas para um bom desenvolvimento.<\/p>\n<h2 style=\"text-align: justify;\"><strong>Bibliotecas<\/strong><\/h2>\n<p style=\"text-align: justify;\">Existe um conjunto de orienta\u00e7\u00f5es para desenvolver aplica\u00e7\u00f5es com boa performance, e uma delas \u00e9 a utiliza\u00e7\u00e3o de Bibliotecas.<br \/>\nDevido a complexidade e extens\u00e3o de alguns projetos, o seu desenvolvimento pode se tornar muito mais r\u00e1pido com o uso dos recursos de orienta\u00e7\u00e3o a objetos e as Bibliotecas dispon\u00edveis no E3, criando projetos simples e objetivos, reduzindo drasticamente o tempo de manuten\u00e7\u00e3o.<\/p>\n<p style=\"text-align: justify;\">Portanto, abaixo apresentamos alguns artigos que demonstram essa pr\u00e1tica no Elipse E3:<\/p>\n<ul style=\"text-align: justify;\">\n<li style=\"text-align: justify;\"><a href=\"https:\/\/kb.elipse.com.br\/desenvolvendo-aplicacoes-orientadas-a-objetos-no-elipse-e3-parte-i\/\">Desenvolvendo aplica\u00e7\u00f5es orientadas a objetos no Elipse E3 \u2013 Parte I.<\/a><\/li>\n<li style=\"text-align: justify;\"><a href=\"http:\/\/kb.elipse.com.br\/pt-br\/questions\/27\/Desenvolvendo+aplica%C3%A7%C3%B5es+orientadas+a+objetos+no+Elipse+E3+-+Parte+II\">Desenvolvendo aplica\u00e7\u00f5es orientadas a objetos no Elipse E3 \u2013 Parte II.<\/a><\/li>\n<li style=\"text-align: justify;\"><a href=\"https:\/\/kb.elipse.com.br\/usando-bibliotecas-no-elipse-e3-introducao\/\">Usando Bibliotecas no Elipse E3: Introdu\u00e7\u00e3o.<\/a><\/li>\n<\/ul>\n<h2 style=\"text-align: justify;\">Banco de Dados<\/h2>\n<p style=\"text-align: justify;\">O Elipse E3 possui conex\u00e3o nativa com os bancos Access, Oracle, SQL Server, PostgreSQL e MySQL, e a escolha depender\u00e1 diretamente de sua finalidade, onde teremos que avaliar suas <a href=\"https:\/\/kb.elipse.com.br\/usando-bancos-de-dados-no-e3-capitulo-1-escolhendo-o-banco-de-dados\/\">vantagens e desvantagens<\/a>.<\/p>\n<p style=\"text-align: justify;\">Os<b> Hist\u00f3ricos <\/b>s\u00e3o m\u00f3dulos respons\u00e1veis pelo armazenamento de dados da aplica\u00e7\u00e3o em um Banco de Dados para an\u00e1lises futuras, onde \u00e9 poss\u00edvel inserir <b>chave prim\u00e1ria <\/b>e <b>\u00edndices.\u00a0<\/b>\u00cdndices s\u00e3o campos (ou conjunto de campos) previamente ordenados pelo banco de dados a fim de melhorar a performance das consultas que utilizam estes \u00edndices.<\/p>\n<p style=\"text-align: justify;\">J\u00e1 para a configura\u00e7\u00e3o da <strong>Consulta<\/strong>, dependendo da quantidade de dados retornados em uma consulta, ou do n\u00famero de objetos que possuem consultas associadas, o ac\u00famulo excessivo de dados pode gerar lentid\u00e3o ao entrar em telas e ao retornar os dados provenientes das consultas.\u00a0 Neste caso, \u00e9 importante inserir um <strong>filtro<\/strong>, com um espa\u00e7o de tempo curto no valor inicial das vari\u00e1veis que realizam o filtro por data.<\/p>\n<p style=\"text-align: justify;\">\u00c9 importante destacar, que utilizando um objeto Hist\u00f3rico ou o m\u00e9todo Execute do objeto Consulta com o par\u00e2metro <strong>ImmediateExecute<\/strong> igual a <strong>False<\/strong>,\u00a0 os dados passam pelas filas de opera\u00e7\u00f5es do banco (arquivos .e3i e .e3o), de maneira ass\u00edncrona, proporcionando maior performance na aplica\u00e7\u00e3o. N\u00e3o recomendamos ativar o <strong>ImmediateExecute(True)<\/strong>, justamente por potencialmente causar travamentos no aplicativo mediante desconex\u00f5es do banco.<\/p>\n<p style=\"text-align: justify;\">Abaixo apresentamos alguns artigos que demonstram essa pr\u00e1tica no Elipse E3:<\/p>\n<ul style=\"text-align: justify;\">\n<li style=\"text-align: justify;\"><a href=\"https:\/\/kb.elipse.com.br\/usando-bancos-de-dados-no-e3-introducao\/\">Usando Bancos de dados no E3: Introdu\u00e7\u00e3o.<\/a><\/li>\n<li style=\"text-align: justify;\"><a href=\"https:\/\/kb.elipse.com.br\/linguagem-sql-capitulo-5-boas-praticas-de-configuracao-de-um-historico-e-uma-consulta\/\">Linguagem SQL: Cap\u00edtulo 5 \u2013 Boas pr\u00e1ticas de configura\u00e7\u00e3o de um Hist\u00f3rico e uma Consulta.<\/a><\/li>\n<li style=\"text-align: justify;\"><a href=\"https:\/\/kb.elipse.com.br\/linguagem-sql-introducao\/\">Linguagem SQL: Introdu\u00e7\u00e3o.<\/a><\/li>\n<li><a href=\"https:\/\/kb.elipse.com.br\/kb65651-utilizando-o-metodo-getasyncadorecordset\/\">KB-65651: Utilizando o m\u00e9todo GetAsyncADORecordSet.<\/a><\/li>\n<\/ul>\n<h2 style=\"text-align: justify;\">Scripts<\/h2>\n<p style=\"text-align: justify;\">Apesar de a maioria dos aspectos do VBScript se aplicarem \u00e0 programa\u00e7\u00e3o de scripts no E3, algumas particularidades devem ser destacadas no que diz respeito \u00e0s implementa\u00e7\u00f5es do conceito de orienta\u00e7\u00e3o a objetos no sistema.<\/p>\n<p style=\"text-align: justify;\">Evite a utiliza\u00e7\u00e3o de scripts c\u00edclicos, e caso n\u00e3o seja poss\u00edvel utilizar associa\u00e7\u00f5es para implementar o desejado, \u00e9 recomend\u00e1vel criar um evento de usu\u00e1rio que somente seja executado quando uma condi\u00e7\u00e3o seja satisfeita.<\/p>\n<p style=\"text-align: justify;\">No tutorial exemplo abaixo, temos como objetivo familiarizar o uso do VBScript no E3 atrav\u00e9s de exemplos e exerc\u00edcios, proporcionando uma boa pr\u00e1tica no desenvolvimento de scripts.<\/p>\n<ul style=\"text-align: justify;\">\n<li><a href=\"https:\/\/kb.elipse.com.br\/nocoes-de-vbscript-no-software-elipse-e3-introducao\/\">No\u00e7\u00f5es de VBScript no Software Elipse E3: Introdu\u00e7\u00e3o.<\/a><\/li>\n<\/ul>\n<h2 style=\"text-align: justify;\">Comunica\u00e7\u00e3o<\/h2>\n<p style=\"text-align: justify;\">Para que a aplica\u00e7\u00e3o tenha uma boa performance de comunica\u00e7\u00e3o, devemos avaliar uma s\u00e9rie de fatores, incluindo o tipo de equipamento, o tipo de interface da comunica\u00e7\u00e3o utilizada, velocidade (baud rate), taxa de erros, etc. Al\u00e9m disso, algumas op\u00e7\u00f5es podem ser configuradas no driver, para obter um melhor desempenho.<\/p>\n<p style=\"text-align: justify;\">Propriedade <strong>WriteSyncMode<\/strong> do driver: Determina como as escritas ser\u00e3o enviadas para o IOServer (modo s\u00edncrono ou ass\u00edncrono). Se por ventura uma aplica\u00e7\u00e3o apresentar uma baixa performance na comunica\u00e7\u00e3o, esta propriedade pode ser alterada para o modo ass\u00edncrono sem confirma\u00e7\u00e3o. Na escrita ass\u00edncrona (sem confirma\u00e7\u00e3o), o E3Run envia o valor para o I\/O Server e n\u00e3o aguarda o retorno; neste tipo de escrita, assume-se sempre que a escrita funcionou. Logo ap\u00f3s, a aplica\u00e7\u00e3o ser\u00e1 liberada imediatamente para seguir sua opera\u00e7\u00e3o natural.<\/p>\n<p style=\"text-align: justify;\">Propriedade <strong>WriteFeedBackMode<\/strong> do driver: Esta propriedade permite controlar a confirma\u00e7\u00e3o, ou feedback, das escritas em Tags de Comunica\u00e7\u00e3o. \u00c9 aplic\u00e1vel somente a Tags de Comunica\u00e7\u00e3o que possam ser lidos, ou seja, possuam a propriedade AllowRead em Verdadeiro. Portanto, em casos de baixa performance, esta propriedade pode ser alterada para <strong>0 &#8211; wfWaitNextRead<\/strong> (a leitura do Tag de Comunica\u00e7\u00e3o \u00e9 realizada normalmente na pr\u00f3xima varredura).<\/p>\n<p style=\"text-align: justify;\">Propriedade <strong>EnableReadGrouping<\/strong> do driver: Permite otimiza\u00e7\u00f5es de leitura ou agrupamento autom\u00e1tico de Tags de Comunica\u00e7\u00e3o. Esta propriedade n\u00e3o pode ser alterada com o driver de comunica\u00e7\u00e3o ativo. O valor padr\u00e3o desta propriedade \u00e9 Verdadeiro. A otimiza\u00e7\u00e3o de leitura s\u00f3 acontece se o driver de comunica\u00e7\u00e3o suportar este recurso.<br \/>\nImportante ressaltar, que o agrupamento (<strong>EnableReadGrouping<\/strong>) no E3 requer que o equipamento suporte os limites estabelecidos. H\u00e1 equipamentos, entretanto, que suportam limites inferiores. Para que o agrupamento dos tags funcione nestes casos, alguns drivers (como por exemplo o <em>Driver Modicon Modbus Master (ASC\/RTU\/TCP)<\/em>) permitem personalizar o limite m\u00e1ximo suportado de bytes de dados em cada comunica\u00e7\u00e3o.<\/p>\n<p style=\"text-align: left;\">No <strong>Driver Modbus<\/strong>, esta configura\u00e7\u00e3o pode ser realizada na op\u00e7\u00e3o <strong><em>Customize Max. PDU Size,\u00a0<\/em><\/strong>j\u00e1 no <strong>Driver BACnet<\/strong> em <em><strong>Maximum number of properties per ReadPropertyMultiple request<\/strong><\/em>, e no <strong>Driver Allen Bradley DF1\u00a0<\/strong>em <em><strong>Max Message Bytes. <\/strong><\/em>Portanto, deve-se verificar se o driver possui essa possibilidade de configura\u00e7\u00e3o.<\/p>\n<p style=\"text-align: justify;\"><strong>Pool de Processos IOServer:<\/strong> Em aplicativos com centenas de Drivers, os recursos necess\u00e1rios para executar os processos IOServer para cada Driver podem esgotar a capacidade do sistema operacional. Nestes casos, pode ser necess\u00e1rio habilitar o\u00a0<strong>Pool de Processos IOServer<\/strong>\u00a0na aba\u00a0<strong>Propriedades<\/strong>\u00a0da configura\u00e7\u00e3o do Dom\u00ednio.<\/p>\n<p style=\"text-align: justify;\">Abaixo apresentamos alguns artigos referentes ao conte\u00fado abordado anteriormente:<\/p>\n<ul>\n<li style=\"text-align: justify;\"><a href=\"https:\/\/kb.elipse.com.br\/como-funciona-a-escrita-em-tags-no-elipse-e3\/\">Como funciona a escrita em tags no Elipse E3.<\/a><\/li>\n<li style=\"text-align: justify;\"><a href=\"https:\/\/kb.elipse.com.br\/kb31875-priorizando-a-atualizacao-de-tags\/\">KB-31875: Priorizando a atualiza\u00e7\u00e3o de tags.<\/a><\/li>\n<li style=\"text-align: justify;\"><a href=\"https:\/\/kb.elipse.com.br\/pool-de-processos-ioserver\/\">Pool de Processos IOServer.<\/a><\/li>\n<li><a href=\"https:\/\/kb.elipse.com.br\/desabilitando-tags-de-um-clp-em-falha\/\">Desabilitando tags de um CLP em falha.<\/a><\/li>\n<\/ul>\n<h2 style=\"text-align: justify;\">Design de interfaces visual<\/h2>\n<p style=\"text-align: justify;\">Normalmente, as interfaces industriais s\u00e3o desenvolvidas por t\u00e9cnicos e engenheiros da pr\u00f3pria ind\u00fastria, e n\u00e3o por profissionais da \u00e1rea de design. \u00c9 portanto comum que estes t\u00e9cnicos desconhe\u00e7am as disciplinas e os estudos de design, psicologia e ci\u00eancias cognitivas que orientam o desenvolvimento das interfaces modernas.<\/p>\n<p style=\"text-align: justify;\">A\u00a0Biblioteca <strong>HighPerformance Template<\/strong>\u00a0para\u00a0E3\u00a0ou\u00a0Elipse Power\u00a0\u00e9 um modelo de aplica\u00e7\u00e3o que sintetiza os resultados de diversos estudos realizados nas mais distintas \u00e1reas do conhecimento, aplicados no desenvolvimento de interfaces industriais.<\/p>\n<ul>\n<li style=\"text-align: justify;\"><a href=\"https:\/\/kb.elipse.com.br\/metodologia-para-desenvolvimento-de-ihms-de-alta-performance-visual\/\">Metodologia para Desenvolvimento de IHMs de Alta Performance Visual.<\/a><\/li>\n<\/ul>\n<h2 style=\"text-align: justify;\">Geral<\/h2>\n<p style=\"text-align: justify;\">Afim de evitar que sua aplica\u00e7\u00e3o apresente lentid\u00e3o, bem como demora ao abrir telas e anima\u00e7\u00f5es trancando, recomendamos o artigo abaixo, que possui algumas dicas de bom desenvolvimento, ajudando a evitar este tipo de problema de performance em aplica\u00e7\u00f5es do E3.<\/p>\n<ul>\n<li style=\"text-align: justify;\"><a href=\"https:\/\/kb.elipse.com.br\/dicas-de-performance-para-o-e3\/\">Dicas de Performance para o E3.<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Este artigo tem como objetivo apresentar um roteiro com as melhores pr\u00e1ticas para desenvolvimento de uma aplica\u00e7\u00e3o Elipse E3. Com base nos m\u00f3dulos existentes no software, ser\u00e3o enunciados diversos artigos&hellip;<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0},"categories":[578],"tags":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v19.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Melhores pr\u00e1ticas para o desenvolvimento de uma aplica\u00e7\u00e3o Elipse E3.<\/title>\n<meta name=\"description\" content=\"O objetivo deste artigo \u00e9 apresentar um roteiro que estabelece e resume as melhores pr\u00e1ticas para desenvolvimento de uma aplica\u00e7\u00e3o Elipse E3.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kb.elipse.com.br\/melhores-praticas-para-o-desenvolvimento-de-uma-aplicacao-elipse-e3\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Melhores pr\u00e1ticas para o desenvolvimento de uma aplica\u00e7\u00e3o Elipse E3.\" \/>\n<meta property=\"og:description\" content=\"O objetivo deste artigo \u00e9 apresentar um roteiro que estabelece e resume as melhores pr\u00e1ticas para desenvolvimento de uma aplica\u00e7\u00e3o Elipse E3.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kb.elipse.com.br\/melhores-praticas-para-o-desenvolvimento-de-uma-aplicacao-elipse-e3\/\" \/>\n<meta property=\"og:site_name\" content=\"Elipse Knowledgebase\" \/>\n<meta property=\"article:publisher\" content=\"http:\/\/www.facebook.com\/elipsesoftware\" \/>\n<meta property=\"article:published_time\" content=\"2022-07-07T16:53:24+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-12-22T12:48:42+00:00\" \/>\n<meta name=\"author\" content=\"D\u00e9lio Damin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"D\u00e9lio Damin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kb.elipse.com.br\/melhores-praticas-para-o-desenvolvimento-de-uma-aplicacao-elipse-e3\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kb.elipse.com.br\/melhores-praticas-para-o-desenvolvimento-de-uma-aplicacao-elipse-e3\/\"},\"author\":{\"name\":\"D\u00e9lio Damin\",\"@id\":\"https:\/\/kb.elipse.com.br\/#\/schema\/person\/be597eff34b5f24af940a55332870778\"},\"headline\":\"Melhores pr\u00e1ticas para o desenvolvimento de aplica\u00e7\u00f5es E3.\",\"datePublished\":\"2022-07-07T16:53:24+00:00\",\"dateModified\":\"2022-12-22T12:48:42+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kb.elipse.com.br\/melhores-praticas-para-o-desenvolvimento-de-uma-aplicacao-elipse-e3\/\"},\"wordCount\":2382,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kb.elipse.com.br\/#organization\"},\"articleSection\":[\"Elipse E3\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kb.elipse.com.br\/melhores-praticas-para-o-desenvolvimento-de-uma-aplicacao-elipse-e3\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kb.elipse.com.br\/melhores-praticas-para-o-desenvolvimento-de-uma-aplicacao-elipse-e3\/\",\"url\":\"https:\/\/kb.elipse.com.br\/melhores-praticas-para-o-desenvolvimento-de-uma-aplicacao-elipse-e3\/\",\"name\":\"Melhores pr\u00e1ticas para o desenvolvimento de uma aplica\u00e7\u00e3o Elipse E3.\",\"isPartOf\":{\"@id\":\"https:\/\/kb.elipse.com.br\/#website\"},\"datePublished\":\"2022-07-07T16:53:24+00:00\",\"dateModified\":\"2022-12-22T12:48:42+00:00\",\"description\":\"O objetivo deste artigo \u00e9 apresentar um roteiro que estabelece e resume as melhores pr\u00e1ticas para desenvolvimento de uma aplica\u00e7\u00e3o Elipse E3.\",\"breadcrumb\":{\"@id\":\"https:\/\/kb.elipse.com.br\/melhores-praticas-para-o-desenvolvimento-de-uma-aplicacao-elipse-e3\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kb.elipse.com.br\/melhores-praticas-para-o-desenvolvimento-de-uma-aplicacao-elipse-e3\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kb.elipse.com.br\/melhores-praticas-para-o-desenvolvimento-de-uma-aplicacao-elipse-e3\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"In\u00edcio\",\"item\":\"https:\/\/kb.elipse.com.br\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Melhores pr\u00e1ticas para o desenvolvimento de uma aplica\u00e7\u00e3o Elipse E3.\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kb.elipse.com.br\/#website\",\"url\":\"https:\/\/kb.elipse.com.br\/\",\"name\":\"Elipse Knowledgebase\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/kb.elipse.com.br\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kb.elipse.com.br\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kb.elipse.com.br\/#organization\",\"name\":\"Elipse Software\",\"url\":\"https:\/\/kb.elipse.com.br\/\",\"sameAs\":[\"http:\/\/www.facebook.com\/elipsesoftware\"],\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/kb.elipse.com.br\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kb.elipse.com.br\/wp-content\/uploads\/2019\/05\/schererelipse-com-br\/logoElipse.png\",\"contentUrl\":\"https:\/\/kb.elipse.com.br\/wp-content\/uploads\/2019\/05\/schererelipse-com-br\/logoElipse.png\",\"width\":161,\"height\":58,\"caption\":\"Elipse Software\"},\"image\":{\"@id\":\"https:\/\/kb.elipse.com.br\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/kb.elipse.com.br\/#\/schema\/person\/be597eff34b5f24af940a55332870778\",\"name\":\"D\u00e9lio Damin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/kb.elipse.com.br\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/fdf251d36430f8dd22144c3f1bc53376?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/fdf251d36430f8dd22144c3f1bc53376?s=96&d=mm&r=g\",\"caption\":\"D\u00e9lio Damin\"},\"url\":\"https:\/\/kb.elipse.com.br\/en\/author\/delio\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Melhores pr\u00e1ticas para o desenvolvimento de uma aplica\u00e7\u00e3o Elipse E3.","description":"O objetivo deste artigo \u00e9 apresentar um roteiro que estabelece e resume as melhores pr\u00e1ticas para desenvolvimento de uma aplica\u00e7\u00e3o Elipse E3.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kb.elipse.com.br\/melhores-praticas-para-o-desenvolvimento-de-uma-aplicacao-elipse-e3\/","og_locale":"en_US","og_type":"article","og_title":"Melhores pr\u00e1ticas para o desenvolvimento de uma aplica\u00e7\u00e3o Elipse E3.","og_description":"O objetivo deste artigo \u00e9 apresentar um roteiro que estabelece e resume as melhores pr\u00e1ticas para desenvolvimento de uma aplica\u00e7\u00e3o Elipse E3.","og_url":"https:\/\/kb.elipse.com.br\/melhores-praticas-para-o-desenvolvimento-de-uma-aplicacao-elipse-e3\/","og_site_name":"Elipse Knowledgebase","article_publisher":"http:\/\/www.facebook.com\/elipsesoftware","article_published_time":"2022-07-07T16:53:24+00:00","article_modified_time":"2022-12-22T12:48:42+00:00","author":"D\u00e9lio Damin","twitter_card":"summary_large_image","twitter_misc":{"Written by":"D\u00e9lio Damin","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kb.elipse.com.br\/melhores-praticas-para-o-desenvolvimento-de-uma-aplicacao-elipse-e3\/#article","isPartOf":{"@id":"https:\/\/kb.elipse.com.br\/melhores-praticas-para-o-desenvolvimento-de-uma-aplicacao-elipse-e3\/"},"author":{"name":"D\u00e9lio Damin","@id":"https:\/\/kb.elipse.com.br\/#\/schema\/person\/be597eff34b5f24af940a55332870778"},"headline":"Melhores pr\u00e1ticas para o desenvolvimento de aplica\u00e7\u00f5es E3.","datePublished":"2022-07-07T16:53:24+00:00","dateModified":"2022-12-22T12:48:42+00:00","mainEntityOfPage":{"@id":"https:\/\/kb.elipse.com.br\/melhores-praticas-para-o-desenvolvimento-de-uma-aplicacao-elipse-e3\/"},"wordCount":2382,"commentCount":0,"publisher":{"@id":"https:\/\/kb.elipse.com.br\/#organization"},"articleSection":["Elipse E3"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kb.elipse.com.br\/melhores-praticas-para-o-desenvolvimento-de-uma-aplicacao-elipse-e3\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kb.elipse.com.br\/melhores-praticas-para-o-desenvolvimento-de-uma-aplicacao-elipse-e3\/","url":"https:\/\/kb.elipse.com.br\/melhores-praticas-para-o-desenvolvimento-de-uma-aplicacao-elipse-e3\/","name":"Melhores pr\u00e1ticas para o desenvolvimento de uma aplica\u00e7\u00e3o Elipse E3.","isPartOf":{"@id":"https:\/\/kb.elipse.com.br\/#website"},"datePublished":"2022-07-07T16:53:24+00:00","dateModified":"2022-12-22T12:48:42+00:00","description":"O objetivo deste artigo \u00e9 apresentar um roteiro que estabelece e resume as melhores pr\u00e1ticas para desenvolvimento de uma aplica\u00e7\u00e3o Elipse E3.","breadcrumb":{"@id":"https:\/\/kb.elipse.com.br\/melhores-praticas-para-o-desenvolvimento-de-uma-aplicacao-elipse-e3\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kb.elipse.com.br\/melhores-praticas-para-o-desenvolvimento-de-uma-aplicacao-elipse-e3\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/kb.elipse.com.br\/melhores-praticas-para-o-desenvolvimento-de-uma-aplicacao-elipse-e3\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"In\u00edcio","item":"https:\/\/kb.elipse.com.br\/en\/"},{"@type":"ListItem","position":2,"name":"Melhores pr\u00e1ticas para o desenvolvimento de uma aplica\u00e7\u00e3o Elipse E3."}]},{"@type":"WebSite","@id":"https:\/\/kb.elipse.com.br\/#website","url":"https:\/\/kb.elipse.com.br\/","name":"Elipse Knowledgebase","description":"","publisher":{"@id":"https:\/\/kb.elipse.com.br\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kb.elipse.com.br\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/kb.elipse.com.br\/#organization","name":"Elipse Software","url":"https:\/\/kb.elipse.com.br\/","sameAs":["http:\/\/www.facebook.com\/elipsesoftware"],"logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/kb.elipse.com.br\/#\/schema\/logo\/image\/","url":"https:\/\/kb.elipse.com.br\/wp-content\/uploads\/2019\/05\/schererelipse-com-br\/logoElipse.png","contentUrl":"https:\/\/kb.elipse.com.br\/wp-content\/uploads\/2019\/05\/schererelipse-com-br\/logoElipse.png","width":161,"height":58,"caption":"Elipse Software"},"image":{"@id":"https:\/\/kb.elipse.com.br\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/kb.elipse.com.br\/#\/schema\/person\/be597eff34b5f24af940a55332870778","name":"D\u00e9lio Damin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/kb.elipse.com.br\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/fdf251d36430f8dd22144c3f1bc53376?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/fdf251d36430f8dd22144c3f1bc53376?s=96&d=mm&r=g","caption":"D\u00e9lio Damin"},"url":"https:\/\/kb.elipse.com.br\/en\/author\/delio\/"}]}},"_links":{"self":[{"href":"https:\/\/kb.elipse.com.br\/en\/wp-json\/wp\/v2\/posts\/12918"}],"collection":[{"href":"https:\/\/kb.elipse.com.br\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kb.elipse.com.br\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kb.elipse.com.br\/en\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/kb.elipse.com.br\/en\/wp-json\/wp\/v2\/comments?post=12918"}],"version-history":[{"count":41,"href":"https:\/\/kb.elipse.com.br\/en\/wp-json\/wp\/v2\/posts\/12918\/revisions"}],"predecessor-version":[{"id":14059,"href":"https:\/\/kb.elipse.com.br\/en\/wp-json\/wp\/v2\/posts\/12918\/revisions\/14059"}],"wp:attachment":[{"href":"https:\/\/kb.elipse.com.br\/en\/wp-json\/wp\/v2\/media?parent=12918"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kb.elipse.com.br\/en\/wp-json\/wp\/v2\/categories?post=12918"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kb.elipse.com.br\/en\/wp-json\/wp\/v2\/tags?post=12918"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}