 Desenvolvendo 
para desktop ou para Web ?
 Desenvolvendo 
para desktop ou para Web ?
Recebo muito emails sobre a questão : Qual a 
melhor linguagem para desenvolver uma aplicação ? . 
A princípio pode até parecer uma pergunta fácil 
de responder , afinal , todos nós temos a nossa linguagem preferida , e, se você 
me faz esta pergunta eu naturalmente vou responder de acordo com minha 
preferência. 
A resposta fica mais difícil de ser dada se 
considerarmos a pergunta sob o ponto de vista estritamente técnico ; sob este 
aspecto as preferências devem ser postas de lado e muitos fatores devem ser 
levados em conta para que se chegue a uma resposta correta , correta não , eu 
diria a uma resposta mais adequada.
Vou elencar uma relação de fatores que podem 
nos ajudar a começar a pensar sobre o assunto :
  - Afinal você quer desenvolver para web ou 
  para desktop ? 
- Sua aplicação é para uma grande corporação 
  ou para um pequena empresa ?
- Qual a complexidade de sua aplicação ?
- Sua aplicação vai atuar em ambiente crítico 
  ?
- Sua aplicação vai rodar em qual ambiente ? 
  (monousuário , Cliente/Servidor, ambiente distribuído,etc.)
Quando você vai começar a desenvolver uma nova 
aplicação , você precisa decidir qual tecnologia irá usar. Existe uma grande 
variedade de linguagens que você pode usar ,  vários gerenciadores de banco 
de dados que você pode utilizar , e você precisa decidir também qual o estilo 
que vai usar na interface com o usuário.(se é que vai existir uma interface com 
o usuário).
A decisão sobre a linguagem de programação a 
ser usada deve ser tomada de acordo com as linguagens que você conhece(acho 
difícil você usar uma linguagem que não conhece) e dentre estas linguagens 
aquela que lhe dará o melhor desempenho para realizar a tarefa que sua aplicação 
se propõe. Uma escolha errada pode tornar mais difícil de alcançar o seu 
objetivo. Você pode escolher o C++ para desenvolver uma aplicação comercial de 
controle de estoques mas com certeza usando o Visual Basic a tarefa seria mais 
fácil de ser realizada. Desenvolver uma sistema operacional usando o Visual 
Basic não é impossível mas com certeza o C++ daria conta do recado com mais 
desenvoltura.
A questão do banco de dados a usar também é 
espinhosa ; as vezes você não  tem escolha , tem que usar o database que o 
seu cliente tem a disposição. Você precisa levar em conta a quantidade de dados 
e o tipo de dados que sua aplicação vai tratar e armazenar. A integração do 
banco de dados com outros Engines também é muito importante , pois se o banco de 
dados usado for totalmente proprietário você poderá ficar 'ilhado' e a merce de 
produtos de terceiros muito específicos e caríssimos.
Para escolher a interface com o usuário você 
deve pesar diferentes fatores antes de tomar a decisão final. Vejamos alguns 
cenários :
Tipos de aplicações :
  - Aplicação para E-commerce , 
  Portal
- Site para uma empresa na 
  internet
- Usuários remotos com acesso 
  a internet
- Aplicação distribuída entre 
  usuários remotos
- Interface indicada : 
Web
  - Aplicações gráficas
- Processadores de textos
- Planilhas eletrônicas
- Jogos
- Aplicação Cliente/Servidor 
  (duas camadas)
- Aplicações com integração 
  entre vários tipos hardwares (cameras, scanners, etc.)
- interface indicada : 
desktop
Assim como você não vai usar uma interface web 
para desenvolver a aplicação de controle de estoques da padaria do seu Manoel , 
também não vai usar uma interface desktop para criar um portal para uma grande 
instituição financeira na web.
Vantagens e Desvantagens
Vejamos quais as vantagens e desvantagens dos 
dois ambientes para melhor embasar nossa decisão.
Web : Vantagens
  - Interface HTML reconhecida por uma grande 
  gama de usuários já acostumados com o funcionamento dos navegadores.
- Desenvolvimento , manutenção e atualização 
  centralizada da aplicação. Você não precisa sair instalando sua aplicação em 
  diversos equipamentos diferentes. Basta colocá-lo no servidor para que os 
  usuários a acessem.(No caso do VB.NET você teria que distribuir o .NET 
  Framework para instalação nas máquinas dos clientes.)
- A exportação de dados entre usuários remotos 
  usando o protocolo HTTP é muito mais fácil do que usar outro protocolo.
- Escalabilidade no processamento. Se houver 
  necessidade de aumentar o poder de processamento , basta fazer isto no 
  servidor.
Web : Desvantagens
  - A interface HTML pode ser um problema pois 
  não há uma padronização entre os diversos navegadores e sua aplicação poderia 
  ser exibida de uma maneira diferente dependendo do navegador
- A entrada de uma grande massa de dados é 
  prejudicada na interface HTML pois não existe uma maneira padrão de criar 
  máscaras de entrada de dados.
- A inteface HTML não é rica em controles 
  gráficos e peca no quesito posicionamento. O visual da sua aplicação pode não 
  ficar tão elegante como você imagina.
- A integração com outros componentes não é 
  tão fácil com HTML.
Desktop : Vantagens
  - Uma rica variedade de controles para 
  interface com o usuário
- Um total controle sobre o posicionamento dos 
  controles na aplicação
- O desempenho para uma interface gráfica é 
  mais rápido em uma aplicação desktop que usa o processamento local.
- Uma interface com integração para com vários 
  hardwares é muito mais fácil.
Desktop : desvantagens
  - Uma interface gráfica muito carregada deixa 
  a aplicação mais pesada
- A integração com usuários
  remotos é mais sofrida
- A distribuição da aplicação é critica. Você 
  tem que instalar sua aplicação em diferentes tipos de máquinas , com 
  diferentes tipos de sistemas , drivers e periféricos.
- A manutenção e atualização de sua aplicação 
  requer um esforço extra.
Deu para chegar a alguma conclusão ? Não !!! 
então eu vou relacionar alguns fatores que podem ajudar sua decisão. 
  - Seus clientes estão 
  familiarizados e usam com naturalidade um Web Browser .(Netscape , IExplorer) 
  ?
- Seus clientes estão 
  distribuídos remotamente na web ?
- Sua aplicação é do tipo : 
  B2B - Business to Business ?
- A quantidade de dados a 
  ser informada é pequena ?
- A quantidade de dados a 
  exibir é pequena ?
- A quantidade de campos a 
  exibir na tela é grande ?
- A interface gráfica da 
  aplicação é pesada ?
- Sua aplicação vai ser 
  usada somente um  local (departamento , estabelecimento,etc.) ?
- Sua aplicação vai ser 
  atualizada com frequência ?
- Você tem mão de obra para 
  o desenvolvimento web ?
- O desempenho da aplicação 
  é uma questão secundária ?
- Seus clientes irão 
  acessar sua aplicação de lugares diferentes ?
- O processamento envolve 
  uma grande quantidade de dados ?
- Como sua aplicação deverá 
  ser atualizada ? Distribuição de CD ou no servidor ?
- Você precisa usar muitos 
  controles gráficos para criar a interface com o usuário ?
Creio que se responder com sinceridade estas 
questões a resposta já deverá estar na ponta da língua.
Afinal qual é o modelo de programação para Web 
? Na verdade o termo é usado para descrever como você pode projetar e 
desenvolver um programa que usa páginas Web em um Navegador . Geralmente você 
usa HTML. Acredite , embora a internet esteja em um estágio avançado de 
utilização e desenvolvimento existem poucas ferramentas para o desenvolvimento 
Web. Dentre elas vou citar a ASP.NET que é uma versão muito melhorada da ASP.(A 
ASP.NET trouxe muitos controles para formulários que são fáceis de usar e 
configurar.)
Ao desenvolver para web você deve ter em mente 
a diferença que existe em desenvolver para o desktop. Algumas diferenças básicas 
são :
  - Os aplicativos para Web dependem dos 
  recursos do Navegador usado para visualizar a aplicação. Como eles possuem 
  recursos diferentes , você não pode prever como sua aplicação vai se 
  comportar.
- A quantidade de código no servidor é maior 
  em aplicações web pois a visualização vem do navegador mas os demais recursos 
  estão no servidor.
- Uma aplicação web deve levar em conta a 
  instabilidade da WEB. O protocolo TCP/IP apenas manda o pacote se ele não 
  chegar ele manda novamente , se não chegar o cliente tem que pedir novamente.
  
- Criar páginas dinâmicas e formulários para 
  entrada de dados é mais trabalhoso que em aplicações desktop.
Descobriu o seu nicho de mercado ? Afinal você 
vai desenvolver para web ou para desktop ?
Seja qual for sua escolha você tem duas 
ferramentas poderosas a sua disposição :  
Web ->  ASP.NET      Desktop ->  VB.NET.
Até mais ...

José Carlos Macoratti