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 :

  1. Afinal você quer desenvolver para web ou para desktop ?
  2. Sua aplicação é para uma grande corporação ou para um pequena empresa ?
  3. Qual a complexidade de sua aplicação ?
  4. Sua aplicação vai atuar em ambiente crítico ?
  5. 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 :

- Interface indicada : Web

- 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

Web : Desvantagens

Desktop : Vantagens

Desktop : desvantagens

Deu para chegar a alguma conclusão ? Não !!! então eu vou relacionar alguns fatores que podem ajudar sua decisão. 

  1. Seus clientes estão familiarizados e usam com naturalidade um Web Browser .(Netscape , IExplorer) ?
  2. Seus clientes estão distribuídos remotamente na web ?
  3. Sua aplicação é do tipo : B2B - Business to Business ?
  4. A quantidade de dados a ser informada é pequena ?
  5. A quantidade de dados a exibir é pequena ?
  6. A quantidade de campos a exibir na tela é grande ?
  7. A interface gráfica da aplicação é pesada ?
  8. Sua aplicação vai ser usada somente um  local (departamento , estabelecimento,etc.) ?
  9. Sua aplicação vai ser atualizada com frequência ?
  10. Você tem mão de obra para o desenvolvimento web ?
  11. O desempenho da aplicação é uma questão secundária ?
  12. Seus clientes irão acessar sua aplicação de lugares diferentes ?
  13. O processamento envolve uma grande quantidade de dados ?
  14. Como sua aplicação deverá ser atualizada ? Distribuição de CD ou no servidor ?
  15. 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 :

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