Quando usar o RCP?

9

Eu gosto de escrever pequenas aplicações GUI usando Java e Swing, algo como um cliente para o site social Tumblr

Devo usar o Eclipse RCP ou a plataforma Netbeans?

E que benefícios eu recebo ao usar qualquer um deles usando o swing simples / SWT?

Os aplicativos RCP exigem mais dependências do que aquelas desenvolvidas usando Swing ou SWT?

Mahmoud Hossam
fonte

Respostas:

6

Deckard teve uma resposta muito boa. Eu gostaria de acrescentar que vale a pena considerar como esse projeto será mantido no futuro. Considere quantos colegas de trabalho (ou desenvolvedores em geral) estão familiarizados com Swing et al. E quantos estão familiarizados com o RCP. Minha organização teve algumas dores de cabeça quando queríamos tirar um pó de um aplicativo antigo de RCP. Acontece que a maioria das pessoas envolvidas na criação do projeto deixou a empresa ou passou para papéis não relacionados ao desenvolvimento. Nossa experiência interna era mais no Swing, então isso tornava as coisas mais difíceis do que precisavam. Também tínhamos o desejo de integrar partes dele a um aplicativo separado baseado em Swing e, novamente, o fato de o aplicativo antigo ser um aplicativo RCP dificultava as coisas.

Não estou dizendo que você não deve criar um aplicativo RCP, mas algumas coisas que você deve considerar primeiro.

Michael McGowan
fonte
7

Essencialmente, quando você usa o Swing, precisa configurar tudo manualmente: define a Janela, cada área e controle; dentro disso, novamente, define cada controle. Para cada controle e área, você define manipuladores para lidar com alterações e ações do usuário, etc. Você precisa fazer isso porque nada funcionará, a menos que você o defina e implemente explicitamente.

O RCP também permite isso, mas vem com vários componentes de nível superior que fazem muitas coisas comuns. Por exemplo, são apenas algumas etapas de configuração para definir uma MDI (Multiple Document Interface) ou para adicionar barras de ferramentas com ícones que iniciam plug-ins externos quando você clica neles.

Como o RCP é o que impulsiona o Eclipse, os blocos básicos tendem a se concentrar em aplicativos que têm necessidades semelhantes a um ambiente de desenvolvimento: edição extensiva de texto em todos os tipos de janelas, usando todos os tipos de menus / barras de ferramentas / operações / etc sensíveis ao contexto.

Portanto, se você deseja criar um pequeno aplicativo personalizado com muitas coisas fora do padrão (como um cliente chamativo do Twitter que possui todos os tipos de controles personalizados ou skinnable), não há sentido em usar o RCP. Na verdade, ele arrastará 5 MB de plug-ins para o seu aplicativo sem nenhum benefício real.

Se você deseja criar um aplicativo que exiba páginas da Web, exija um amplo sistema de ajuda, precise atualizar automaticamente pela Internet e esse tipo de funcionalidade de aplicativo de desktop em larga escala, o RCP será um ótimo ajuste.

Deckard
fonte
0

Sou um engenheiro de software Java profissional com grande experiência no Eclipse RCP e na plataforma Netbeans.

"Devo usar o Eclipse RCP ou a plataforma Netbeans?"

Resposta: Depende dos seguintes fatores:

  • Sua experiência em Java.
  • O esforço necessário para implementar algo nos dois RCPs.
  • A clareza da documentação de cada RCP.
  • A aparência preferida que você deseja fornecer aos usuários finais.

Aqui estão os prós e contras de cada um desses RCPs de acordo com os fatores mencionados acima:

A plataforma Netbeans:

Prós:

  • A clareza e organização da documentação é EXCELENTE! Mas a comunidade ativa é pequena em comparação com a dos desenvolvedores do Eclipse RCP.

Contras:

  • Requer uma grande experiência na linguagem Java.
  • Requer muito mais código a ser gravado em comparação com o Eclipse RCP para fazer a mesma coisa.
  • A aparência não é nativa. A plataforma Netbeans é baseada no Swing, assim você obtém o mesmo Java Swing Look & Feel em todas as plataformas de destino!

O Eclipse RCP:

Prós:

  • Requer apenas um bom conhecimento de Java com também um bom conhecimento de Injeção de Dependência (em outras palavras, nada de Kung Fu é necessário: P)!
  • A aparência resultante é muito mais nativa que a do Netbean. Isso ocorre porque o RCP do Eclipse é baseado no SWT. (isso é um engodo para mim - só porque eu não sou divertido com SWT, pessoalmente)

Contras:

  • A clareza e organização da documentação não é tão boa! Cons.

Minha preferência pessoal é a plataforma Netbeans só porque eu gosto de ter um controle completo do que estou fazendo com meu código e porque acho que a interface do usuário baseada em Swing é muito mais estável que a SWT (eu costumava ter algumas falhas de interface do usuário no meu Eclipse IDE enquanto eu estou codificando: P)!

"Os aplicativos RCP exigem mais dependências do que os desenvolvidos usando Swing ou SWT?"

Resposta: As dependências são o que fazem esses 2 bebês rolarem. Caso contrário, seria desnecessário que eles fossem chamados de RCPs. RCP significa Rich Client Platform, o que significa que é um ecossistema (um grande conjunto de APIs) que ajuda na criação de aplicativos "Rich", fornecendo os meios para fazê-lo (por meio de APIs). ;-). Assim, a resposta aqui é "SIM, MUITO MAIS DEPENDENCIAS"!

javase
fonte