Pergunta

Eu vou escrever um aplicativo de banco de dados para o campo de trabalho I para. Estou pensando em escrever-lo em C # com uma interface do Windows GUI, mas usando um navegador como o aplicativo está parecendo mais e mais appelaing por várias razões. O que eu estou querendo saber é por que alguém não iria escolher para escrever um aplicativo como um aplicativo web. Ex. O botão de volta pode causar-lhe alguns problemas. Existem outras coisas que ayone pode pensar?

Foi útil?

Solução

Há uma abundância de contras:

  • velocidade e capacidade de resposta tendem a ser significativamente pior
  • widgets UI complicado (como controles de árvore) são mais difíceis de fazer
  • renderização de gráficos de qualquer tipo é bastante complicado, gráficos 3D é ainda mais difícil
  • Você tem que mexer com logins
  • A centralização de servidores clientes meios sempre precisam de acesso à rede
  • As restrições de segurança podem causar problemas
  • incompatibilidades navegador podem causar um monte de trabalho extra
  • convenções de interface do usuário são menos bem definidas na web - usuários podem achar que é mais difícil de usar
  • armazenamento do lado do cliente é limitado

A questão é .. fazer o suficiente daqueles aplicar ao seu projeto para fazer web a escolha errada?

Outras dicas

Uma coisa que não foi mencionado aqui é o nível de complexidade e conhecimento necessário para gerar uma boa aplicação web. O problema é a menos que você está fazendo algo muito simples, não há conhecimento "Single" ou tecnologia que vai para essas aplicações. Por exemplo, se você fosse escrever um pedido de alguma plataforma cliente-servidor .. você pode se desenvolver em Java ou C ++. Para uma aplicação web complexa você pode ter que ter experiência em Java, Java Script, HTML, Flash, CSS, Ajax, SQL, J2EE .. etc. Também os componentes de um aplicativo baseado na web também são mais numerosos, Web Application Server, HTTP server, banco de dados, navegador .. são componentes típicos, mas poderia haver mais .. um aplicativo cliente-servidor é típica apenas o que diz .. uma aplicação cliente e um aplicativo de servidor. Minha experiência e preferência pessoal não é baseado na web .. baseado na web é ótimo para muitas coisas. Mas mesmo que eu sou um arquiteto de TI para uma empresa líder que está completamente imerso na Web Apps como solução para tudo ... Os contras são muitos ainda .. eu faço coisa que a tecnologia vai evoluir e os contras vai desaparecer ao longo do tempo embora .

Essencialmente as limitações reais são apenas através da plataforma, sendo o browser. Se você tem que conta para todos os navegadores em uso corrente que pode ser uma dor devido a diferentes graus de padrões em cada uma delas.

Se tiver o controle da qual navegador usar, que é todo mundo é em computadores que você controla no local, e dizer que você instalar o Firefox em todos eles, você poderia, então, aproveitar os mais recentes padrões de JavaScript e CSS para seu pleno na sua entrega de conteúdo.

[editar] Você também pode olhar para opções como o Adobe Runtime ou "AIR" como uma opção que lhe permite de códigos de front-end com opções tradicionais baseados navegador como xhtml / css / javascript, flash / flex e têm o integrado backend-se agarrado ao seu banco de dados on-line, apenas a também fornecer a funcionalidade de um aplicativo de desktop tradicional, ao mesmo tempo.

A maior diferença e desvantagem que vejo com aplicações web é o gerenciamento de estado. Desde que a web é, por natureza, apátridas cada coisa que você quer manter tem de ser enviado e para trás a partir do servidor com cada pedido e resposta. Como armazenar de forma eficiente e recuperá-lo numa questão em relação ao tamanho da página e desempenho é difícil de fazer às vezes. Também o fato de que não há nenhum padrão real (pelo menos não que todos adere) para navegadores faz consistência realmente .......... divertido.

Você precisa ter um acesso à rede para o servidor que você está indo para ter o aplicativo web em (se não vão ser vários usuários para o aplicativo - que é normalmente o caso).

Na verdade, há mais prós do que contras - se você pode dar alguns detalhes sobre sua aplicação, podemos ajudar um pouco mais ...

Depende completamente os requisitos do seu projeto. Para a maior parte, não há aplicações web muito não pode fazer estes dias. Evidentemente, certas aplicações fazer pertencem na área de trabalho como navegadores (enquanto actualmente avançando, e rapidamente), ainda não está completamente lá ainda. Desde o advento das aplicações tais como Google Docs , Gmail

Não há muito que você -cannot- fazer na web. Se você estiver criando um concorrente World of Warcraft no entanto, a web não é certamente a solução ideal. Mais uma vez, infelizmente, precisaríamos de mais conhecimento sobre o aplicativo que você está construindo para o acampamento. A melhor parte sobre a web é que qualquer pessoa com um navegador pode usar o aplicativo.

aplicações Web processamento delegado para uma máquina remota. Dependendo da quantidade de processamento, isso pode ser um golpe. Considere-se um editor de fotos que é um aplicativo web.

aplicações Web também não pode lidar com um monte de dados indo e voltando de e para um cliente. Você pode assistir a vídeos online .. quando é comprimida. Será algum tempo antes de vermos qualquer software de edição de vídeo baseado na web.

Compatibilidade do navegador também é um aborrecimento. Você não pode controlar o look-and-feel da aplicação de 100%.

Vaibhav tem um ponto bom. Qual é a sua aplicação?

Um dos principais é o tempo ocioso para migrações ... usuários não vai esperar o aplicativo para ser baixo, nunca, mas realisticamente que terá de ser baixo para grandes atualizações. Ao fazer isso com um aplicativo de desktop, o administrador (ou sistemas de usuário final) de usuários está no controle de quando as atualizações acontecem; com um aplicativo on-line, eles não são.

Para aplicações que têm grandes volumes de dados, o desempenho pode ser um grande problema, como você está armazenando um grande número de dados dos usuários de forma centralizada, o que significa que o desempenho IO não será tão bom como seria se você lhes deu todo um laptop.

Em escalabilidade geral dá problemas para um aplicativo baseado em servidor. Os aplicativos de desktop escala muito bem.

Você pode fazer muita coisa com um aplicativo baseado na web, mas é muito mais fácil de fazer certas coisas com um cliente de espessura:

  • Performance:. Você tem acesso simples para o pleno poder de CPU do cliente
  • Capacidade de resposta:. A interatividade é fácil e rápido
  • Gráficos:. Você pode facilmente usar bibliotecas gráficas como o DirectX e OpenGL para criar gráficos rápido impressionantes
  • Trabalhar com arquivos locais
  • Peer-to-peer

Decidir se uma aplicação web é uma boa abordagem depende do que você está tentando alcançar. No entanto, aqui estão alguns contras mais gerais de aplicações web:

  • integração real com aplicativos de desktop (por exemplo, Outlook) é impossível
  • Arrastar e soltar entre seu aplicativo e o ambiente de trabalho / outros aplicativos em execução

Com uma aplicação web, há mais preocupações com a privacidade, quando você está armazenando os dados do usuário em seus servidores. Você tem que se certificar de que você não loose / divulgá-la e seus usuários tem que estar confortável com a idéia de armazenar esses dados em seus servidores.

Além disso, há muitos problemas de segurança, como ataques man-in-the-middle, XSS ou injeções SQL.

Você também precisa ter certeza de que você tem o poder de computação suficiente e largura de banda em questão.

"Ex. O botão de volta pode causar-lhe alguns problemas."

Você tem que ser específico sobre este assunto. Muitas pessoas cometem erros fundamentais em suas aplicações web e introduzir erros na forma como eles lidam com transações. Se você não usar "Redirect após Post" (também conhecido como Post-Redirect-get , design PRG), então você criou um bug que aparece como um problema com o botão de volta.

A declaração cobertor que o botão voltar em apuros é improvável que seja verdade. Um exemplo específico seria esclarecer sua pergunta específica sobre isso.

O botão volta realmente não é um grande problema se você criar seu aplicativo corretamente. Você pode usar AJAX para manipular partes da página atual, sem adicionar itens no histórico do navegador (desde que a página em si não vai mudar).

O maior problema com aplicações de web design tem a ver com o estado e os desafios que precisam ser programadas ao redor. Com uma aplicação desktop, estado é fácil de manusear, você pode deixar uma conexão banco de dados aberto, bloquear o registro e espera para o usuário para fazer as mudanças e comprometer. Com uma aplicação web, você pode bloquear o registro ... mas então o que se o usuário fechar o browser? Estas coisas devem ser superados no projeto de sua aplicação.

Ao projetar um aplicativo web, certifique-se de que cada viagem para o servidor "está sozinho" e fornece uma resposta completa. Sempre reinicializar suas variáveis ??antes de executar qualquer trabalho e nunca assumir nada. Um dos desafios Corri para uma vez foi puxar "páginas" de dados de volta grade para o usuário. Em um sistema ocupado real, com recorde de adições / modificações acontecendo em tempo real, a navegação do usuário de uma página para que variar muito, às vezes até mesmo resultando em ver o mesmo conjunto de alguns registros como novas adições foram adicionados em frente da consulta .

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top