<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Lucas Guimarães</title>
    <description>The latest articles on DEV Community by Lucas Guimarães (@lucas_guimaraes).</description>
    <link>https://dev.to/lucas_guimaraes</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3875449%2Fd45f3256-5a0b-43bd-8de8-68a3c1872029.jpg</url>
      <title>DEV Community: Lucas Guimarães</title>
      <link>https://dev.to/lucas_guimaraes</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/lucas_guimaraes"/>
    <language>en</language>
    <item>
      <title>Modernizando o Classic ASP: Um guia prático para hospedar o AxonASP usando o IIS</title>
      <dc:creator>Lucas Guimarães</dc:creator>
      <pubDate>Fri, 03 Jul 2026 11:00:00 +0000</pubDate>
      <link>https://dev.to/lucas_guimaraes/modernizando-o-classic-asp-um-guia-pratico-para-hospedar-o-axonasp-usando-o-iis-2f9f</link>
      <guid>https://dev.to/lucas_guimaraes/modernizando-o-classic-asp-um-guia-pratico-para-hospedar-o-axonasp-usando-o-iis-2f9f</guid>
      <description>&lt;p&gt;Sejamos honestos: quando a maioria dos desenvolvedores ouve falar em "Classic ASP", logo imaginam servidores Windows legados, registros complexos de objetos COM e uma arquitetura profundamente atrelada ao &lt;code&gt;asp.dll&lt;/code&gt; e ao processo de trabalho do IIS (&lt;code&gt;w3wp.exe&lt;/code&gt;).&lt;/p&gt;

&lt;p&gt;Mas o código em si — muitas vezes milhares de linhas de lógica de negócios crítica escritas em VBScript ou JavaScript no lado do servidor — ainda cumpre exatamente o seu papel. O problema não é necessariamente a linguagem; é a arquitetura de hospedagem monolítica e envelhecida.&lt;/p&gt;

&lt;p&gt;É aqui que o &lt;strong&gt;AxonASP&lt;/strong&gt; muda o jogo. Construído em Go, ele desvincula completamente o ASP do sistema operacional Windows, executando o código nativamente e reduzindo o uso de memória em modo ocioso para cerca de 18MB.&lt;/p&gt;

&lt;p&gt;No entanto, mudar para esse motor exige uma virada de chave fundamental na forma como você pensa sobre a hospedagem das suas aplicações.&lt;/p&gt;

&lt;h3&gt;
  
  
  A mudança de paradigma: Arquitetura centrada na aplicação
&lt;/h3&gt;

&lt;p&gt;Em relação à arquitetura de hospedagem: o AxonASP não é um substituto direto para o IIS; ele é um ambiente de execução (&lt;em&gt;runtime&lt;/em&gt;) de Classic ASP. Ele opera em uma arquitetura moderna e centrada na aplicação — estruturalmente idêntica à forma como aplicações modernas em .NET Core ou Docker são implantadas.&lt;/p&gt;

&lt;p&gt;Isso significa que todas as suas configurações existentes do IIS continuam totalmente válidas. Para orquestrar o AxonASP adequadamente dentro do IIS, você deve usar o módulo &lt;code&gt;HttpPlatformHandler&lt;/code&gt; v1.2+. Você pode ler mais sobre essa configuração no manual oficial aqui:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://g3pix.com.br/axonasp/manual/?page=md%2Fruntime%2Fiis-support.md" rel="noopener noreferrer"&gt;Manual do AxonASP - Suporte ao IIS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://g3pix.com.br/axonasp/manual/?page=md%2Fruntime%2Fmigrating-from-iis-classic-asp.md" rel="noopener noreferrer"&gt;Manual do AxonASP - Migrando do IIS &amp;amp; Classic ASP para o AxonASP&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Por exemplo, no arquivo &lt;code&gt;axonasp.toml&lt;/code&gt;, você pode definir o diretório raiz para coincidir com o diretório padrão do seu site no IIS. Isso permite que você sirva seus arquivos estáticos (CSS, JS, imagens) nativamente pelo IIS, enquanto o AxonASP cuida da lógica da aplicação e das requisições dinâmicas &lt;code&gt;.asp&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;A ideia principal é universalizar e implementar práticas modernas de administração para o ASP, permitindo que ele rode em qualquer plataforma ou servidor. Dessa forma, se um site sair do controle ou esgotar a memória, ele não derrubará as outras aplicações nem o servidor principal, porque cada aplicação roda sua própria instância isolada e distinta do &lt;code&gt;axonasp-http.exe&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Essa estrutura também permite que você rode o ASP dentro de containers Docker, reduzindo significativamente os custos associados a servidores Windows. Pode parecer um pouco complexo no início, mas com certeza vale a pena migrar para essa abordagem — ela é mais segura, altamente distribuível, mais barata e, no fim das contas, mais fácil de gerenciar.&lt;/p&gt;




&lt;h3&gt;
  
  
  Passo a passo: Implementando o AxonASP no IIS
&lt;/h3&gt;

&lt;p&gt;Como o IIS gerencia o FastCGI via &lt;em&gt;named pipes&lt;/em&gt; do Windows (que são incompatíveis com os protocolos FastCGI padrão baseados em TCP), não podemos simplesmente plugar o AxonASP como um módulo legado. Em vez disso, o IIS agirá como um proxy reverso, ficando na borda da sua rede (Portas 80/443) e encaminhando as requisições dinâmicas para instâncias isoladas do AxonASP que rodam em portas locais de loopback (ex: &lt;code&gt;8801&lt;/code&gt;, &lt;code&gt;8802&lt;/code&gt;).&lt;/p&gt;

&lt;p&gt;Veja como configurar:&lt;/p&gt;

&lt;h4&gt;
  
  
  1. Pré-requisitos
&lt;/h4&gt;

&lt;p&gt;Você precisará do &lt;strong&gt;IIS HttpPlatformHandler v1.2+&lt;/strong&gt;. Este é o exato mesmo módulo que a Microsoft recomenda para gerenciar aplicações Python ou Java atrás do IIS. Ele cuida do gerenciamento de processos, atribui portas dinamicamente e garante que o executável do AxonASP continue rodando.&lt;/p&gt;

&lt;h4&gt;
  
  
  2. Diretórios e permissões
&lt;/h4&gt;

&lt;p&gt;Digamos que o seu site esteja localizado em &lt;code&gt;C:\Sites\App1\&lt;/code&gt;.&lt;br&gt;
Dentro desta pasta, você deve ter:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;O binário &lt;code&gt;axonasp-http.exe&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;O arquivo de configuração &lt;code&gt;axonasp.toml&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;O script de inicialização &lt;code&gt;iis-http.cmd&lt;/code&gt; (fornecido com o AxonASP).&lt;/li&gt;
&lt;li&gt;A sua pasta &lt;code&gt;www&lt;/code&gt; contendo os arquivos &lt;code&gt;.asp&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Passo crucial:&lt;/strong&gt; A identidade de usuário do IIS (geralmente &lt;code&gt;IIS_IUSRS&lt;/code&gt; ou a &lt;code&gt;ApplicationPoolIdentity&lt;/code&gt; específica) deve ter permissões de leitura e escrita nesta pasta. O AxonASP precisa gravar em seu diretório temporário (&lt;code&gt;temp&lt;/code&gt;) e executar os binários. Se faltarem permissões, o IIS falhará silenciosamente e retornará um erro &lt;em&gt;500 Internal Server Error&lt;/em&gt;.&lt;/p&gt;
&lt;h4&gt;
  
  
  3. A configuração do &lt;code&gt;web.config&lt;/code&gt;
&lt;/h4&gt;

&lt;p&gt;Insira um arquivo &lt;code&gt;web.config&lt;/code&gt; na raiz do seu site no IIS. Isso instrui o IIS a interromper a tentativa de processar o código nativamente e, em vez disso, passá-lo para o processo do AxonASP.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;configuration&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;system.webServer&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;handlers&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;add&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"httpPlatformHandler"&lt;/span&gt; &lt;span class="na"&gt;path=&lt;/span&gt;&lt;span class="s"&gt;"*"&lt;/span&gt; &lt;span class="na"&gt;verb=&lt;/span&gt;&lt;span class="s"&gt;"*"&lt;/span&gt; &lt;span class="na"&gt;modules=&lt;/span&gt;&lt;span class="s"&gt;"httpPlatformHandler"&lt;/span&gt; &lt;span class="na"&gt;resourceType=&lt;/span&gt;&lt;span class="s"&gt;"Unspecified"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/handlers&amp;gt;&lt;/span&gt;

        &lt;span class="nt"&gt;&amp;lt;httpPlatform&lt;/span&gt; &lt;span class="na"&gt;processPath=&lt;/span&gt;&lt;span class="s"&gt;"C:\Sites\App1\iis-http.cmd"&lt;/span&gt;
                      &lt;span class="na"&gt;arguments=&lt;/span&gt;&lt;span class="s"&gt;"--server.server_port %HTTP_PLATFORM_PORT%"&lt;/span&gt;
                      &lt;span class="na"&gt;stdoutLogEnabled=&lt;/span&gt;&lt;span class="s"&gt;"true"&lt;/span&gt;
                      &lt;span class="na"&gt;stdoutLogFile=&lt;/span&gt;&lt;span class="s"&gt;"C:\Sites\App1\temp\axonasp.log"&lt;/span&gt;
                      &lt;span class="na"&gt;startupTimeLimit=&lt;/span&gt;&lt;span class="s"&gt;"5"&lt;/span&gt;
                      &lt;span class="na"&gt;processesPerApplication=&lt;/span&gt;&lt;span class="s"&gt;"1"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;environmentVariables&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;environmentVariable&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"SERVER_PORT"&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"%HTTP_PLATFORM_PORT%"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;/environmentVariables&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/httpPlatform&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/system.webServer&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/configuration&amp;gt;&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Entendendo a mecânica da configuração
&lt;/h4&gt;

&lt;p&gt;Existem dois detalhes críticos no XML acima que ditam como a sua aplicação vai se comportar:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;%HTTP_PLATFORM_PORT%&lt;/code&gt;&lt;/strong&gt;: Você não precisa atribuir manualmente a porta &lt;code&gt;8801&lt;/code&gt; para o Site A e &lt;code&gt;8802&lt;/code&gt; para o Site B. O IIS gera uma porta disponível de forma dinâmica, injeta-a na variável de ambiente, inicializa o processo do AxonASP e direciona o tráfego para ela automaticamente.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;processesPerApplication="1"&lt;/code&gt;&lt;/strong&gt;: Não altere este valor para um número maior. O Classic ASP depende muito de estado em memória (variáveis de &lt;code&gt;Session&lt;/code&gt; e o ciclo de vida do &lt;code&gt;global.asa&lt;/code&gt;). Se o IIS gerar múltiplos processos de trabalho (&lt;em&gt;worker processes&lt;/em&gt;) para um único site, as sessões dos usuários ficarão fragmentadas entre eles. O AxonASP gerencia a concorrência internamente por meio de goroutines; ele precisa de apenas um processo do sistema operacional por site.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Por que esta arquitetura é o futuro do ASP
&lt;/h3&gt;

&lt;p&gt;Ao desacoplar o motor de execução do sistema operacional, você não fica mais preso à infraestrutura legada do Windows.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;A era pós-COM:&lt;/strong&gt; O AxonASP intercepta chamadas de &lt;code&gt;Server.CreateObject("ProgID")&lt;/code&gt; nativamente. Em vez de depender do frágil Registro do Windows para carregar uma DLL antiga, o AxonASP mapeia essa chamada para um código GoLang moderno de alta velocidade pré-compilado dentro da VM.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Infraestrutura como código:&lt;/strong&gt; Suas regras de roteamento, configurações e variáveis de ambiente agora são arquivos de texto simples (&lt;code&gt;.toml&lt;/code&gt; e &lt;code&gt;.config&lt;/code&gt;) que acompanham o repositório da sua aplicação.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;O horizonte com Docker:&lt;/strong&gt; Depois de migrar com sucesso um site para este modelo de proxy no IIS, migrar esse mesmo site para um container Docker em Linux atrás do Nginx ou Caddy exigirá praticamente zero alterações na lógica da aplicação.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;O Classic ASP pode ter décadas de idade, mas com um motor construído em Go e uma arquitetura que reflete os microsserviços modernos, não há razão para que ele não possa rodar na vanguarda da infraestrutura web atual.&lt;/p&gt;

</description>
      <category>braziliandevs</category>
      <category>iis</category>
      <category>asp</category>
      <category>microsoft</category>
    </item>
    <item>
      <title>🛑 Why You Shouldn't Migrate from Classic ASP to ASP.NET (If You Have AxonASP)</title>
      <dc:creator>Lucas Guimarães</dc:creator>
      <pubDate>Thu, 02 Jul 2026 14:31:49 +0000</pubDate>
      <link>https://dev.to/lucas_guimaraes/why-you-shouldnt-migrate-from-classic-asp-to-aspnet-if-you-have-axonasp-1i5i</link>
      <guid>https://dev.to/lucas_guimaraes/why-you-shouldnt-migrate-from-classic-asp-to-aspnet-if-you-have-axonasp-1i5i</guid>
      <description>&lt;p&gt;For over two decades, the standard advice for any team maintaining a Classic ASP application has been identical: &lt;em&gt;"You need to migrate to ASP.NET."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The arguments are always the same. Classic ASP is dated, VBScript is a relic, and modern development requires modern frameworks. For a long time, rewriting your entire application in ASP.NET seemed like the only logical path forward, despite the astronomical costs and the high risk of breaking core business logic.&lt;/p&gt;

&lt;p&gt;But what if the industry's default advice is no longer the best option?&lt;/p&gt;

&lt;p&gt;Let’s be clear: ASP.NET is an incredibly powerful, feature-rich ecosystem. We aren't here to bash it. But when it comes to &lt;strong&gt;modernizing existing legacy applications&lt;/strong&gt;, forcing a migration might actually do more harm than good.&lt;/p&gt;

&lt;p&gt;Here is why staying with Classic ASP—powered by &lt;strong&gt;AxonASP&lt;/strong&gt;—is not only viable but often the smarter engineering choice for the modern web.&lt;/p&gt;

&lt;h2&gt;
  
  
  🧠 The Memory Tax of ASP.NET
&lt;/h2&gt;

&lt;p&gt;When you migrate a lightweight, procedural Classic ASP application to the ASP.NET ecosystem, you are fundamentally changing the architectural footprint of your software.&lt;/p&gt;

&lt;p&gt;ASP.NET is robust, but that robustness comes with a significant overhead. The framework is notorious for its intensive memory usage, spinning up complex application pools, managing heavy object lifecycles, and relying on a massive runtime environment. If your application currently serves dynamic pages with minimal server strain, moving to ASP.NET can drastically inflate your infrastructure costs and hardware requirements. You end up paying for a massive enterprise toolset when all you needed was to render a page and query a database.&lt;/p&gt;

&lt;p&gt;Because AxonASP is built under the hood as a cross-platform runtime server written in &lt;strong&gt;GoLang&lt;/strong&gt;, it turns this dynamic on its head. You get the blistering speed, concurrency, and minimal memory footprint of Go, while executing your existing legacy code. It sips memory where heavy frameworks gulp it.&lt;/p&gt;

&lt;h2&gt;
  
  
  📦 "But What About Modern Libraries?"
&lt;/h2&gt;

&lt;p&gt;The strongest argument against Classic ASP has always been the ecosystem. Developers migrate because they want access to modern cryptographic functions, API integrations, and JSON handling, which native VBScript struggles to provide.&lt;/p&gt;

&lt;p&gt;This is where the paradigm shifts. AxonASP bridges this exact gap by exposing modern libraries directly to the legacy environment. You don't need a heavy framework to parse modern data structures or communicate with RESTful microservices. The runtime injects the capabilities you expect from a 2026 tech stack right into your existing pages. You retain the simplicity of your original architecture without being cut off from modern web standards.&lt;/p&gt;

&lt;h2&gt;
  
  
  🤝 VBScript + JavaScript: The Ultimate Polyglot Harmony
&lt;/h2&gt;

&lt;p&gt;Perhaps the most daunting part of any migration is the human element. Maybe nobody wants to write or maintain thousands of lines of VBScript anymore, and finding developers who can is getting harder every day.&lt;/p&gt;

&lt;p&gt;But what if you didn't have to choose between rewriting it all or forcing new devs to learn VBScript?&lt;/p&gt;

&lt;p&gt;AxonASP allows VBScript and JavaScript to run simultaneously &lt;strong&gt;on the exact same page&lt;/strong&gt;. This is the secret weapon for modernizing without migrating:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Keep the Foundation:&lt;/strong&gt; Leave your complex, battle-tested VBScript business rules and database queries exactly as they are. They work. Don't touch them.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Write the Future in JS:&lt;/strong&gt; When a new requirement comes in, your new hires can simply open a &lt;code&gt;&amp;lt;script runat="server" language="javascript"&amp;gt;&lt;/code&gt; tag and write the new features using the modern JavaScript syntax they already know.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;By combining VBScript and JavaScript seamlessly, you instantly modernize the developer experience. Your team can utilize arrays, modern loops, and JS logic while interacting directly with the legacy state.&lt;/p&gt;

&lt;h2&gt;
  
  
  🚀 Stop Migrating, Start Evolving
&lt;/h2&gt;

&lt;p&gt;Rewriting a system to ASP.NET just to escape VBScript is like knocking down a structurally sound house because you don't like the wallpaper.&lt;/p&gt;

&lt;p&gt;By leveraging a lightweight GoLang-powered runtime, bringing in modern library support, and mixing JS with VBScript, AxonASP proves that Classic ASP still belongs in the modern world. You bypass the massive memory overhead of heavy frameworks, save thousands of hours of development time, and eliminate the risk of a "big bang" rewrite.&lt;/p&gt;

&lt;p&gt;Sometimes, the best migration strategy is realizing you don't need to migrate at all.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>legacy</category>
      <category>asp</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Rodando ASP Classic no Linux, macOS, BSD e Windows em 2026</title>
      <dc:creator>Lucas Guimarães</dc:creator>
      <pubDate>Thu, 02 Jul 2026 11:00:00 +0000</pubDate>
      <link>https://dev.to/lucas_guimaraes/rodando-asp-classic-no-linux-macos-bsd-e-windows-em-2026-11dc</link>
      <guid>https://dev.to/lucas_guimaraes/rodando-asp-classic-no-linux-macos-bsd-e-windows-em-2026-11dc</guid>
      <description>&lt;p&gt;Se você já se pegou pesquisando como &lt;strong&gt;rodar ASP no Linux&lt;/strong&gt; ou tentando descobrir como colocar no Docker uma aplicação antiga dependente do IIS, você já conhece o tamanho do desafio. Por anos, o Classic ASP e o VBScript ficaram totalmente presos ao ecossistema Windows. Tudo bem que temos o ASP.NET, mas mais de centenas de megabytes de memória e de executáveis para rodar uma simples página? Não, obrigado. &lt;/p&gt;

&lt;p&gt;Seja para a manutenção de um sistema corporativo legado ou para buscar um motor de scripts leve no lado do servidor para um novo projeto, migrar para fora do Windows Server historicamente significava uma reescrita completa do código.&lt;/p&gt;

&lt;p&gt;É aí que entra o &lt;strong&gt;AxonASP&lt;/strong&gt;, um runtime de código aberto e alta performance escrito em GoLang que permite &lt;strong&gt;rodar o ASP Classic nativamente no Linux, macOS, BSD e Windows&lt;/strong&gt; e o melhor, com suporte a VBScript mas também a JavaScript.&lt;/p&gt;

&lt;p&gt;Mas o AxonASP não é apenas um emulador para códigos antigos — ele é um motor modernizado e projetado para o futuro do desenvolvimento web. Abaixo, mostramos uma visão técnica de como ele funciona, o que ele suporta e por que ele pode ser a ferramenta certa para a sua próxima mudança arquitetônica.&lt;/p&gt;

&lt;h2&gt;
  
  
  Uma arquitetura moderna para uma stack clássica
&lt;/h2&gt;

&lt;p&gt;Em sua essência, o AxonASP foi construído com foco em velocidade, baixo consumo de memória e infraestrutura moderna. Ele conta com uma arquitetura de Máquina Virtual com alocação zero (&lt;em&gt;zero-allocation&lt;/em&gt;) que processa requisições de forma incrivelmente rápida.&lt;/p&gt;

&lt;p&gt;Quando você decide rodar ASP Classic no Linux usando o AxonASP, você não está executando uma camada de compatibilidade pesada. O motor compila o VBScript por meio de um compilador de passagem única (&lt;em&gt;single-pass&lt;/em&gt;), emitindo bytecode diretamente para uma VM baseada em pilha. Isso resulta em velocidades extremas de processamento com um consumo mínimo de memória. Uma configuração padrão consegue lidar com 2000 requisições por minuto consumindo apenas cerca de 100MB de RAM. Uma API pura em VBScript rodando no AxonASP consome apenas 17MB em modo ocioso (em comparação com os 30MB do Node.js).&lt;/p&gt;

&lt;h3&gt;
  
  
  Flexibilidade de implantação: Do Docker ao WASM
&lt;/h3&gt;

&lt;p&gt;O DevOps moderno exige flexibilidade. O AxonASP foi desenvolvido para se encaixar em pipelines de CI/CD atuais sem esforço, oferecendo múltiplas estratégias de implantação prontas para uso:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Servidor Proxy Autônomo:&lt;/strong&gt; Rode diretamente com seu servidor HTTP embutido. Trazemos o conceito de aplicações para seu desenvolvimento, você não depende mais do servidor. Faça o envio do pacote do AxonASP, redirecione seu servidor via proxy para o endereço local e tudo funciona como deve.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;FastCGI:&lt;/strong&gt; Integre perfeitamente com Nginx ou Apache (&lt;code&gt;axonasp-fastcgi&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Docker:&lt;/strong&gt; "Conteinerize" suas aplicações Classic ASP nativamente para Kubernetes ou Docker Swarm.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Interface de Linha de Comando (CLI):&lt;/strong&gt; Execute scripts ASP diretamente do seu terminal. E quer um detalhe? Você pode programar e até executar scripts Javascript podendo administrar seu sistema sem grandes complicações. Faça a manutenção do Linux ou do Windows usando a suíte do AxonASP.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;WebAssembly (WASM):&lt;/strong&gt; Você pode até compilar e rodar VBScript de alta performance diretamente no navegador.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Além do VBScript: Suporte de primeira classe para JavaScript (ES6+)
&lt;/h2&gt;

&lt;p&gt;Um dos recursos mais poderosos do AxonASP é o seu motor JavaScript. Ao contrário dos ambientes ASP tradicionais que tinham um suporte limitado ao JScript, o AxonASP traz suporte totalmente compatível com o ECMAScript 6+.&lt;/p&gt;

&lt;p&gt;E o melhor de tudo: &lt;strong&gt;você pode misturar VBScript e JavaScript na mesmíssima aplicação.&lt;/strong&gt; Isso muda completamente o jogo na hora de modernizar sistemas. Em vez de uma reescrita do tipo "arrancar e substituir" — que é cara e de alto risco —, você pode manter sua lógica de negócios principal em VBScript rodando perfeitamente enquanto escreve novos módulos, integrações de API e utilitários em JavaScript moderno. Você pode organizar seu código JS facilmente usando a sintaxe de módulos CommonJS/ES6 diretamente ao lado dos seus arquivos &lt;code&gt;.asp&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Como o motor JavaScript utiliza um modelo de execução direta baseado em AST (em vez de forçar um paradigma baseado em Promises para cada operação simples), ele é extremamente eficiente em termos de memória. Uma API pura em JS rodando no AxonASP consome cerca de ~18MB de memória em modo ocioso.&lt;/p&gt;

&lt;h2&gt;
  
  
  Feito para a era da IA: O servidor MCP
&lt;/h2&gt;

&lt;p&gt;Desenvolver em 2026 exige ferramentas modernas. O AxonASP já vem integrado com um &lt;strong&gt;servidor MCP (Model Context Protocol)&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Isso permite que agentes de programação baseados em IA e IDEs alimentadas por LLMs (como Cursor ou Claude) se conectem diretamente ao seu ambiente de execução. A IA consegue analisar o ambiente do seu servidor, entender as bibliotecas nativas &lt;code&gt;G3&lt;/code&gt; disponíveis (como &lt;code&gt;G3JSON&lt;/code&gt;, &lt;code&gt;G3DB&lt;/code&gt; e &lt;code&gt;G3CRYPTO&lt;/code&gt;) e criar ou depurar páginas ASP de forma autônoma.&lt;/p&gt;

&lt;p&gt;Ele também traz uma suíte de testes completa (&lt;strong&gt;testsuite&lt;/strong&gt;) para garantir que sua base de código permaneça estável à medida que você avança.&lt;/p&gt;

&lt;h2&gt;
  
  
  Não apenas para legados: Construindo o futuro com o AxonLive
&lt;/h2&gt;

&lt;p&gt;Embora o AxonASP seja a solução perfeita para rodar ASP Classic no Linux ou Mac, ele também serve como um framework para a construção de novas aplicações modernas.&lt;/p&gt;

&lt;p&gt;O motor inclui o &lt;strong&gt;AxonLive&lt;/strong&gt;, um framework de componentes reativos de alta performance integrado diretamente na VM. Se você já tem familiaridade com ferramentas como HTMX, Livewire ou Blazor, o AxonLive oferece um paradigma semelhante, mas nativo no ASP.&lt;/p&gt;

&lt;p&gt;Com o AxonLive, as interações da interface do usuário (cliques, formulários, temporizadores) são enviadas ao servidor de forma assíncrona. Toda a lógica de negócios e validação acontecem de forma segura no backend, e o servidor responde com patches JSON direcionados que atualizam o DOM de forma limpa — sem exigir recarregamentos completos da página. O cliente age simplesmente como um terminal leve de renderização, entregando interatividade de Single Page Application (SPA) com a performance bruta do servidor direto no metal.&lt;/p&gt;

&lt;h2&gt;
  
  
  Como começar
&lt;/h2&gt;

&lt;p&gt;Você pode fazer o download no repositório dos releases, que já conta com as versões empacotadas para sistemas baseados em Debian, RedHat, Alpine e Windows (versão ZIP e com instalador), essa é a forma mais fácil e direta.&lt;/p&gt;

&lt;p&gt;Agora por ser escrito em Go, se você quiser compilar a partir do código-fonte (requer GoLang 1.26+), basta utilizar os scripts de compilação inclusos:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Linux / macOS:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;./build.sh &lt;span class="nt"&gt;--platform&lt;/span&gt; &lt;span class="s2"&gt;"linux"&lt;/span&gt; &lt;span class="nt"&gt;--architecture&lt;/span&gt; &lt;span class="s2"&gt;"amd64"&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Windows:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;\build.ps1&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;O AxonASP também vem acompanhado de mais de 60 bibliotecas nativas (manipulação de JSON, conectores de banco de dados para PostgreSQL/MySQL/Oracle, SMTP, processamento de imagem e pacotes de compressão), o que significa que você pode construir aplicações corporativas robustas com zero overhead e sem depender de DLLs de terceiros. E distribuir é simples, apenas faça o deploy do executável, da pasta de configuração e do diretório ./www/. Pronto.&lt;/p&gt;

&lt;h3&gt;
  
  
  Junte-se à comunidade Open Source
&lt;/h3&gt;

&lt;p&gt;O AxonASP é orgulhosamente de código aberto. Se você é um desenvolvedor querendo libertar suas aplicações legadas do IIS, ou se quer explorar um motor server-side altamente eficiente que une a simplicidade do ASP com recursos modernos da web, conheça o projeto.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Repositório no GitHub:&lt;/strong&gt; &lt;a href="https://github.com/guimaraeslucas/axonasp" rel="noopener noreferrer"&gt;https://github.com/guimaraeslucas/axonasp&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Manual Oficial &amp;amp; Documentação:&lt;/strong&gt; &lt;a href="https://g3pix.com.br/axonasp/manual/" rel="noopener noreferrer"&gt;https://g3pix.com.br/axonasp/manual/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Playground &amp;amp; Exemplos Online:&lt;/strong&gt; Explore páginas rodando nativamente no AxonASP 2.2 e teste nosso Playground em WASM em &lt;a href="https://g3pix.com.br/axonasp/wasm/" rel="noopener noreferrer"&gt;https://g3pix.com.br/axonasp/wasm/&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Não deixe que a infraestrutura legada segure o seu código. Conteinerize, rode no Linux, misture com JavaScript moderno e comece a construir.&lt;/p&gt;

</description>
      <category>braziliandevs</category>
      <category>webdev</category>
      <category>linux</category>
      <category>asp</category>
    </item>
    <item>
      <title>Como rodar Classic ASP no Linux: Um guia passo a passo para instalar o AxonASP no Ubuntu ou Debian</title>
      <dc:creator>Lucas Guimarães</dc:creator>
      <pubDate>Wed, 01 Jul 2026 11:00:00 +0000</pubDate>
      <link>https://dev.to/lucas_guimaraes/como-rodar-classic-asp-no-linux-um-guia-passo-a-passo-para-instalar-o-axonasp-no-ubuntu-ou-debian-2dna</link>
      <guid>https://dev.to/lucas_guimaraes/como-rodar-classic-asp-no-linux-um-guia-passo-a-passo-para-instalar-o-axonasp-no-ubuntu-ou-debian-2dna</guid>
      <description>&lt;p&gt;&lt;strong&gt;Introdução&lt;/strong&gt;&lt;br&gt;
Hospedar aplicações Classic ASP (Active Server Pages) tradicionalmente significava estar acorrentado ao Windows Server e ao IIS. Para desenvolvedores que dão manutenção em aplicações legadas ou que buscam migrar sistemas VBScript antigos para uma infraestrutura moderna e de melhor custo-benefício, encontrar uma alternativa nativa para Linux sempre foi um grande desafio. E para nós no Brasil mais ainda, frente aos altos valores de licenciamento do Windows Server.&lt;/p&gt;

&lt;p&gt;É aí que entra o &lt;strong&gt;AxonASP&lt;/strong&gt;, um ambiente de execução (&lt;em&gt;runtime&lt;/em&gt;) de código aberto e multiplataforma construído em GoLang. Ele foi projetado especificamente para hospedar aplicações Classic ASP nativamente em sistemas modernos como Linux, BSD e macOS. Em vez de depender de máquinas virtuais pesadas, emuladores ou gambiarras complexas, o AxonASP oferece um ambiente enxuto para rodar seus arquivos VBScript/JavaScript diretamente.&lt;/p&gt;

&lt;p&gt;Neste tutorial, vamos passar pelo processo de instalação do runtime AxonASP em um servidor Ubuntu ou Debian usando o pacote &lt;code&gt;.deb&lt;/code&gt; pré-compilado.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pré-requisitos&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Um servidor rodando uma distribuição Linux baseada em Ubuntu ou Debian.&lt;/li&gt;
&lt;li&gt;Acesso à linha de comando com privilégios de &lt;code&gt;sudo&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;wget&lt;/code&gt; ou &lt;code&gt;curl&lt;/code&gt; instalado para baixar o pacote.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Passo 1: Baixar o pacote de codificação&lt;/strong&gt;&lt;br&gt;
A maneira mais fácil de instalar o AxonASP em sistemas baseados em Debian é através dos pacotes &lt;code&gt;.deb&lt;/code&gt; oficiais disponibilizados no repositório do projeto no GitHub.&lt;/p&gt;

&lt;p&gt;Abra o seu terminal e use o &lt;code&gt;wget&lt;/code&gt; para baixar a versão desejada. &lt;em&gt;(Nota: A URL abaixo usa a versão 2.1.7 como exemplo. Sempre verifique o repositório para obter a versão mais recente).&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;wget https://github.com/guimaraeslucas/axonasp/releases/download/v2.2.8/axonasp_2.2.8_amd64.deb

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Passo 2: Instalar o pacote `.deb&lt;/strong&gt;&lt;code&gt;&lt;br&gt;
Assim que o download for concluído, use o comando &lt;/code&gt;dpkg` para instalar o pacote no seu sistema.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;dpkg &lt;span class="nt"&gt;-i&lt;/span&gt; axonasp_2.2.8_amd64.deb

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;Dica: Se você encontrar qualquer erro de dependência durante a instalação, basta rodar &lt;code&gt;sudo apt-get install -f&lt;/code&gt; para resolvê-los facilmente.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Passo 3: Entender a estrutura de diretórios&lt;/strong&gt;&lt;br&gt;
Após o sucesso da instalação, o runtime é descompactado de forma organizada no diretório &lt;code&gt;/opt/axonasp/&lt;/code&gt;. É útil conhecer os componentes principais incluídos nesse caminho:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;/opt/axonasp/&lt;/code&gt; - O diretório principal da instalação.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/opt/axonasp/axonasp-http&lt;/code&gt; - O binário do servidor web HTTP autônomo, perfeito para implantações rápidas, testes ou desenvolvimento.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/opt/axonasp/axonasp-fastcgi&lt;/code&gt; - O binário do servidor de aplicação FastCGI, ideal para ambientes de produção ao integrá-lo com proxies reversos como Nginx ou Apache.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Passo 4: Instalar e ativar o serviço em segundo plano&lt;/strong&gt;&lt;br&gt;
Para garantir que o runtime do AxonASP rode continuamente e inicialize de forma automática sempre que o seu servidor for reiniciado, você precisa configurá-lo como um serviço do systemd. O pacote de instalação inclui um script em bash bem prático para automatizar exatamente esse processo.&lt;/p&gt;

&lt;p&gt;Navegue até o diretório de instalação e execute o script de instalação do serviço:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; /opt/axonasp
&lt;span class="nb"&gt;sudo &lt;/span&gt;bash install-service.sh

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Em seguida, inicialize o serviço e ative-o para que ele persista após as reinicializações do sistema:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;systemctl start axonasp
&lt;span class="nb"&gt;sudo &lt;/span&gt;systemctl &lt;span class="nb"&gt;enable &lt;/span&gt;axonasp

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Passo 5: Verificar a instalação&lt;/strong&gt;&lt;br&gt;
Análise se está tudo rodando perfeitamente checando o status do serviço com o systemctl:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;systemctl status axonasp

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Você deverá ver uma saída indicando que o serviço está "active (running)" (ativo/em execução). A partir de agora, seu servidor Linux está oficialmente pronto para processar arquivos &lt;code&gt;.asp&lt;/code&gt; e executar VBScript/JavaScript nativamente!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusão&lt;/strong&gt;&lt;br&gt;
Rodar Classic ASP não significa que sua infraestrutura precisa ficar presa para sempre a sistemas operacionais antigos e que o sistema precise ser recriado do zero. Ao utilizar um runtime moderno como o AxonASP, você consegue dar uma nova vida a aplicações web antigas, aproveitando a estabilidade, a segurança e a performance dos ambientes Linux. E criar aplicações compatíveis com o ambiente moderno Web.&lt;/p&gt;

&lt;p&gt;Para configurações mais avançadas — incluindo a definição do Nginx como proxy reverso, configuração de hosts virtuais ou exploração da implementação FastCGI — confira a &lt;a href="https://g3pix.com.br/axonasp/manual/?page=md%2Fruntime%2Flinux-packages.md" rel="noopener noreferrer"&gt;documentação oficial do AxonASP&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>linux</category>
      <category>braziliandevs</category>
      <category>ubuntu</category>
      <category>asp</category>
    </item>
    <item>
      <title>Além da IA: Por que a colaboração humana é o verdadeiro motor do Open Source</title>
      <dc:creator>Lucas Guimarães</dc:creator>
      <pubDate>Wed, 01 Jul 2026 00:00:00 +0000</pubDate>
      <link>https://dev.to/lucas_guimaraes/alem-da-ia-por-que-a-colaboracao-humana-e-o-verdadeiro-motor-do-open-source-504h</link>
      <guid>https://dev.to/lucas_guimaraes/alem-da-ia-por-que-a-colaboracao-humana-e-o-verdadeiro-motor-do-open-source-504h</guid>
      <description>&lt;p&gt;A narrativa atual da tecnologia está fortemente inclinada para a automação. Com agentes de IA escrevendo &lt;em&gt;boilerplate&lt;/em&gt;, gerando componentes e até estruturando projetos inteiros, é fácil olhar para o futuro do desenvolvimento de software e assumir que o elemento humano está diminuindo.&lt;/p&gt;

&lt;p&gt;Mas se você mantém ou contribui ativamente para um projeto &lt;em&gt;open source&lt;/em&gt;, sabe que a realidade é bem diferente. A IA pode escrever código, mas não consegue validá-lo contextualmente contra décadas de &lt;em&gt;edge cases&lt;/em&gt; obscuros. Ela não sabe dizer &lt;em&gt;por que&lt;/em&gt; uma regra de negócio específica falha em produção.&lt;/p&gt;

&lt;p&gt;Mais importante ainda: a IA não constrói comunidade. A evolução de um software robusto ainda depende inteiramente de pessoas colaborando, quebrando código, reportando bugs e validando se o código realmente funciona no mundo real.&lt;/p&gt;

&lt;p&gt;Para ver isso na prática, precisamos olhar para projetos que tentam fechar lacunas geracionais gigantescas na tecnologia. Um exemplo perfeito disso é o &lt;strong&gt;&lt;a href="https://github.com/guimaraeslucas/axonasp" rel="noopener noreferrer"&gt;AxonASP&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  A Filosofia do AxonASP: Modernizando o Legado
&lt;/h3&gt;

&lt;p&gt;Por muito tempo, o ASP Clássico e o VBScript foram considerados presos a um modelo de servidor obsoleto — amarrados ao IIS e deixados para trás pelas práticas modernas de &lt;em&gt;deploy&lt;/em&gt;. O AxonASP muda esse cenário. É um &lt;em&gt;runtime open source&lt;/em&gt; e &lt;em&gt;cross-platform&lt;/em&gt; que trata o ASP Clássico como uma &lt;em&gt;Aplicação&lt;/em&gt; moderna, em vez de uma relíquia do passado. Ele traz o VBScript, o ASP e, principalmente, o suporte ao &lt;strong&gt;JavaScript Síncrono&lt;/strong&gt; para o futuro.&lt;/p&gt;

&lt;p&gt;Construir um &lt;em&gt;runtime&lt;/em&gt; que lida com código legado enquanto opera em um ecossistema moderno e multiplataforma não é algo que você consegue simplesmente pedindo para um LLM. Exige um ciclo de feedback agressivo.&lt;/p&gt;

&lt;p&gt;O AxonASP está em franca evolução e apresenta altíssima compatibilidade com o ASP Clássico. Mas essa compatibilidade não é mágica — ela é o resultado direto de usuários pegando seus scripts legados de 15 a 20 anos atrás, rodando no motor, vendo onde falham e reportando exatamente o que aconteceu. Cada &lt;em&gt;issue&lt;/em&gt; aberta e cada bug reportado por um desenvolvedor testando seu código do mundo real é o que fortalece a plataforma.&lt;/p&gt;

&lt;h3&gt;
  
  
  A Métrica Silenciosa do Open Source: Apoio Financeiro
&lt;/h3&gt;

&lt;p&gt;Falamos muito sobre &lt;em&gt;pull requests&lt;/em&gt; e &lt;em&gt;issue tracking&lt;/em&gt;, mas há outro pilar da colaboração humana sobre o qual costumamos falar baixo: o suporte financeiro.&lt;/p&gt;

&lt;p&gt;Mantenedores de projetos abertos são desenvolvedores com contas a pagar. Quando uma comunidade apoia financeiramente um projeto, ele deixa de ser um hobby de fim de semana e passa a ter foco dedicado. Contribuições monetárias compram o tempo de foco profundo necessário para resolver desafios arquitetônicos complexos que PRs casuais raramente resolvem.&lt;/p&gt;

&lt;p&gt;Neste mês, por exemplo, o aporte financeiro da comunidade permitiu que a equipe do AxonASP dedicasse horas sérias para expandir significativamente a compatibilidade com bibliotecas legadas. Graças a esse apoio direto, o projeto conseguiu entregar uma atualização técnica massiva:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;A Biblioteca &lt;code&gt;G3DATE&lt;/code&gt;:&lt;/strong&gt; Uma nova biblioteca nativa que finalmente permite ao AxonASP calcular diferenças entre datas e lidar com &lt;em&gt;timezones&lt;/em&gt; de forma fluida.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Implementação de STA (Single-Threaded Apartment):&lt;/strong&gt; Um &lt;em&gt;upgrade&lt;/em&gt; arquitetônico vital que garante muito mais estabilidade e segurança ao servidor durante a execução de componentes OLE legados.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Objeto Math Aprimorado:&lt;/strong&gt; Lançado com métodos e propriedades adicionais para lidar nativamente com cálculos mais complexos.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Motor JScript Fortalecido:&lt;/strong&gt; Adição de testes abrangentes para a funcionalidade do JScript, cobrindo explicitamente &lt;code&gt;Date&lt;/code&gt;, &lt;code&gt;typeof&lt;/code&gt; e os notórios comportamentos de coerção de tipos (&lt;em&gt;coercion&lt;/em&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Melhoria na Manipulação de Tipos:&lt;/strong&gt; Uma implementação fortemente refinada do &lt;code&gt;Object.prototype.toString&lt;/code&gt; para lidar adequadamente com Arrays e outros tipos nativos.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Nada disso seria possível sem uma abordagem de três frentes para a colaboração: desenvolvedores enviando código, usuários caçando bugs implacavelmente e apoiadores fornecendo o fôlego financeiro para que o trabalho pesado seja feito.&lt;/p&gt;

&lt;h3&gt;
  
  
  O Toque Humano Segue Invicto
&lt;/h3&gt;

&lt;p&gt;A IA é uma ferramenta fantástica para acelerar a sintaxe, mas o &lt;em&gt;open source&lt;/em&gt; é fundamentalmente um ecossistema humano. Ele se baseia no atrito compartilhado por desenvolvedores tentando resolver problemas reais.&lt;/p&gt;

&lt;p&gt;Projetos como o AxonASP provam que, quando você combina uma visão técnica ousada — como ressuscitar o JS Síncrono e o ASP Clássico para ambientes modernos e multiplataforma — com uma comunidade ativa, que testa e apoia, os resultados são incríveis.&lt;/p&gt;

&lt;p&gt;O código pode ser o que executa na máquina, mas as pessoas fazem o sistema funcionar.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Se você quiser ver como estamos trazendo o ASP Clássico para a era moderna, dê uma olhada no &lt;a href="https://github.com/guimaraeslucas/axonasp" rel="noopener noreferrer"&gt;repositório do AxonASP&lt;/a&gt;. Traga o seu código legado mais antigo e complexo, tente quebrar o runtime e nos diga o que acontece.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>braziliandevs</category>
      <category>ai</category>
      <category>developer</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Modernização de Sistemas Legados: Reduzindo o Débito Técnico com AxonASP</title>
      <dc:creator>Lucas Guimarães</dc:creator>
      <pubDate>Tue, 30 Jun 2026 14:00:33 +0000</pubDate>
      <link>https://dev.to/lucas_guimaraes/modernizacao-de-sistemas-legados-reduzindo-o-debito-tecnico-com-axonasp-5cb9</link>
      <guid>https://dev.to/lucas_guimaraes/modernizacao-de-sistemas-legados-reduzindo-o-debito-tecnico-com-axonasp-5cb9</guid>
      <description>&lt;p&gt;O mercado de modernização de software está crescendo em ritmo acelerado, com projeções indicando que o setor atingirá mais de US$ 66 bilhões nos próximos anos, segundo relatórios recentes da Keyhole Software. À medida que o débito técnico se acumula e a adoção da nuvem se torna padrão, as empresas percebem que reescrever sistemas inteiros do zero é uma estratégia cara, demorada e com altas taxas de falha. A tendência dominante hoje é a &lt;strong&gt;modernização incremental&lt;/strong&gt;, focada em reduzir riscos sem interromper as operações do negócio.&lt;br&gt;
É nesse cenário de transição que ambientes de execução cross-platform desenvolvidos em GoLang, como o &lt;strong&gt;AxonASP&lt;/strong&gt;, ganham protagonismo. Projetado para revolucionar a forma como mantemos e escalamos aplicações Classic ASP, o AxonASP entrega a ponte perfeita entre a estabilidade do código legado e a agilidade das arquiteturas modernas, com mínimo esforço de adaptação.&lt;/p&gt;

&lt;h2&gt;
  
  
  Adaptação Sem Atrito: De Objetos COM a Objetos G3
&lt;/h2&gt;

&lt;p&gt;Um dos maiores gargalos na modernização de aplicações antigas é o profundo acoplamento com objetos COM nativos. Em métodos tradicionais, migrar essas dependências significa reescrever vastas camadas de regras de negócios, paralisando outras entregas de TI.&lt;br&gt;
O AxonASP contorna essa barreira de forma direta e eficiente. A plataforma permite que a base do código original permaneça intacta, exigindo apenas o mínimo esforço para adaptar as configurações existentes. Ao redirecionar velhas chamadas de objetos COM para &lt;strong&gt;objetos G3&lt;/strong&gt;, o desenvolvedor consegue integrar o sistema legado às bibliotecas e serviços da nova infraestrutura. Esse processo mantém as engrenagens vitais da aplicação rodando com alta performance e isolamento adequado, dispensando os riscos de um "big bang" (reescrita total).&lt;/p&gt;

&lt;h2&gt;
  
  
  A Inovação da Interoperabilidade: VBScript e JavaScript Lado a Lado
&lt;/h2&gt;

&lt;p&gt;O envelhecimento da força de trabalho especializada e a dificuldade de encontrar profissionais fluentes em linguagens antigas inflacionam drasticamente os custos de manutenção corporativa.&lt;br&gt;
Para combater essa dor do mercado, o AxonASP introduz sua funcionalidade mais transformadora: &lt;strong&gt;o suporte combinado e nativo de JavaScript e VBScript dentro da mesma página&lt;/strong&gt;.&lt;br&gt;
Em vez de forçar a equipe a traduzir linhas e mais linhas de VBScript para linguagens modernas antes de adicionar novas funcionalidades, o AxonASP permite que o código antigo continue existindo perfeitamente ao lado de novos blocos de lógica escritos em JavaScript.&lt;/p&gt;

&lt;h2&gt;
  
  
  Capacitando a Nova Geração de Desenvolvedores
&lt;/h2&gt;

&lt;p&gt;Essa coexistência de linguagens muda radicalmente o perfil das equipes que podem atuar no projeto, resolvendo de vez o problema da escassez de talentos para sistemas legados:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Integração Imediata de Novos Programadores:&lt;/strong&gt; Desenvolvedores recém-contratados, que dominam ecossistemas modernos (como Node, JavaScript puro e frameworks como Vue.js), não precisam enfrentar a curva de aprendizado do VBScript. Eles podem abrir um arquivo .asp, compreender a estrutura e começar a codificar atualizações diretamente em JavaScript.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Modernização Módulo a Módulo:&lt;/strong&gt; A equipe de engenharia pode refatorar a aplicação progressivamente. Funções críticas em VBScript podem ser substituídas aos poucos por funções em JavaScript, diluindo o risco técnico em sprints menores.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Manutenção Descomplicada:&lt;/strong&gt; Como as regras antigas ainda funcionam e as novas podem ser escritas na linguagem mais popular do mundo, a manutenção deixa de ser um peso morto e passa a fluir de maneira natural no ciclo de desenvolvimento contínuo.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Conclusão
&lt;/h2&gt;

&lt;p&gt;As tendências de mercado deixam claro que modernizar não precisa ser sinônimo de descartar. Estratégias inteligentes de transição são aquelas que valorizam o capital intelectual já investido no software.&lt;br&gt;
Ao viabilizar a transição suave de componentes para objetos G3 e promover a interoperabilidade revolucionária entre VBScript e JavaScript, o AxonASP prova que é possível modernizar com precisão e baixo custo. É a solução definitiva para estender a vida útil das suas aplicações, garantindo que qualquer desenvolvedor moderno possa manter e escalar seu código rumo ao futuro.&lt;/p&gt;

</description>
      <category>asp</category>
      <category>braziliandevs</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>Modernizing Legacy Systems: How to Slay Technical Debt with AxonASP</title>
      <dc:creator>Lucas Guimarães</dc:creator>
      <pubDate>Tue, 30 Jun 2026 13:57:01 +0000</pubDate>
      <link>https://dev.to/lucas_guimaraes/modernizing-legacy-systems-how-to-slay-technical-debt-with-axonasp-3952</link>
      <guid>https://dev.to/lucas_guimaraes/modernizing-legacy-systems-how-to-slay-technical-debt-with-axonasp-3952</guid>
      <description>&lt;p&gt;If you've been following the software engineering space recently, you've probably noticed a massive shift. According to recent market analysis on legacy modernization trends, the sector is skyrocketing, projected to reach over $66 billion in the coming years. Why? Because technical debt is compounding, and enterprises are realizing that tearing down decades of business logic for a "big bang" rewrite is simply too expensive, risky, and slow.&lt;br&gt;
The new standard is &lt;strong&gt;incremental modernization&lt;/strong&gt;. And if you are dealing with Classic ASP environments, this is where &lt;strong&gt;AxonASP&lt;/strong&gt;—an open-source, cross-platform runtime server written in GoLang—completely changes the game.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Frictionless Shift: From COM to G3 Objects
&lt;/h2&gt;

&lt;p&gt;One of the biggest nightmares when modernizing legacy web apps is the deep entanglement with native COM objects. Traditionally, moving away from these dependencies meant completely rewriting complex business rules, stalling new feature delivery, and risking operational downtime.&lt;br&gt;
AxonASP takes a much smarter approach. It allows your original codebase to remain largely intact, requiring only minimal effort to adapt existing configurations. By simply transitioning legacy COM object calls to &lt;strong&gt;G3 objects&lt;/strong&gt;, developers can seamlessly bridge legacy logic with modern infrastructure. This keeps the application's vital components running with high performance and proper isolation, entirely bypassing the risks of a full rewrite.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Game-Changer: VBScript and JavaScript on the Same Page
&lt;/h2&gt;

&lt;p&gt;Let’s talk about the elephant in the room: the developer talent pool. The aging workforce specialized in older languages makes maintaining legacy code incredibly costly. Trying to find developers eager to write VBScript today is an uphill battle.&lt;br&gt;
To solve this, AxonASP introduces its most powerful feature: &lt;strong&gt;native, combined support for both JavaScript and VBScript within the exact same page&lt;/strong&gt;.&lt;br&gt;
Instead of forcing your engineering team to translate thousands of lines of VBScript into a modern language before they can add a single new feature, AxonASP lets the old code peacefully coexist with new logic written entirely in JavaScript.&lt;/p&gt;

&lt;h2&gt;
  
  
  Empowering the Next Generation of Devs
&lt;/h2&gt;

&lt;p&gt;This interoperability completely flips the script on legacy maintenance, making your codebase accessible to anyone:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Zero-Friction Onboarding:&lt;/strong&gt; New hires familiar with modern ecosystems (like Node.js, Vue, or vanilla JS) don't need to learn VBScript. They can open an .asp file, understand the structure, and start coding new updates and maintaining the system using JavaScript right away.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Module-by-Module Refactoring:&lt;/strong&gt; Engineering teams can refactor the application progressively. Critical VBScript functions can be swapped out for JavaScript functions one sprint at a time, drastically reducing technical risk.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Painless Maintenance:&lt;/strong&gt; Because the old rules still work and new ones can be written in the world's most popular language, maintenance stops being a bottleneck and becomes a natural part of your development lifecycle.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;The industry trends are clear: modernization doesn't have to mean throwing everything away. The smartest transition strategies leverage the intellectual capital already invested in your software.&lt;br&gt;
By enabling a smooth transition to G3 objects and offering groundbreaking VBScript/JavaScript interoperability, AxonASP proves that you can modernize legacy apps with precision and minimal cost. It’s the ultimate bridge to the future, ensuring any modern developer can jump in, maintain, and scale your code today.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>architecture</category>
      <category>asp</category>
      <category>productivity</category>
    </item>
    <item>
      <title>JavaScript no lado do servidor sem node.js? APIs no Linux com AxonASP</title>
      <dc:creator>Lucas Guimarães</dc:creator>
      <pubDate>Tue, 30 Jun 2026 11:00:00 +0000</pubDate>
      <link>https://dev.to/lucas_guimaraes/javascript-no-lado-do-servidor-sem-nodejs-apis-no-linux-com-axonasp-2jhh</link>
      <guid>https://dev.to/lucas_guimaraes/javascript-no-lado-do-servidor-sem-nodejs-apis-no-linux-com-axonasp-2jhh</guid>
      <description>&lt;p&gt;Quando falamos de Classic ASP, a primeira coisa que costuma vir à mente é o VBScript. É uma linguagem excelente e direta, mas sejamos honestos: no ecossistema da web moderna, tudo conversa em JSON. E gerar JSON manualmente concatenando strings no VBScript é um pesadelo que nenhum desenvolvedor deveria ter que suportar hoje em dia. Mesmo que tenhamos a G3JSON do AxonASP ao nosso lado, é chato pensar em ter de chamar uma biblioteca apenas para isso.&lt;/p&gt;

&lt;p&gt;Mas aqui está um fato esquecido: o Classic ASP no Windows sempre ofereceu suporte ao JScript, que nada mais é do que JavaScript. E esse, garanto que você sabe.&lt;/p&gt;

&lt;p&gt;Com o AxonASP (&lt;a href="https://github.com/guimaraeslucas/axonasp" rel="noopener noreferrer"&gt;https://github.com/guimaraeslucas/axonasp&lt;/a&gt;) — uma engine baseada em GoLang que roda Classic ASP nativamente no Linux, macOS, BSD e Windows — essa capacidade não foi apenas preservada; ela se tornou uma ferramenta poderosa. O AxonASP implementa um motor ECMAScript que suporta completamente a versão 6.0 e além, permitindo que você escreva JavaScript no lado do servidor perfeitamente integrado às suas páginas ASP.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;O melhor dos dois mundos&lt;/strong&gt;&lt;br&gt;
Ao adotar o JavaScript como sua linguagem principal em uma página ASP, você consegue misturar naturalmente conteúdo HTML com JavaScript renderizado no servidor. E o mais importante: isso elimina completamente o atrito na hora de construir APIs. Você ganha a sintaxe nativa do JavaScript (incluindo os métodos embutidos &lt;code&gt;JSON.stringify&lt;/code&gt; e &lt;code&gt;JSON.parse&lt;/code&gt;) combinada com os objetos padrão e já consagrados do ASP, como &lt;code&gt;Response&lt;/code&gt;, &lt;code&gt;Request&lt;/code&gt; e &lt;code&gt;Server&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Some a esse ecossistema bibliotecas como a &lt;code&gt;G3DB&lt;/code&gt; — que facilita absurdamente a conexão e a execução de consultas em múltiplos bancos de dados simultaneamente — e, de repente, você tem uma stack de backend extremamente leve e capaz, rodando direto em um servidor Linux ou dentro de um container Docker.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Exemplo prático: Um endpoint de Micro-API&lt;/strong&gt;&lt;br&gt;
Para mostrar como isso funciona na prática, vamos construir um endpoint de API simples e seguro.&lt;/p&gt;

&lt;p&gt;Imagine que você precisa servir dados para um frontend moderno em Vue.js ou React. Em vez de configurar um framework pesado, você pode simplesmente jogar este arquivo &lt;code&gt;.asp&lt;/code&gt; na pasta &lt;code&gt;www&lt;/code&gt; do seu AxonASP. Ele lê um parâmetro da URL, faz uma consulta no banco de dados usando a biblioteca &lt;code&gt;G3DB&lt;/code&gt;, formata o resultado em JSON e serve a resposta com os cabeçalhos HTTP corretos.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsp"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;%&lt;/span&gt;&lt;span class="err"&gt;@&lt;/span&gt; &lt;span class="nc"&gt;Language&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"JavaScript"&lt;/span&gt; &lt;span class="nt"&gt;%&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;%&lt;/span&gt;
&lt;span class="c1"&gt;// 1. Configuração dos cabeçalhos HTTP modernos para a nossa API&lt;/span&gt;
&lt;span class="nc"&gt;Response&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;ContentType&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"application/json"&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="nc"&gt;Response&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;Charset&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"UTF-8"&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="nc"&gt;Response&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;AddHeader&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Access-Control-Allow-Origin"&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"*"&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;

&lt;span class="c1"&gt;// 2. Definição da lógica de busca de dados&lt;/span&gt;
&lt;span class="n"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;getRecordData&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;recordId&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;// Instancia a biblioteca usando o ProgID principal&lt;/span&gt;
    &lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;db&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Server&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;CreateObject&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"G3DB"&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;

    &lt;span class="c1"&gt;// Abre a conexão utilizando valores de configuração/ambiente&lt;/span&gt;
    &lt;span class="c1"&gt;// Retorna True se a abertura via config/env for bem-sucedida; False caso contrário&lt;/span&gt;
    &lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;isConnected&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;db&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;OpenFromEnv&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"mysql"&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt; 

    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;(!&lt;/span&gt;&lt;span class="n"&gt;isConnected&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="c1"&gt;// Retorna a string do erro atual&lt;/span&gt;
        &lt;span class="k"&gt;throw&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nf"&gt;Error&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Falha na conexão com o banco: "&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;db&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;GetError&lt;/span&gt;&lt;span class="o"&gt;());&lt;/span&gt; 
    &lt;span class="o"&gt;}&lt;/span&gt;

    &lt;span class="c1"&gt;// Uso de consultas parametrizadas para garantir segurança contra SQL Injection&lt;/span&gt;
    &lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;sql&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"SELECT id, status, created_at, assigned_user FROM workflow_queue WHERE id = ?"&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;

    &lt;span class="c1"&gt;// Executa a consulta e retorna um result set do tipo forward-only&lt;/span&gt;
    &lt;span class="c1"&gt;// A reescrita de placeholders converte os marcadores '?' para o formato do driver ativo quando necessário&lt;/span&gt;
    &lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;rs&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;db&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;Query&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;sql&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="n"&gt;recordId&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt; 

    &lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;

    &lt;span class="c1"&gt;// Verifica se o result set é válido (a G3DB retorna Empty em caso de falha)&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;rs&lt;/span&gt; &lt;span class="o"&gt;!=&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;(!&lt;/span&gt;&lt;span class="n"&gt;rs&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;EOF&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
            &lt;span class="c1"&gt;// Mapeia o Recordset diretamente para um objeto nativo do JavaScript&lt;/span&gt;
            &lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
                &lt;span class="nl"&gt;id:&lt;/span&gt; &lt;span class="nc"&gt;String&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;rs&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"id"&lt;/span&gt;&lt;span class="o"&gt;)),&lt;/span&gt;
                &lt;span class="nl"&gt;status:&lt;/span&gt; &lt;span class="nc"&gt;String&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;rs&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"status"&lt;/span&gt;&lt;span class="o"&gt;)),&lt;/span&gt;
                &lt;span class="nl"&gt;createdAt:&lt;/span&gt; &lt;span class="nc"&gt;String&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;rs&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"created_at"&lt;/span&gt;&lt;span class="o"&gt;)),&lt;/span&gt;
                &lt;span class="nl"&gt;assignedTo:&lt;/span&gt; &lt;span class="nc"&gt;String&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;rs&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"assigned_user"&lt;/span&gt;&lt;span class="o"&gt;))&lt;/span&gt;
            &lt;span class="o"&gt;};&lt;/span&gt;
        &lt;span class="o"&gt;}&lt;/span&gt;
        &lt;span class="c1"&gt;// Sempre limpa e fecha o Recordset&lt;/span&gt;
        &lt;span class="n"&gt;rs&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;Close&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="c1"&gt;// Captura falhas de execução usando a propriedade somente leitura LastError&lt;/span&gt;
        &lt;span class="k"&gt;throw&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nf"&gt;Error&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Falha na execução da consulta: "&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;db&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;LastError&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;

    &lt;span class="c1"&gt;// Fecha o pool de conexões atual gerenciado pelo objeto G3DB&lt;/span&gt;
    &lt;span class="n"&gt;db&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;Close&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt; 

    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;

&lt;span class="c1"&gt;// 3. Processamento da requisição recebida&lt;/span&gt;
&lt;span class="k"&gt;try&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;// Extrai o ID da URL (ex: api.asp?id=1042)&lt;/span&gt;
    &lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;reqId&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;String&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;Request&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;QueryString&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"id"&lt;/span&gt;&lt;span class="o"&gt;));&lt;/span&gt;

    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;reqId&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="s"&gt;"undefined"&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="n"&gt;reqId&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="nc"&gt;Response&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;Status&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"400 Bad Request"&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
        &lt;span class="nc"&gt;Response&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;Write&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="no"&gt;JSON&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;stringify&lt;/span&gt;&lt;span class="o"&gt;({&lt;/span&gt; 
            &lt;span class="nl"&gt;success:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; 
            &lt;span class="nl"&gt;error:&lt;/span&gt; &lt;span class="s"&gt;"Parâmetro obrigatório ausente: id."&lt;/span&gt; 
        &lt;span class="o"&gt;}));&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;record&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;getRecordData&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;reqId&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;

        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;record&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
            &lt;span class="c1"&gt;// Sucesso: renderiza o JSON padrão usando o stringify nativo do ES5&lt;/span&gt;
            &lt;span class="nc"&gt;Response&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;Write&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="no"&gt;JSON&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;stringify&lt;/span&gt;&lt;span class="o"&gt;({&lt;/span&gt; 
                &lt;span class="nl"&gt;success:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; 
                &lt;span class="nl"&gt;data:&lt;/span&gt; &lt;span class="n"&gt;record&lt;/span&gt; 
            &lt;span class="o"&gt;}));&lt;/span&gt;
        &lt;span class="o"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
            &lt;span class="nc"&gt;Response&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;Status&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"404 Not Found"&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
            &lt;span class="nc"&gt;Response&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;Write&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="no"&gt;JSON&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;stringify&lt;/span&gt;&lt;span class="o"&gt;({&lt;/span&gt; 
                &lt;span class="nl"&gt;success:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; 
                &lt;span class="nl"&gt;error:&lt;/span&gt; &lt;span class="s"&gt;"Registro não encontrado no banco de dados."&lt;/span&gt; 
            &lt;span class="o"&gt;}));&lt;/span&gt;
        &lt;span class="o"&gt;}&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt; &lt;span class="k"&gt;catch&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;// Tratamento global de erros&lt;/span&gt;
    &lt;span class="nc"&gt;Response&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;Status&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"500 Internal Server Error"&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
    &lt;span class="nc"&gt;Response&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;Write&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="no"&gt;JSON&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;stringify&lt;/span&gt;&lt;span class="o"&gt;({&lt;/span&gt; 
        &lt;span class="nl"&gt;success:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; 
        &lt;span class="nl"&gt;error:&lt;/span&gt; &lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;message&lt;/span&gt; 
    &lt;span class="o"&gt;}));&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="nt"&gt;%&amp;gt;&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Por que isso importa?&lt;/strong&gt;&lt;br&gt;
Olhe para o código acima. É JavaScript perfeitamente válido, roda com uma velocidade incrível e faz exatamente o que precisa fazer, sem camadas complexas de middleware ou configurações complicadas de roteamento.&lt;/p&gt;

&lt;p&gt;Como o AxonASP é construído em GoLang, todo esse ambiente fica completamente desacoplado do Windows Server. Na verdade, ele roda em qualquer servidor que você quiser. Você pode criar novos módulos usando a sintaxe que você já domina, aproveitando os objetos clássicos do ASP, consultando seus bancos com a &lt;code&gt;G3DB&lt;/code&gt; e implantando tudo em uma distribuição Linux mínima. E sabe o que é melhor? Com uma otimização de memória muito boa. Uma API Node.js muitas vezes utiliza 50mb a 80mb para ficar em espera, enquanto o AxonASP consegue manter a espera em 18mb. Isso é fantástico para economizar recursos, e cá entre nós, sabemos o quanto esses recursos são caros para nós que pagamos em reais convertidos em dólar.&lt;/p&gt;

&lt;p&gt;Se você gerencia aplicações em Classic ASP, migrá-las não significa necessariamente ter que reescrevê-las do zero em outra linguagem. Você pode modernizar a infraestrutura, mudar para JavaScript onde fizer mais sentido (como em endpoints de API), e até misturar VBScript com JavaScript na mesma página, e manter seus sistemas rodando tranquilamente. E sem pagar licenças.&lt;/p&gt;

&lt;p&gt;Nós fizemos o AxonASP para ser uma engine potente. E precisamos também de sua ajuda como desenvolvedor. Se você puder colaborar testando código JavaScript, VBScript ou até mesmo melhorando o código GoLang, isso será de grande ajuda.&lt;/p&gt;

</description>
      <category>braziliandevs</category>
      <category>asp</category>
      <category>api</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Uma linguagem de 30 anos otimizada para o futuro: Construindo uma Máquina Virtual Zero-AST em Go capaz de rodar ASP</title>
      <dc:creator>Lucas Guimarães</dc:creator>
      <pubDate>Mon, 29 Jun 2026 11:00:00 +0000</pubDate>
      <link>https://dev.to/lucas_guimaraes/uma-linguagem-de-30-anos-otimizada-para-o-futuro-construindo-uma-maquina-virtual-zero-ast-em-go-1639</link>
      <guid>https://dev.to/lucas_guimaraes/uma-linguagem-de-30-anos-otimizada-para-o-futuro-construindo-uma-maquina-virtual-zero-ast-em-go-1639</guid>
      <description>&lt;p&gt;Olá, comunidade DEV! 👋 Estou de volta.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Se você acha que o Classic ASP está morto, deixe-me dizer: ele agora está mais vivo do que nunca.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Recentemente, concluí uma refatoração total da base de código para a versão 2.2 do AxonASP, meu motor em Go de código aberto para VBScript e Classic ASP. O objetivo não era apenas manter o código legado respirando; eu queria expandir os limites do que essa linguagem dos anos 90 pode realmente alcançar em hardware moderno.&lt;/p&gt;

&lt;p&gt;Quero compartilhar com vocês algumas das otimizações profundas de engenharia que implementamos por baixo do capô para fazer isso acontecer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;⚡ Zero AST, Bytecode Puro&lt;/strong&gt;&lt;br&gt;
Nesta reescrita, demos um enorme salto arquitetônico: descartei a Árvore de Sintaxe Abstrata (AST).&lt;/p&gt;

&lt;p&gt;Em vez disso, o novo compilador de passagem única (&lt;em&gt;single-pass&lt;/em&gt;) emite bytecode diretamente para uma Máquina Virtual baseada em pilha. Ao eliminar a AST, o AxonASP executa scripts com overhead de alocação praticamente zero. O consumo de memória despenca drasticamente e a execução é rápida.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🔄 Pool de VMs no Estilo IIS &amp;amp; Cache Avançado&lt;/strong&gt;&lt;br&gt;
Para lidar com alta concorrência, implementei um pool avançado de VMs perfeitamente modelado com base na arquitetura original do IIS, mas sustentado pelas goroutines nativas do Go. Além disso, combinei isso com um cache agressivo de scripts e até implementei cache de compilação para execuções dinâmicas (&lt;code&gt;eval&lt;/code&gt;, &lt;code&gt;execute&lt;/code&gt; e &lt;code&gt;executeglobal&lt;/code&gt;). O resultado é que o tempo de processamento de requisições é mais rápido se comparado ao ASP tradicional.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🛠️ Tornando o ASP um Prazer de Escrever Novamente&lt;/strong&gt;&lt;br&gt;
Velocidade pura é ótimo, mas a experiência do desenvolvedor importa tanto quanto. Não paramos apenas no suporte à biblioteca padrão legada. Injetamos mais de 60 funções personalizadas diretamente no runtime. Agora você tem acesso a manipulação avançada de arrays, manipulação nativa de JSON e ferramentas criptográficas prontas para uso. Isso realmente faz com que escrever ASP seja um prazer novamente.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🧪 Desenvolvimento Guiado por Testes em ASP (Sim, sério)&lt;/strong&gt;&lt;br&gt;
Diga adeus a scripts quebrados e regressões. Eu queria trazer práticas de desenvolvimento modernas para a linguagem, então construímos o novo executável &lt;code&gt;axonasp-testsuite&lt;/code&gt;. Ele permite que você escreva e rode suítes de testes automatizados nativamente, direto nos seus arquivos &lt;code&gt;.asp&lt;/code&gt;! O TDD no Classic ASP finalmente é uma realidade.&lt;/p&gt;

&lt;p&gt;Se você está curioso sobre como tudo isso funciona, ou se tem uma aplicação legada que deseja resgatar, preparamos um manual completo e abrangente bem dentro do repositório para te ajudar a começar.&lt;/p&gt;

&lt;p&gt;O Classic ASP pode ser um pedaço da história da computação retrô, mas com essas otimizações, ele está pronto para a web moderna. Adoraria saber o que vocês acham.&lt;/p&gt;

&lt;p&gt;👉 Confira o repositório e o código-fonte aqui: &lt;a href="https://github.com/guimaraeslucas/axonasp" rel="noopener noreferrer"&gt;https://github.com/guimaraeslucas/axonasp&lt;/a&gt;&lt;/p&gt;

</description>
      <category>braziliandevs</category>
      <category>portugues</category>
      <category>webdev</category>
      <category>asp</category>
    </item>
    <item>
      <title>Trouxemos o Classic ASP para o Linux: Assista ao vídeo do AxonASP e confira nosso novo manual online!</title>
      <dc:creator>Lucas Guimarães</dc:creator>
      <pubDate>Mon, 29 Jun 2026 00:00:00 +0000</pubDate>
      <link>https://dev.to/lucas_guimaraes/trouxemos-o-classic-asp-para-o-linux-assista-ao-video-do-axonasp-e-confira-nosso-novo-manual-563p</link>
      <guid>https://dev.to/lucas_guimaraes/trouxemos-o-classic-asp-para-o-linux-assista-ao-video-do-axonasp-e-confira-nosso-novo-manual-563p</guid>
      <description>&lt;p&gt;Olá, comunidade DEV! 👋&lt;/p&gt;

&lt;p&gt;Recentemente, compartilhei como reescrevi completamente o motor do Classic ASP do zero em Go para salvar aplicações legadas da descontinuação do VBScript pela Microsoft. Hoje, estou super animado para compartilhar uma breve apresentação em vídeo que acabei de produzir, mostrando o AxonASP  em ação!&lt;/p&gt;

&lt;p&gt;Você pode assistir à análise detalhada de como alcançamos uma execução zero-AST, velocidades extremas e compatibilidade multiplataforma bem aqui:&lt;br&gt;
👉 &lt;a href="https://www.youtube.com/watch?v=2COGf_lfwSs" rel="noopener noreferrer"&gt;https://www.youtube.com/watch?v=2COGf_lfwSs&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;📖 Mais do que apenas documentação: Um centro de aprendizado completo&lt;br&gt;
Um dos maiores desafios com tecnologias mais antigas é que os fóruns, tutoriais e documentações de antigamente estão desaparecendo lentamente da web. Para resolver isso, não construímos apenas um motor; nós criamos um manual moderno e abrangente.&lt;/p&gt;

&lt;p&gt;Seja você um veterano migrando uma aplicação empresarial legada ou um desenvolvedor moderno se perguntando o que diabos é ASP, o manual tem tudo o que você precisa. Ele traz:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;O Básico:&lt;/strong&gt; Uma recapitulação completa e amigável sobre os conceitos fundamentais do Classic ASP.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;As Extensões Modernas:&lt;/strong&gt; Exemplos detalhados e prontos para copiar e colar de como usar nossos novos objetos nativos em Go diretamente dentro do seu VBScript. Você aprenderá como fazer o parse de APIs com o &lt;code&gt;G3JSON&lt;/code&gt;, buscar recursos externos com o &lt;code&gt;G3HTTP&lt;/code&gt; e até renderizar Markdown para HTML instantaneamente usando o &lt;code&gt;G3MD&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Conteinerização:&lt;/strong&gt; Guias passo a passo sobre como usar nossos containers Docker para que você possa conteinerizar suas aplicações de 20 anos atrás em questão de segundos.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CLI em Tempo Real:&lt;/strong&gt; Instruções de como usar nossa interface de linha de comando interativa. Você pode, de fato, escrever, testar e aprender trechos de ASP em tempo real, direto do seu terminal!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;O AxonASP é mais do que apenas VBScript — ele também traz suporte nativo a JavaScript&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;E o melhor: com total acesso aos objetos clássicos do ASP (Request, Response, Session, etc.). Se você é novo no ecossistema ASP, não se preocupe: é o mesmíssimo JavaScript que você já roda no navegador ou no Node.js. A grande vantagem aqui? No AxonASP, o JavaScript pode ser executado de forma totalmente síncrona. Chega de inferno de callbacks ou promises para operações simples; você escreve o código de forma direta e vê o resultado na hora, sem complicações.&lt;/p&gt;

&lt;p&gt;🤯 Provando que funciona&lt;br&gt;
Aqui está a minha parte favorita: o manual em si é uma aplicação em Classic ASP. Se você acessar o link abaixo, não estará apenas lendo arquivos estáticos. Todo aquele site de documentação está rodando ao vivo em produção agora, alimentado nativamente pelo motor do AxonASP, rodando de forma segura atrás de um proxy reverso Nginx em um servidor Linux. É rápido, estável e prova exatamente do que essa arquitetura é capaz de dar conta no mundo real.&lt;/p&gt;

&lt;p&gt;🔗 Explore você mesmo&lt;br&gt;
Eu adoraria que você assistisse ao vídeo, desse uma olhada na documentação e experimentasse. Deixe-me saber o que achou da arquitetura nos comentários!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Leia o manual online (rodando em AxonASP + Linux + Nginx):&lt;/strong&gt; &lt;a href="https://g3pix.com.br/axonasp/manual/default.asp" rel="noopener noreferrer"&gt;https://g3pix.com.br/axonasp/manual/default.asp&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Confira o código-fonte e deixe uma estrela:&lt;/strong&gt; &lt;a href="https://github.com/guimaraeslucas/axonasp" rel="noopener noreferrer"&gt;https://github.com/guimaraeslucas/axonasp&lt;/a&gt;&lt;/p&gt;

</description>
      <category>go</category>
      <category>cloud</category>
      <category>braziliandevs</category>
      <category>portugues</category>
    </item>
    <item>
      <title>Rodando Classic ASP no Linux em 2026</title>
      <dc:creator>Lucas Guimarães</dc:creator>
      <pubDate>Sun, 28 Jun 2026 20:41:06 +0000</pubDate>
      <link>https://dev.to/lucas_guimaraes/rodando-classic-asp-no-linux-em-2026-1dep</link>
      <guid>https://dev.to/lucas_guimaraes/rodando-classic-asp-no-linux-em-2026-1dep</guid>
      <description>&lt;p&gt;Sim, estamos em 2026 e o Classic ASP continua vivíssimo. Você sabia que até a Microsoft ainda roda ele internamente? &lt;/p&gt;

&lt;p&gt;Embora muita gente o considere uma relíquia do passado, a realidade é que muitas empresas ainda dependem dele para sistemas internos, ferramentas legadas corporativas e até páginas públicas e por um simples motivo: funciona. Por muito tempo, o maior problema era o aprisionamento tecnológico (&lt;em&gt;lock-in&lt;/em&gt;): se você quisesse rodar ASP, ficava totalmente preso ao Windows e ao IIS.&lt;/p&gt;

&lt;p&gt;Mas as coisas mudaram. O VBScript é uma linguagem incrivelmente direta que merece ser preservada — e para quem prefere, implementações modernas hoje permitem até misturar JavaScript na jogada.&lt;/p&gt;

&lt;p&gt;Eu tenho trabalhado em uma solução para trazer essa stack para a era moderna da infraestrutura. O projeto se chama &lt;strong&gt;AxonASP&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Por que o AxonASP?&lt;/strong&gt;&lt;br&gt;
Escrito em GoLang, o AxonASP é um servidor multiplataforma que permite rodar Classic ASP no Linux, macOS e Windows. Isso significa que você finalmente pode conteinerizar suas aplicações legadas usando Docker ou implantá-las em instâncias Linux superleves.&lt;/p&gt;

&lt;p&gt;Quão leves? Uma máquina virtual simples como a T2.nano da AWS, com apenas 512 MB de RAM, é mais do que suficiente para servir o seu site. Você consegue manter seus sistemas direto de um ambiente Linux com o mínimo de overhead. Sem pagar licenças Windows.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Guia de Instalação&lt;/strong&gt;&lt;br&gt;
Você pode encontrar o projeto e as últimas versões direto no GitHub: &lt;code&gt;[github.com/guimaraeslucas/axonasp](https://github.com/guimaraeslucas/axonasp)&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Para começar no Linux, você pode baixar o pacote específico da sua distribuição usando o &lt;code&gt;wget&lt;/code&gt;. Altere a extensão de acordo com o que você precisa (&lt;code&gt;.rpm&lt;/code&gt;, &lt;code&gt;.deb&lt;/code&gt; ou &lt;code&gt;.apk&lt;/code&gt;):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Para Alpine (APK)&lt;/span&gt;
wget https://github.com/guimaraeslucas/axonasp/releases/download/v2.2.8/axonasp_2.2.8_x86_64.apk

&lt;span class="c"&gt;# Para Debian/Ubuntu (DEB)&lt;/span&gt;
wget https://github.com/guimaraeslucas/axonasp/releases/download/v2.2.8/axonasp_2.2.8_amd64.deb

&lt;span class="c"&gt;# Para RHEL/Fedora/Amazon Linux (RPM)&lt;/span&gt;
wget https://github.com/guimaraeslucas/axonasp/releases/download/v2.2.8/axonasp-2.2.8-1.x86_64.rpm

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Como o Amazon Linux é o padrão para ambientes AWS, aqui está como fazer a instalação usando o &lt;code&gt;dnf&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;dnf &lt;span class="nb"&gt;install&lt;/span&gt; ./axonasp-2.2.8-1.x86_64.rpm

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Rodando o Servidor&lt;/strong&gt;&lt;br&gt;
Após a instalação, os arquivos do servidor ficam localizados em &lt;code&gt;/opt/axonasp&lt;/code&gt;. Para fazer um teste rápido, navegue até o diretório e execute o binário HTTP:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; /opt/axonasp
./axonasp-http

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Por padrão, o servidor vai procurar seus arquivos na pasta &lt;code&gt;opt/axonasp/www/&lt;/code&gt;. Você pode ajustar o comportamento, as portas e a lógica editando o arquivo de configuração em &lt;code&gt;_config/axonasp.toml_&lt;/code&gt;. Seu site estará rodando em &lt;code&gt;localhost:8801&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Implantação em Produção (Proxy Reverso com Nginx)&lt;/strong&gt;&lt;br&gt;
Para expor sua aplicação para a web com a segurança adequada e SSL, o ideal é usar um proxy reverso como o Nginx. Aqui está um exemplo de configuração:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight nginx"&gt;&lt;code&gt;&lt;span class="k"&gt;upstream&lt;/span&gt; &lt;span class="s"&gt;axonasp_backend&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kn"&gt;server&lt;/span&gt; &lt;span class="nf"&gt;localhost&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;8801&lt;/span&gt; &lt;span class="s"&gt;max_fails=3&lt;/span&gt; &lt;span class="s"&gt;fail_timeout=30s&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;server&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kn"&gt;listen&lt;/span&gt; &lt;span class="mi"&gt;80&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="kn"&gt;server_name&lt;/span&gt; &lt;span class="s"&gt;meuapp.exemplo.com&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="kn"&gt;return&lt;/span&gt; &lt;span class="mi"&gt;301&lt;/span&gt; &lt;span class="s"&gt;https://&lt;/span&gt;&lt;span class="nv"&gt;$server_name$request_uri&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;server&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kn"&gt;listen&lt;/span&gt; &lt;span class="mi"&gt;443&lt;/span&gt; &lt;span class="s"&gt;ssl&lt;/span&gt; &lt;span class="s"&gt;http2&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="kn"&gt;server_name&lt;/span&gt; &lt;span class="s"&gt;meuapp.exemplo.com&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="kn"&gt;ssl_certificate&lt;/span&gt; &lt;span class="n"&gt;/etc/ssl/certs/meuapp.crt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="kn"&gt;ssl_certificate_key&lt;/span&gt; &lt;span class="n"&gt;/etc/ssl/private/meuapp.key&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="kn"&gt;ssl_protocols&lt;/span&gt; &lt;span class="s"&gt;TLSv1.2&lt;/span&gt; &lt;span class="s"&gt;TLSv1.3&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="kn"&gt;ssl_ciphers&lt;/span&gt; &lt;span class="s"&gt;HIGH:!aNULL:!MD5&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="kn"&gt;location&lt;/span&gt; &lt;span class="n"&gt;/&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="kn"&gt;proxy_pass&lt;/span&gt; &lt;span class="s"&gt;http://axonasp_backend&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="kn"&gt;proxy_set_header&lt;/span&gt; &lt;span class="s"&gt;Host&lt;/span&gt; &lt;span class="nv"&gt;$host&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="kn"&gt;proxy_set_header&lt;/span&gt; &lt;span class="s"&gt;X-Real-IP&lt;/span&gt; &lt;span class="nv"&gt;$remote_addr&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="kn"&gt;proxy_set_header&lt;/span&gt; &lt;span class="s"&gt;X-Forwarded-For&lt;/span&gt; &lt;span class="nv"&gt;$proxy_add_x_forwarded_for&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="kn"&gt;proxy_set_header&lt;/span&gt; &lt;span class="s"&gt;X-Forwarded-Proto&lt;/span&gt; &lt;span class="nv"&gt;$scheme&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="kn"&gt;proxy_buffering&lt;/span&gt; &lt;span class="no"&gt;off&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="kn"&gt;proxy_request_buffering&lt;/span&gt; &lt;span class="no"&gt;off&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Rodando como Daemon&lt;/strong&gt;&lt;br&gt;
Em um ambiente Linux em produção, você não vai querer rodar o binário manualmente. O AxonASP já vem com um utilitário para cuidar da instalação no &lt;code&gt;systemd&lt;/code&gt; de forma automática:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo&lt;/span&gt; ./axonasp-service &lt;span class="nb"&gt;install
sudo&lt;/span&gt; ./axonasp-service start

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Isso vai registrar o AxonASP como um serviço, garantindo que ele inicialize sozinho sempre que o sistema for ligado.&lt;/p&gt;

&lt;p&gt;O Classic ASP não precisa ficar preso em 1998. Com as ferramentas certas, ele se torna uma opção viável, leve e incrivelmente rápida para 2026. E quer saber? Para que usar o Asp.net e gastar 300mb de memória para rodar apenas uma landing page?&lt;/p&gt;

</description>
      <category>asp</category>
      <category>braziliandevs</category>
      <category>portugues</category>
      <category>webdev</category>
    </item>
    <item>
      <title>A Microsoft matou o VBScript, então eu criei uma VM customizada em Go para trazer o Classic ASP para 2026</title>
      <dc:creator>Lucas Guimarães</dc:creator>
      <pubDate>Sun, 28 Jun 2026 20:25:31 +0000</pubDate>
      <link>https://dev.to/lucas_guimaraes/a-microsoft-matou-o-vbscript-entao-eu-criei-uma-vm-customizada-em-go-para-trazer-o-classic-asp-36lc</link>
      <guid>https://dev.to/lucas_guimaraes/a-microsoft-matou-o-vbscript-entao-eu-criei-uma-vm-customizada-em-go-para-trazer-o-classic-asp-36lc</guid>
      <description>&lt;p&gt;Olá, comunidade DEV! 👋&lt;/p&gt;

&lt;p&gt;Eu não tenho uma formação acadêmica formal em TI — meu trabalho principal é, na verdade, como Médico — mas sou um desenvolvedor Go autodidata com uma enorme paixão por computação retrô dos anos 90 e preservação de softwares legados.&lt;/p&gt;

&lt;p&gt;Recentemente, com a Microsoft puxando oficialmente o plugue do VBScript e o Classic ASP estando negligenciado há anos, percebi que muito código legado seria deixado no escuro. Em vez de deixá-lo morrer, decidi fazer algo um pouco louco: reescrevi o motor completamente do zero em Go.&lt;/p&gt;

&lt;p&gt;Deixem-me apresentar o &lt;strong&gt;AxonASP&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;É um projeto de código aberto projetado não apenas para manter o código legado vivo, mas para permitir que o Classic ASP realmente evolua para a era da web moderna.&lt;/p&gt;

&lt;h3&gt;
  
  
  ⚡ A Arquitetura em Go: Por que é tão rápido
&lt;/h3&gt;

&lt;p&gt;Escrever um interpretador em Go tem sido uma jornada de engenharia incrível. Eu queria alcançar um desempenho extremo, então descartei a abordagem tradicional de Árvore de Sintaxe Abstrata (AST).&lt;/p&gt;

&lt;p&gt;Por baixo do capô, o AxonASP possui um compilador de passagem única (&lt;em&gt;single-pass&lt;/em&gt;) que emite bytecode diretamente para uma Máquina Virtual baseada em registradores altamente otimizada (&lt;strong&gt;AxonVM&lt;/strong&gt;). Ao evitar agressivamente &lt;em&gt;reflection&lt;/em&gt; e minimizar as alocações de heap no Go, o overhead de execução do script é praticamente zero. É insanamente rápido e otimizado para memória, imitando um pool de VMs no estilo IIS usando a concorrência nativa do Go (goroutines).&lt;/p&gt;

&lt;h3&gt;
  
  
  🛠️ Trazendo o ASP para a Era Moderna
&lt;/h3&gt;

&lt;p&gt;Eu não queria apenas um clone 1:1; eu queria construir as ferramentas que os desenvolvedores ASP gostariam de ter tido há 20 anos. Aqui está o que o ambiente de execução inclui atualmente:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Integração Nativa com IA:&lt;/strong&gt; Possui um servidor MCP integrado. Você pode conectar seus agentes de IA/LLMs diretamente ao runtime para escrever e refatorar códigos ASP de forma autônoma com base no seu ambiente local.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Uma CLI &amp;amp; TUI de Verdade:&lt;/strong&gt; Você finalmente pode executar ASP e VBScript diretamente do seu terminal! Ele possui uma Interface de Usuário em Modo Texto (TUI), tornando-o perfeito para rodar tarefas cron ou scripts de administração de sistema.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fluxos de Trabalho Modernos:&lt;/strong&gt; O AxonASP vem com uma suíte de testes nativa (&lt;code&gt;axonasp-testsuite&lt;/code&gt;) para que você possa escrever asserções automatizadas para os seus scripts ASP antigos.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Verdadeiramente Multiplataforma:&lt;/strong&gt; Roda nativamente no Windows, Linux e macOS na maioria das arquiteturas. Você não está mais acorrentado ao Windows Server.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Servidor Flexível:&lt;/strong&gt; Ele já vem tanto com um daemon FastCGI (perfeito para Nginx/Apache) quanto com um servidor HTTP embutido.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Suporte Javascript:&lt;/strong&gt; O AxonASP conta com suporte avançado a JavaScript, o que permite que você desenvolva web-sites e aplicações usando a facilidade do ASP e a sincronicidade do JavaScript. Escreva uma vez e pronto.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  📦 Experimente!
&lt;/h3&gt;

&lt;p&gt;Eu adoraria receber o feedback da comunidade. O que você achou da arquitetura? Quais recursos modernos você adicionaria a uma linguagem dos anos 90?&lt;/p&gt;

&lt;p&gt;Você pode conferir o código-fonte, a documentação completa e exemplos de arquitetura bem aqui:&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://github.com/guimaraeslucas/axonasp" rel="noopener noreferrer"&gt;https://github.com/guimaraeslucas/axonasp&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ah! Você também pode importar e converter bancos de dados Access no Windows, e criar prompts para agentes de IA programarem as páginas ASP que você desejar.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Nota:&lt;/strong&gt; Se você quiser apenas experimentar, o repositório inclui um instalador simples para Windows e uma configuração do Docker totalmente estruturada para que você possa executá-lo em segundos.&lt;/p&gt;

&lt;p&gt;Me contem o que acharam! 💻🩺&lt;/p&gt;

</description>
      <category>braziliandevs</category>
      <category>webdev</category>
      <category>portugues</category>
      <category>asp</category>
    </item>
  </channel>
</rss>
