Pergunta

Ájax, Flexível e luz cinza são algumas maneiras de criar aplicativos da web mais interativos.Que tipos de fatores você consideraria ao decidir qual usar em um novo aplicativo da web?

Algum deles oferece melhor compatibilidade entre plataformas, desempenho, ferramentas para desenvolvedores ou suporte comunitário?

Foi útil?

Solução

Aqui está um rápido resumo de cada área (com muitos links úteis):

Compatibilidade entre plataformas

Ájax trabalha em qualquer navegador moderno que pode correr JavaScript.Flex requer Flash ou qualquer outra coisa que possa lidar SWFmas, uma vez instalado, é um freeride total no que diz respeito à compatibilidade.Luz prateada é complicado e incompreendido então considere cuidadosamente o seu base de usuários antes de embarcar nesta incursão da MS na corrida armamentista de aplicativos da web ricos.Lembre-se também de que o Silverlight ainda está em versão beta, portanto poderá se tornar mais amplamente utilizado e instalado no futuro, à medida que for desenvolvido.

Desempenho

Tenho medo de fazer muitas declarações sobre desempenho porque isso realmente depende de quanto você está disposto a otimizar e da natureza exata do seu aplicativo.Além disso, algumas pilhas de tecnologia nunca serão muito rápidas. Algumas pessoas por aí têm feito comparações, mas novamente, depende de muitos fatores (até mesmo a versão do navegador que você está testando!).Provavelmente é melhor escolher com base em outros fatores e otimizar assim que começar a desenvolver.

Ferramentas de desenvolvimento

Existem ferramentas de desenvolvimento "padrão ouro" para cada um dos três:

  • O Ajax tem opções basicamente ilimitadas, dependendo do restante de suas escolhas de tecnologia e arquitetura.As grandes questões que você realmente enfrenta são em quais bibliotecas confiar, e o Google deu uma resposta muito bem adotada com coisas como Kit de ferramentas da Web.Quando você vai direto ao assunto, é apenas XML e JavaScript, certo?

  • Flex é da Adobe e, assim como no desenvolvimento em Flash, é melhor você ficar com suas ferramentas caseiras porque - bem - eles estão estabelecendo os padrões à medida que avançam.

  • A Microsoft posicionou o Microsoft Expression Blend versões 2.0 e 2.5 para projetar a interface do usuário dos aplicativos Silverlight 1.0 e 2, respectivamente.O Visual Studio 2008 pode ser usado para desenvolver e depurar aplicativos Silverlight (da Wikipédia).

Suporte da comunidade

Há suporte oficial e não oficial da comunidade, corporativo e de código aberto para todas as três opções.Aquilo com o qual você já está integrado e que faz você se sentir mais em casa são coisas muito individuais, mas vou dar este conselho:fique com o que você sabe.Se você é um desenvolvedor MS e tem o MSDN como sua página inicial, provavelmente pensará que o Documentação do Silverlight e os fóruns são realmente úteis.Flex tem uma história muito semelhante;os fóruns são muito bons e se você já é uma pessoa do Flash, você se sentirá em casa com eles documentação e comunidade de usuários.

Por outro lado, o Ajax está basicamente em todo lugar porque você pode implementar muitas maneiras diferentes e usar muitas bibliotecas variadas.Cada biblioteca pode ter seus próprios fóruns para visitar e listas de discussão para obter respostas.

Mais uma vez, todos os três têm gigantes corporativos tentando promover as suas comunidades e obter o melhor apoio possível aos desenvolvedores, o que lhes dará maior participação de mercado no futuro.

Outras dicas

A escolha deve, na minha opinião, ser baseada principalmente na natureza do aplicativo que você estará construindo (por exemplo, se você precisar manipular gráficos vetoriais, o Ajax está praticamente fora de questão), mas aqui estão algumas diretrizes gerais:

Onipresença

  1. Ajax – Suportado por todos os navegadores modernos em todas as plataformas
  2. Flex -- Runtime (Flash Player) possui uma ampla base instalada para Windows, Mac OS, Linux.A versão do Linux estava com alguns bugs da última vez que verifiquei
  3. Silverlight – Runtime tem uma base instalada bastante baixa (e sem suporte para Linux) no momento

Escolha da linguagem de programação

(Não ordenado por causa da subjetividade, mas observe que o Silverlight oferece mais opções.Observe também que a experiência linguística existente dos desenvolvedores em sua equipe deve ser levada em consideração.)

  • Luz cinza:Qualquer linguagem .NET (C#, Visual Basic, IronPython(?), IronRuby(?)) (e XAML para definição de UI)
  • Ájax:JavaScript (e XHTML para definição de UI)
  • Flexível:ActionScript 3 (e MXML para definição de UI)

Estabilidade e compatibilidade da API

  1. Flex – O tempo de execução é o mesmo em todas as plataformas e navegadores, mais maduro e estável no momento do que o Silverlight
  2. Silverlight – O tempo de execução é o mesmo em todas as plataformas e navegadores, menos maduro que Flex/Flash, v2.0 ainda está em beta
  3. Ajax – Problemas de compatibilidade entre navegadores (embora possam ser mitigados por meio de bibliotecas Ajax)

Integração Web/Navegador

  1. Ajax – O conteúdo é nativo dentro do navegador, baseado nos padrões:pesquisável por rastreadores de navegadores e mecanismos de pesquisa, sujeito a quaisquer práticas de interface de usuário padrão estabelecidas pelo navegador e pelo sistema operacional
  2. Flex e Silverlight – Conteúdo não nativo do navegador (ou seja,é executado em seu próprio pequeno "sandbox/retângulo"):não necessariamente sujeito às práticas de UI estabelecidas para a plataforma em questão

Ferramentas de desenvolvimento

  1. Ajax – Seu editor de código, navegador e kit de ferramentas de depuração favorito para o navegador
  2. Flex – Flex SDK está disponível gratuitamente para Windows, Mac OS e Linux e pode ser usado com seu editor de código favorito.Um depurador de linha de comando está incluído, mas o criador de perfil fornecido pela Adobe está disponível apenas no Flex Builder IDE comercial
  3. Luz cinza -- Até onde sei, O SDK está disponível gratuitamente para Windows e pode ser usado com suas ferramentas de desenvolvimento .NET favoritas

Os tempos de execução da web como Flex e Silverlight oferecem coisas atraentes, mas têm dois grandes custos:

  • Eles são executados apenas dentro de um retângulo na página e não interagem com widgets normais da web
  • Eles estão disponíveis apenas para pessoas que possuem esse plug-in instalado

Mesmo o quase onipresente Flash não está instalado em todos os navegadores da web, portanto, ao optar por usar um tempo de execução de plug-in, você exclui parte do seu público.

Por outro lado, JavaScript (ou Ajax) está disponível em praticamente todos os navegadores e interage melhor com páginas normais da web, mas é uma linguagem mais primitiva e restritiva.Usá-lo para animações complexas pode ser complicado e você precisará testar seus aplicativos em mais versões e mais plataformas para ter certeza de que funciona.

A compatibilidade entre plataformas não é o problema que costumava ser, então o problema é este: Você ganhará mais nos recursos de uma biblioteca de plug-ins do que perderá no público excluído?

Minha resposta até agora sempre foi JavaScript/Ajax, mas eu reavaliaria isso em qualquer novo projeto.

Qual é o seu público:site público ou um aplicativo de negócios de intranet?As taxas de adoção não são relevantes se você tiver um público controlado que instalará o que for necessário para executar seu aplicativo.No entanto, se você precisa do maior público possível para tornar sua inicialização na web um sucesso, isso pode ser crítico.

Qual é o teu objetivo?Construindo algo pelo menor custo?Aprendendo novas tecnologias?

Você pode aproveitar suas habilidades existentes?Se você já conhece o .NET, o Silverlight ganha um impulso.Aprender Flex pode ser interessante e útil, mas será mais útil para você do que ter mais experiência com tecnologias .NET?Lembre-se de considerar o custo de oportunidade de aprender algo totalmente novo.

Não vejo um vencedor claro em tecnologia neste momento, e provavelmente não haverá um por muito tempo, então a escolha se resumirá a fatores bastante subjetivos.

Além do que já foi mencionado aqui, outra coisa importante a considerar é como será sua IU.

Se você for usar muitos controles de UI avançados, como árvores, listas, controles de guias, etc., considere o seguinte:

  • JavaScript/HTML - Não há suporte nativo para nada além de caixas suspensas, botões e campos de texto básicos.Se você quiser algo como um controle de árvore ou controle de guia, você terá que criar o seu próprio ou encontrar uma biblioteca de terceiros.

  • Adobe ActionScript – Suporte nativo para uma ampla variedade de controles avançados de UI

  • Silverlight - 1.0 tinha controles de UI muito limitados, mas 2.0 adicionará muitos mais e tenho certeza que continuaremos a ver controles adicionados em versões futuras.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top