|
|||||||||||
|
.NET e o desenvolvimento de software
Por um lado, o .NET permite o desenvolvimento de aplicativos muito semelhantes aos que desenvolvemos hoje. No caso aplicativos para rodar em servidores Web, criando páginas HTML, o ASP.NET traz grandes ganhos de produtividade, que por si só provavelmente justificariam a adoção da nova plataforma. Por outro lado, o .NET foi bolado para você desenvolver uma nova geração de software, algo que está apenas surgindo agora. Esta nova geração de software traz as seguintes características principais:
Uma Informática mais simples Quando os automóveis se popularizaram, dirigir um carro era coisa para mecânicos. Não precisamos nem ir tão longe quanto o Ford Modelo T do início do século, um dos carros mais produzidos do mundo. Em 1967 meu pai tinha um Gordini. Antes de tomar café, ele dirigia-se ao carro com uma agulha para limpar o carburador, um litro de água para completar o nível radiador e deixava o carro funcionando por uns 15 minutos, senão ele não ia a lugar nenhum. Esses procedimentos poderiam parecer o preço natural a pagar por quem quisesse usufruir da mobilidade proporcionada pelo carro. Quem tivesse habilidades mecânicas talvez até "achasse divertido" estas "atividades extras" e sentir-se-ia valorizado pela própria "esperteza técnica". Já quem não fosse mecânico, era obrigado a suportar contínuos desaforos do carro se quisesse faze-lo funcionar. Mesmo os "mecânicos" tinham que engolir sapos: uma vez fomos para o Rio de Janeiro com o Gordini e simplesmente não conseguimos chegar; voltamos para São Paulo no guincho! Hoje em dia o carro é composto de duas peças: uma grande que você deixa parada na garagem e outra pequena que você coloca no bolso. Você junta as duas e pronto! O carro até tem as suas regras de uso (você precisa saber dirigir e colocar gasolina de vez em quando), mas definitivamente você não precisa ser mecânico. Hoje na informática ocorre algo semelhante ao que acontecia com os automóveis: para usar um computador, você deve ou ser um pouco "mecânico" e ainda suportar freqüentes desaforos sob a forma de "travamentos", "instalações de device-drivers", "upgrades" e outras tantas chateações. O leitor deste artigo deve encaixar-se na categoria de "mecânico" e não se importar tanto assim com estes "probleminhas", talvez até achando-os "naturais". Mas a maioria da população teme, com razão, estas maquininhas que tanto podem ser usadas para obter informações fantásticas como parar de funcionar sem prévio aviso. Uma alternativa é usar dispositivos como assistentes digitais que não fazem desaforos, mas não têm a flexibilidade de poder instalar qualquer software ou hardware, as grandes vantagens dos micros. Enquanto os micros estão isolados, fica realmente difícil entregar robustez e flexibilidade juntas. A internet abre a possibilidade do próprio dispositivo trazer automaticamente softwares, "device-drivers", atualizações de programas, diagnósticos e back-ups eficazes. O Windows tem um recurso deste tipo no site de atualizações em http://windowsupdate.microsoft.com. Mas o Windows traz alguns obstáculos para esta visão poder realmente funcionar: as instalações e desinstalações são complicadas, o "registry" é frágil, o controle de versões de DLLs simplesmente não existe e ainda um programa executável pode danificar a instalação ou roubar informações. O .NET resolve todos estes problemas:
Qualquer lugar, qualquer hora e qualquer dispositivo Na medida que colocarmos os dados dos usuários e as informações de configuração em servidores centralizados, poderemos acessá-las muito facilmente de uma infinidade de lugares e equipamentos. Pode ser no micro de seu vizinho, pode ser em um "handheld" dotado de conexão Internet sem fio. Este é um tipo de recurso muito poderoso para qualquer um, desde um vendedor consultando estoque da empresa no seu carro até um médico em uma outra cidade na qual você sofreu um acidente consultando seu prontuário. Os executáveis .NET não estão amarrados a nenhuma CPU ou sistema operacional. Eles contém código em uma "linguagem intermediária", chamada de "IL" que é compilado em tempo de execução e armazenado em um cache para posterior reuso sem a necessidade de nova compilação. As "funções de biblioteca" como acesso a arquivos e conexões de rede fazem parte do ".NET Framework" e estão presentes em todos os dispositivos. Isto quer dizer que um executável .NET pode rodar em qualquer CPU e sistema operacional para o qual o runtime tenha sido desenvolvido. A Microsoft promete portar o .NET para os seus próprios sistemas operacionais, mas como o grosso da especificação foi submetida para um órgão de padronização internacional (ECMA - http://www.ecma.ch), é possível que surjam outras versões desenvolvidas por terceiros. Na verdade, conheço pelo menos uma destas iniciativas chamada "Portable .NET" (http://www.southern-storm.com.au/portable_net.html). É claro que a Microsoft prefere que você use as versões dela, mas esta decisão deve ser feita por você e baseada nos méritos técnicos, não em imposições contratuais ou legais. A Internet é a plataforma Hoje em dia é fácil identificar quando usamos o computador "com Internet" e "sem Internet". No futuro, isso será cada vez mais difícil. Na medida em que passemos a usar a Internet como repositório de dados, nossos aplicativos passarão a exigir a Internet. Teremos diversos dispositivos como micros, telefones celulares e "handhelds" acessando as informações centralizadas e baixando software e atualizações automaticamente e na medida que for necessário. Em um futuro próximo, falar de "informática sem internet" será uma contradição em termos, algo como "subir para baixo". O sistema operacional será cada vez mais um componente que só interessa para o fabricante do hardware. Você não irá mais "instalar o sistema operacional"; ele virá na máquina e você não irá trocá-lo da mesma forma que você não troca o motor de seu carro. O .NET tem vários recursos para permitir esta grande integração com a Internet. Na verdade, qualquer executável .NET já está pronto para rodar na Internet:
Estes recursos estão disponíveis para qualquer tipo de aplicativos. Um programa VB.NET (Visual Basic) já está pronto para tirar vantagem da Internet, sem modificações adicionais! Software como serviço Ao contarmos com a presença da Internet podemos elaborar o software de forma que ele rode parte no cliente e parte no servidor. Na medida que o componente do servidor é essencial, podemos mudar a visão de "vender caixinhas" para "vender assinaturas". Não só isso resolve o problema da pirataria (você não consegue "piratear o servidor"), como o modelo de receita pode ser mais adaptável às necessidades do cliente. Por exemplo, o cliente paga um pouco cada vezs que usa ao invés de fazer um grande desembolso de aquisição. Você pode vender uma "licença perpétua da versão X com suporte limitado a 3 meses", mais ou menos como fazemos hoje. Mas os clientes provavelmente irão preferi pagar uma assinatura mensal com direito a suporte e upgrades. Na verdade, esse segundo modelo já é usado hoje por parte do mercado: os softwares de "contabilidade" e "ERP" são normalmente comercializados nesse modelo. Você poderá até mesmo vender uma licença válida "por 5 dias" ou "pagando por execução". Os "WebServices", o ADO.NET e o amplo suporte a XML permitem que a criação destes aplicativos "fragmentados" seja bastante fácil. Criar aplicativos que colaborem com outros aplicativos, mesmo rodando em outras empresas, é bastante simples. E os concorrentes? Esta visão da Internet como repositório central de dados é comum a outros fornecedores. A diferença da visão da Microsoft é que enquanto seus concorrentes apregoam uma "volta ao passado" baseada em poderosos servidores centrais e terminais mais ou menos burros, a visão da Microsoft é de que os dispositivos remotos serão extremamente capazes e programáveis. Eles poderão fazer sofisticadas manipulações de áudio e vídeo, conexões "peer-to-peer", etc. A visão da Microsoft é pegar o "melhor dos dois mundos", aproveitando as vantagens dos servidores centralizados como repositório de dados com a flexibilidade dos dispositivos clientes. Apenas a Microsoft, com os maciços investimentos em desenvolvimento e penetração de mercado poderia oferecer uma solução tão poderosa e abrangente. Sob certos aspectos, a Microsoft tinha a obrigação de fazer isso para não ser engolida por outras soluções baseadas em terminais HTML que embora sejam mais pobres, apareceram antes. Aplicativos Web Mesmo que você não "compre" o discurso acima e planeje criar apenas softwares para rodar em conjunto com um navegador Web, o .NET traz um recurso de uso bem mais imediato: o ASP.NET. O ASP.NET é uma ferramenta RAD para a criação de aplicativos que rodam no servidor e interagem com terminais HTML. O ASP.NET traz grandes vantagens se comparado às outras formas de desenvolvimento para Web:
Conclusão A arquitetura .NET promete trazer uma não só uma grande quantidade de benefícios concretos para a criação tanto dos aplicativos nos modelos atuais, como também para uma nova geração de aplicativos baseados na Internet. Mauro Sant'Anna (mscatena@ig.com.br) tem softwares publicados no Brasil e exterior e utiliza profissionalmente a arquitetura ".NET" desde seu lançamento em julho de 2000. Ele ministra cursos na MAS Informática (www.mas.com.br). |
|||||||||||
|