O futuro do VisualBasic
WebForms (formulários da Web), serviços da Web (serviços da Web) e melhorias de linguagem que aparecerão em uma versão
Os leitores deste artigo são usuários que já estão familiarizados com o Visual Basic.
Visão geral: A próxima versão do Microsoft Visual Basic possui três melhorias principais: melhorias em WebForms, Webservices e sintaxe orientada a objetos. WebForms permite que usuários experientes de Visual Basic desenvolvam aplicativos de rede com a mesma facilidade com que escrevem programas independentes hoje em dia. Através da interface SOAP, os Webservices permitem implantar os componentes projetados em qualquer lugar com acesso à Internet. Além disso, várias melhorias importantes em linguagens orientadas a objetos tornam o código Visual Basic tão flexível quanto C, incluindo herança, polimorfismo e sobrecarga. Para obter informações sobre este aspecto, consulte "VBITSkeynoteonthenextgenerationofVisualBasic" de Steve Ballmer
isualBasic passou por muitas melhorias. Mas uma coisa que adoro nele desde o seu início é que, em sua essência, você ainda pode escrever seus programas da mesma forma que em 1991. É claro que seu pacote de software foi bastante aprimorado em comparação com aquela época, mas essas melhorias são geralmente complementares e não obscurecem o propósito de ser uma ferramenta de programação em si. Este propósito é: tornar o Visual Basic mais fácil e rápido Usado para projetar, escrever. e depurar excelentes aplicativos orientados a objetos.
A versão atual do Visual Basic 6.0 apresenta WebClasses como um meio simplificado para configurar aplicativos robustos orientados a rede. Na verdade, as WebClasses oferecem um grande número de maneiras de portar programas para a Internet por meio de ferramentas comuns. (Para uma discussão detalhada sobre a escalabilidade do Visual Basic 6.0 na rede, consulte "Advanced Basics Column" de Ted Pattison (publicado pela Microsoft Internet Developer em outubro de 1999)
Recentemente tive a oportunidade de conhecer algumas das novas melhorias planejadas para a próxima versão do Visual Basic. A principal melhoria está na capacidade de armazenamento, que triplicou a capacidade de armazenamento disponível para os desenvolvedores. A próxima versão do Visual Basic está planejada para apresentar um recurso no ambiente Visual Studio® chamado WebForms. WebForms representa uma nova solução de rede baseada em componentes. Os webservices se tornarão uma nova solução baseada em XML que publica funções de processamento de eventos de nível intermediário por meio de protocolos de rede padrão. Ao mesmo tempo, a linguagem Visual Basic incluirá algumas construções que os desenvolvedores há muito solicitam, tornando o Visual Basic consistente com os hábitos de programação orientada a objetos familiares aos usuários de C e Java.
Essas melhorias serão anunciadas na próxima versão beta do Visual Basic. Aqui darei alguns trechos de código, mas não a solução completa. Então, com o que há para se preocupar agora? É simples, desde que você esteja determinado a aproveitar as vantagens desses novos recursos, agora você pode projetar seus programas por meio desses métodos específicos e obter os melhores exercícios práticos para ajudá-lo a fazer uma transição tranquila para a próxima versão do Visual Basic. Mesmo que não o faça, você não terá nada a perder, desde que organize seus programas futuros de acordo com os princípios que estabeleço no final deste artigo.
VisualStudioWebForms
A próxima versão do Visual Basic fará parte do ambiente de desenvolvimento do Visual Studio e provavelmente apresentará o novo conceito de WebForm aos desenvolvedores web. O objetivo da introdução do conceito WebForm é expandir a função de acesso aleatório do Visual Basic para que o Visual Basic possa ser aplicado à escrita de programas de rede que têm um impacto cada vez mais amplo. Os desenvolvedores que usam qualquer linguagem no Visual Studio podem compartilhar esses WebForms do Visual Studio.
Uma página WebForms consiste em duas partes: um arquivo HTML que implementa a interface visual da página WebForms e um arquivo de origem que manipula eventos de página WebForms. Dado que um terço do desenvolvimento actual baseado no ambiente Visual Basic é orientado para redes, a Microsoft planeia melhorar ainda mais as capacidades nesta área. Na próxima versão do Visual Basic, você poderá criar WebForms da mesma forma que usa o Visual Basic para gerar formulários hoje. Você terá uma caixa de ferramentas de controles da web. Você pode arrastar e soltar controles diretamente no editor HTML para usá-los. Você só precisa definir suas propriedades e escrever algum código apropriado. (Ver Figura 1). Em resumo, você pode executar essas tarefas da mesma forma que usaria o Visual Basic para gerar formulários. Você terá designs de formulários e código compilado totalmente compatíveis com IntelliSense®, formato WYSIWYG. Portanto, desde que você saiba escrever aplicativos usando Visual Basic, WebForms permite que você se torne um desenvolvedor web sem alterar em nada a maneira como você trabalha.
Figura 1Construindo umWebForminQuatroEtapas
WebForms é executado no servidor e transmite apenas formulários em formato HTML aos usuários. Assim como o ActiveServerPage(asp), não é um navegador específico nem um aplicativo baseado em WebForm, mas todo o processo também é executado no servidor; Na verdade, você está executando um programa que gera uma interface no formato HTML 3.2 para usuários remotos. Ao contrário das páginas da web ASP, esses códigos são compilados e executados em vez de interpretados, portanto, a velocidade de execução é significativamente melhorada.
O objetivo de projetar WebForms é obter os melhores recursos de ASP e WebClass. Você pode usar qualquer linguagem da família Visual Studio para gerar WebForms. Assim, você pode usar o que sabe para escrever aplicativos da Web eficientes e orientados para servidor.
Serviços da Web
Webservices é a segunda grande melhoria realizada pelo sistema de ferramentas de desenvolvimento do Visual Studio. Basicamente, um Webservice é um manipulador de eventos de camada intermediária publicado por meio de um protocolo de rede padrão. Como usam HTTP como mecanismo de transporte (veja a Figura 2), eles podem se comunicar através de firewalls. Você pode simplesmente construir vários Webservices em um aplicativo Web, desde que as URLs sejam atribuídas adequadamente. Quando o programa está em execução, as chamadas entre todos esses componentes internos são automaticamente empacotadas e chamadas através da interface XML. Os desenvolvedores podem escrever e usar Webservices em qualquer plataforma e em qualquer idioma. Se precisar de confidencialidade, você pode usar SecureSocketLayer (SSL) ou tecnologia de verificação padrão.
Figure2WebservicesArquitetura
Se alguma dessas coisas está começando a lhe parecer familiar, é um bom lugar para começar. O mecanismo usado para transferir dados entre componentes é o SOAP, o Simple Object License Protocol. DonBox apresentou o SOAP em detalhes na MSDN™ Magazine publicada em março de 2000.
Todos esses novos recursos foram projetados para permitir que os desenvolvedores de aplicativos da Web componham serviços da Web existentes e reutilizáveis, para que possam escrever seus aplicativos com mais rapidez, sem precisar escrevê-los novamente a cada vez. Isso dará início a uma nova era de provedores de código de programa e desenvolvedores de programas.
Utilizando a próxima versão do Visual Basic, em breve você poderá publicar e implementar as funções em um projeto específico na forma de Webservice. Você pode estar familiarizado com o processo de tornar pública uma classe do Visual Basic. Haverá um novo logotipo na próxima versão do Visual Basic, chamado temporariamente de webpublic. Isso significa que o programa será publicado como um Webservice. Ele não só pode ser usado por projetos locais que precisam dele através da interface COM, mas também pode servir qualquer programa de rede que faça referência ao seu endereço URL. Assim como você pode adicionar uma referência a um objeto público em um novo projeto, você pode adicionar uma referência a um programa de rede e usá-lo como se fosse um programa local.
Claro, o mecanismo operacional é um pouco diferente. O Visual Basic pode resolver referências a objetos locais por meio da interface COM. Ao adicionar uma referência a um serviço de rede ao seu aplicativo, o objeto remoto gerará automaticamente a definição de interface e a enviará ao ambiente de desenvolvimento do Visual Studio usando o protocolo SOAP. Embora eles sejam gerados no formato XML, você não precisa fazer nenhum trabalho de conexão sozinho. VisualBasic cuidará disso automaticamente para você. Depois de receber a definição da interface, você poderá usar o IntelliSense como se tivesse escrito um código que referenciasse o objeto.
Aqui está um exemplo simples. Em alguns casos, você pode querer escrever esta função chamada Seahawks, que pode ser semelhante ao seguinte código:
PublicFunctionSeahawks(ByValopponentAsString)AsString
Seahawks = "perder"
Função Final
Se o projeto que você construir incluir essa função, o Visual Basic gerará automaticamente uma descrição em formato XML dessa função e a publicará na Internet.
<?xmlversão='1.0'?>
<methodshref='http://julian/Football/Teams'>
<methodname='Seahawks'href='Seahawks'>
<solicitação>
<paramdt='string'>oponente</param>
</request>
<responsedt='string'/>
</método>
</métodos>
Este arquivo XML será usado para descrever as funções do Seahawks. Se você estiver usando o ambiente de desenvolvimento do Visual Studio, poderá arrastar e soltar qualquer Webservice publicado diretamente no aplicativo para criar uma nova classe. Se você quiser chamar um Webservice em qualquer lugar da Internet, basta criar uma instância da classe que contém o Webservice e então chamar seus métodos publicados.
Quando a função Seahawks é chamada, ela se comunica automaticamente por meio de pacotes XML. Se você estiver usando o Microsoft® Internet Explorer 5.0 (que inclui suporte XML), você pode tentar executar esta função no seu navegador. Você também pode chamar essa função usando um endereço URL da seguinte forma:
http://julian/webservice1/component1.methods/Seahawks?opponent=Miami
Ele retornará dados no formato XML da seguinte forma:
<?xmlversão="1.0"?>
<Response>perder</Response>
Para facilitar o desenvolvimento de Webservices, o Visual Basic introduzirá um novo tipo de objeto, WebService. Você pode projetar e implantar seu WebService em um serviço remoto tão simplesmente quanto criar um arquivo DLL local agora.
Melhorias de idioma
Há muito tempo existe um relacionamento tenso entre programadores que preferem Visual Basic e programadores que preferem outras linguagens mais "sofisticadas". Mais de uma vez, defendi minha linguagem de programação favorita contra acusações de que ela é uma “linguagem de brinquedo” e que o Visual Basic não possui recursos de OOP.
Ok, então adivinhe o que aconteceu? A próxima versão do Visual Basic finalmente acabará com suas reclamações. A Microsoft planeja adicionar três recursos principais à programação orientada a objetos: herança, polimorfismo e sobrecarga. Isso não é tudo! Construções adicionais, incluindo manipulação estruturada de erros e navegação, também serão introduzidas na linguagem Visual Basic.
O recurso de herança permite projetar uma classe base e, em seguida, escrever algumas classes derivadas que herdam as funções da classe base. Isso pode economizar tempo e melhorar a capacidade de reutilização do programa. Por exemplo, você escreve uma classe base chamada BaseClass, que possui uma função:
FunçãoGetCustomerName()
'Dosomestuff
Função Final
Agora você deseja escrever outra classe que possa chamar a função GetCustomerName da classe base, assim como sua própria função. Qual era o método antigo? Isso não era possível no passado. No entanto, o novo método agora requer apenas a inserção de uma linha simples acima da nova classe:
HerdaBaseClass
FunçãoGetCustomerID()
'Dosomestuff
Função Final
Escrever duas ou mais funções com o mesmo nome, mas identificadores diferentes, é chamado de sobrecarga. Até certo ponto, o Visual Basic implementou sobrecarga na conversão de tipos internos e na configuração de propriedades ao chamar funções. Compare as duas linhas a seguir de código válido do Visual Basic:
Texto1.Text="7"
Texto1.Texto=7
Em ambas as chamadas, o texto em Text1 será definido como a string "7". Esta é uma chamada sobrecarregada porque o Visual Basic sabe como lidar com os diferentes tipos de dados de entrada. Ele os trata como variáveis e os converte automaticamente. Quando você chama algumas funções com tipos de parâmetros claramente definidos, o Visual Basic também executa a mesma conversão. As duas chamadas de função a seguir:
a=SetVal("Este")
a=SetVal(7)
As seguintes funções podem ser chamadas corretamente:
FunctionSetVal(xAsString)
Formulário1.Texto1.Text=x
Função Final
Como o Visual Basic já pode transferir muitos tipos de variáveis diferentes, por que você precisa de funções de sobrecarga? Isso ocorre porque embora uma única função possa atualmente lidar com vários tipos de dados, ela não pode produzir ações diferentes com base nos diferentes tipos de dados transmitidos. Em vez disso, compare as duas funções a seguir:
FunctionGetCustomerID(customerasstring)AsInteger
'Procurar ID do cliente com base no nome do cliente
Função Final
FunçãoGetCustomerID(purchaslong)AsInteger
'ProcurarIDdoclientebaseadonacompraSEOrder
Função Final
Através da sobrecarga, você pode implementar funções com base no tipo de dados de entrada. Isso é muito importante para a próxima versão do Visual Basic, pois possui um novo recurso - proteção de tipo de dados padrão. Geralmente a conversão automática de variáveis é benéfica, mas você pode imaginar que às vezes pode causar problemas. Por exemplo, no exemplo anterior de SetVal, o que aconteceria se você desejasse transmitir o caractere 7 em vez da string “7”? A próxima versão do Visual Basic detectará esse erro automaticamente. (Se o seu código for baseado na funcionalidade anterior sem reconhecimento de tipo do Visual Basic, esse recurso será desabilitado)
Finalmente, o polimorfismo é o processo de redefinição de uma classe já definida. Por exemplo, você deseja escrever uma classe derivada de BaseClass, mas deseja reescrever a função GetCustomerName. Na próxima versão do Visual Basic, você pode implementar esta definição de classe usando um novo método semelhante ao seguinte: (Nota: a sintaxe final depende da versão oficial)
HerdaBaseClass
FunçãoGetOrders()
SubstituiFunctionGetOrders()
•••
Função Final
Mais recursos de sintaxe
A próxima versão do Visual Basic pode ter mais do que apenas as melhorias orientadas a objetos mencionadas acima. Há também geração de threads, tratamento de erros e muitas novas melhorias há muito esperadas para escalabilidade e reutilização.
Atualmente, o Visual Basic dá suporte ao modelo de thread de apartamento. Embora esse modelo forneça eficiência real para o desenvolvimento de aplicativos, ele não é o ideal. A próxima versão do Visual Basic terá melhorias nesta área. Ele adota um modelo freethreaded, que será útil ao escrever aplicativos de rede escaláveis. O Visual Basic também incluirá algumas construções de sintaxe que você pode usar para gerar vários threads. As operações típicas que ocorrem em threads são as seguintes:
set=NewThread(NewThreadstart
(AddressOf(BaseClass.Function1))
Neste exemplo, você pode ver que a próxima versão do Visual Basic possui a estrutura AddressOf, que é usada para retornar o endereço da função. Você não é mais forçado a pular funções de API que exigem ponteiros de função! Se precisar de uma chamada de retorno, você pode utilizar isso para fazer isso.
Outra melhoria planejada é o tratamento estruturado de erros. Não muito tempo atrás, o Visual Basic exigia que você inserisse diversas instruções OnError em seu código. Durante anos, fiquei desconfortável em inserir tantas instruções GOTO. Essas declarações me alertaram repetidamente para não usá-las novamente! Agora vamos enfrentar o problema - precisamos de um mecanismo de tratamento de erros.
A próxima versão do Visual Basic centralizará o tratamento de erros. VisualBasic suportará a construção try...catch...finalmente como essas linguagens "nobres". Você pode colocar uma sub-rotina contendo tratamento de erros no topo do seu código. Aqui está um exemplo de implementação de tratamento de erros:
SubSafeWrite()
Tentar
Abra "Arquivo de teste"
•••
Escreva#1
Pegar
Mate o "Arquivo de Teste"
Finalmente
Fechar#1
FimTentar
Fim Sub
Existem outras melhorias interessantes com as quais os usuários atuais do Visual Basic se familiarizarão. Na próxima versão do Visual Basic, você pode inicializar variáveis ao mesmo tempo em que são declaradas:
Dimaasinteiro = 10
Você também pode criar e inicializar um novo objeto em uma expressão. Você também pode compartilhar variáveis por meio de classes. Finalmente, mas não só, o conceito de herança se estende à base da interface do usuário do projeto. Uma crítica típica ao Visual Basic é que ele dificulta a criação de muitos formulários diferentes baseados na mesma base. (Isto é muitas vezes um requisito num ambiente de desenvolvimento conjunto). Na próxima versão do Visual Basic, você poderá fazer isso através de tipos de modelos.
Essas melhorias foram esperadas há anos. Por quê? vamos ver. As comunicações do Visual Basic (que venho fazendo há quase uma dúzia de anos) tornaram-se cada vez mais complexas, muito além da primeira versão em 1991. Visual Basic foi originalmente usado para o rápido design e desenvolvimento de protótipos de ferramentas pequenas e portáteis em seus primeiros dias. Como resultado, o Visual Basic ganhou uma reputação (inesperada, na minha opinião) como uma "linguagem de brinquedo". Agora que claramente não é mais um brinquedo, qualquer um que diga isso está agindo por preconceito cego. Há agora um grande número de pacotes de software baseados em Visual Basic em vários campos. VisualBasic está evoluindo. No ano passado, no Center for Research, conversei com um desenvolvedor de software que estava escrevendo programas usando Web-Class que recebiam milhões de acessos por semana.
As mudanças na próxima versão do Visual Basic são surpreendentes. Se você deseja obter os benefícios que eles trazem, use-os. Se não quiser, você pode usar com segurança o que ainda está usando. No entanto, é bom saber que as funções que C e Java executam podem ser implementadas em uma linguagem como Visual Basic, que é muito mais fácil de usar do que C e Java.
Tendências futuras de desenvolvimento
Que tipo de impressão essa apresentação prévia deixou em você? É uma boa pergunta, mas você pode encontrar a resposta para ela. No ano passado, podemos ver claramente as mudanças no desenvolvimento ASP. Esses programas de desenvolvimento geralmente consistem em alguns scripts ASP fáceis de ler e todo o programa é executado com base nesses scripts. Como o ASP interpreta e executa todo o código do script, as pessoas descobrem gradativamente as limitações inerentes dessa tecnologia ao montar cada componente. Estou ouvindo cada vez mais desenvolvedores dizerem que desejam separar completamente seus manipuladores de eventos do código de script e implementá-los em um modelo de compilação mais rápido, escrito em C++ ou Visual Basic, por meio de interface COM para montagem.
Por todos os motivos que você possa imaginar, o Visual Basic pode satisfazê-lo. Na verdade, projetar componentes com Visual Basic não é mais difícil do que usar VBScript ou JScript®. Você pode escrever código que seja executado com mais rapidez e atenda facilmente aos seus requisitos. Quando a próxima versão do Visual Basic for lançada, você poderá usar o Visual Basic para gerar objetos orientados à rede que sejam compatíveis com ASP. Em suma, seguir o caminho da combinação de componentes será considerado a melhor escolha agora e no futuro.
Como mencionei anteriormente, há uma ampla base de aplicativos orientados à Internet escritos em Visual Basic (e WebClasses). O problema é que a maioria dos aplicativos baseados em WebClasses não são bem projetados. Eles não distinguem bem entre as diferentes camadas da aplicação, confundindo processos de camada intermediária com interfaces de usuário baseadas em DHTML.
A próxima versão do Visual Basic apresentará WebClasses, que são ferramentas cuidadosamente selecionadas para desenvolvimento web. Porque é mais escalável, mais poderoso e verdadeiramente independente de linguagem. Funciona em todas as ferramentas do Visual Studio. Se você prestar atenção a algumas regras básicas do desenvolvimento multicamadas, poderá fazer essa transição facilmente. Atenção especial deve ser dada à separação do processo da camada intermediária e do processo da camada de exibição. É altamente recomendável consultar a arquitetura Windows® DNA2000 ao realizar essas tarefas. As principais funções de processamento de eventos devem ser concluídas na camada intermediária e você pode usar vários componentes escritos em sua linguagem compilada favorita para implementar essas funções. Esses componentes são então montados em um arquivo de script ASP para que possam trabalhar juntos. Seria ideal se você colocasse a maior parte da sua lógica em objetos de evento em vez de scripts. Não só é uma boa ideia para futuras transições para Webservices, como também é uma prática que vale a pena emular. ->