É aconselhável usar java para desktop?  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
alexpassos
JavaChild

Membro desde: 20/04/2010 08:24:07
Mensagens: 139
Offline

Alguém conhece um forum bom como esse para se pesquisar sobre C++

Obrigado

Alex Passos

"O importante não é saber, e sim ter o telefone de quem sabe."
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20587
Localização: Curitiba/PR
Offline

andredf wrote:É possível fazer um programa desktop para transmissão de dados usando o C++ com socket e o servidor (serversocket) ser em java?
Ambos conseguem dialogar?


Sim, é possível. Só cuidado com tipos unsigned no seu protocolo pois o java não os possui.
t

@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20587
Localização: Curitiba/PR
Offline

alexpassos wrote:Alguém conhece um forum bom como esse para se pesquisar sobre C++


Existe uma lista de discussão famosa chamada cppbrasil. O próprio site do Qt e da boost tem muita coisa também.

This message was edited 1 time. Last update was at 05/11/2011 08:26:44


@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20587
Localização: Curitiba/PR
Offline

ibotirama wrote:Agora existem alguns espectos que devem ser resaltados, todo aquela rapidês do VS é para aplicações rodadas dentro do padrão Microsoft, ou seja no Windows e com SQL Server, pois se não me engano você não tem suporte nativo do Linq para outro banco que não seja SQL Server, e o WinForms com todos aqueles componentes legais de terceiros só funciona no Windows se rodar o Mono terá que ser com GTK# ou outro que não seja WinForms.

Ou seja se não for rodar no Windows, tem os poréns e essas outras Toolboxes você também pode usar com Java


O Linq funciona em qualquer collection, xml ou banco.
Agora, geralmente fazemos acesso usando um ORM, como o NHibernate ou o Entity framework, não com o Linq direto.

Quanto a Ui, lembro de ter visto que o mono estava trabalhando sobre suporte do Winforms em outros SOs.

@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
andredf
JavaBaby

Membro desde: 30/10/2010 08:55:17
Mensagens: 93
Offline

ViniGodoy wrote:
andredf wrote:É possível fazer um programa desktop para transmissão de dados usando o C++ com socket e o servidor (serversocket) ser em java?
Ambos conseguem dialogar?


Sim, é possível. Só cuidado com tipos unsigned no seu protocolo pois o java não os possui.
t


A discussão está boa.

Problema a ser resolvido: implementar um programa desktop para, de forma bastante resumida, ler um arquivo texto, validar este arquivo conforme regras estabelecidas e, estando correto, transmiti-lo a um servidor.

O ideal é que este programa desktop rode pelo menos em windows e linux e que hája um alto nível de proteção do código fonte (para que não se permita ao usuário, a partir do conhecimento do código fonte, burlar as regras estabelecidas e transmitir um arquivo inválido).

Do lado do servidor, este fará algumas pequenas validações adicionais e deve ser implementado com threads para permitir que mais de um usuário do programa desktop consiga transmitir arquivos simultaneamente.

O esqueleto do programa desktop já existe em java, porém, devido à facilidade em obter o código fonte a partir do .class, surgiu a necessidade de se pesquisar um pouco mais sobre alguma outra alternativa.

Com c++, linguagem super atraente, a dificuldade é encontrar material didático ensinando a utilizar corretamente sockets.

Sugestões?
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20587
Localização: Curitiba/PR
Offline

Possibilidade 1: Boost ASIO + Boost threads (sem interface gráfica)
http://www.boost.org/doc/libs/1_47_0/doc/html/boost_asio/tutorial.html
http://www.boost.org/doc/libs/1_47_0/doc/html/thread.html#thread.overview

Possibilidade 2: QT:
http://www.qtforum.org/article/9/qt-network-tutorial.html

@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
paulofafism
JavaEvangelist
[Avatar]

Membro desde: 02/05/2006 15:30:50
Mensagens: 475
Offline



Eu tive a oportunidade de trabalhar com QT, para desenvolver aplicações para Symbian OS, posso dizer que é uma excelente ferramenta, tanto para dispositivos móveis quanto para desktop.

Paulo Vinícius Moreira Dutra

Perfil Linkedin
Lattes

Paulo Viníciu's Blog
[WWW]
hatsurei
HelloWorld

Membro desde: 30/06/2008 10:29:52
Mensagens: 12
Offline

Eu tenho interesse em começar a desenvolver para Desktop (principalmente para Windows e posteriormente para Linux). Pelo que entendi o melhor seria usar o C#, porem já estou estudando Java. Agora nao sei mais qual seguir... Só uma pergunta é necessario conhecer C para iniciar C++ ou se pode inciar direto em C++?

This message was edited 1 time. Last update was at 02/11/2011 10:32:46

ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20587
Localização: Curitiba/PR
Offline

hatsurei wrote:Eu tenho interesse em começar a desenvolver para Desktop (principalmente para Windows e posteriormente para Linux). Pelo que entendi o melhor seria usar o C#, porem já estou estudando Java. Agora nao sei mais qual seguir... Só uma pergunta é necessario conhecer C para iniciar C++ ou se pode inciar direto em C++?


O C# e o Java são bastante parecidos em sua estrutura geral. É bem fácil migrar de um para outro.
Basta uma leitura rápida sobre o que o C# tem de diferente (como a parte de properties e delegates) e você praticamente abre o Visual e sai programando.

Você pode começar direto pelo C++, sem estudar C. É até bom, pois você não pega os vícios de programadores C. Dê uma olhada nesse Roadmap:
http://pontov.com.br/site/cpp/46-conceitos-basicos/88-roadmap-c

@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
hatsurei
HelloWorld

Membro desde: 30/06/2008 10:29:52
Mensagens: 12
Offline

ViniGodoy wrote:
hatsurei wrote:Eu tenho interesse em começar a desenvolver para Desktop (principalmente para Windows e posteriormente para Linux). Pelo que entendi o melhor seria usar o C#, porem já estou estudando Java. Agora nao sei mais qual seguir... Só uma pergunta é necessario conhecer C para iniciar C++ ou se pode inciar direto em C++?


O C# e o Java são bastante parecidos em sua estrutura geral. É bem fácil migrar de um para outro.
Basta uma leitura rápida sobre o que o C# tem de diferente (como a parte de properties e delegates) e você praticamente abre o Visual e sai programando.

Você pode começar direto pelo C++, sem estudar C. É até bom, pois você não pega os vícios de programadores C. Dê uma olhada nesse Roadmap:
http://pontov.com.br/site/cpp/46-conceitos-basicos/88-roadmap-c


Vou continuar com Java e nas horas vagas pelo o C# para verificar as diferenças.
Muito obrigado.
andredf
JavaBaby

Membro desde: 30/10/2010 08:55:17
Mensagens: 93
Offline



Eu baixei (mais de 1Gb) e instalei o Qt, mas ainda não tive tempo de executar.

Desculpas antecipadas pela ignorância, mas tanto o boost como o Qt são ambientes completos de desenvolvimento?
Ou ainda dependemos de algum compilador c++?

São gratuitos?


ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20587
Localização: Curitiba/PR
Offline

Os dois são bibliotecas para o C++. Portanto, dependem sim de um compilador C++.

O QT possui um editor de código, chamado QT Creator, mas não tem compilador próprio.
Ele dá suporte visual a construção de interface gráfica. E usa de compilador o GNU (MinGW no caso do Windows, o mesmo do Code::Blocks).
Há plugins do QT para o Visual Studio também.

A boost é uma biblioteca criada e mantida pelo próprio comitê que normatiza e desenvolve o C++. Não é à toa que várias partes dela acabam se incorporando ao padrão (como no caso da próxima versão do C++, o C++11, que incorporou a biblioteca de threads, smart pointers, números aleatórios e refinou a parte de lambda).

@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
andredf
JavaBaby

Membro desde: 30/10/2010 08:55:17
Mensagens: 93
Offline

ViniGodoy wrote:Os dois são bibliotecas para o C++. Portanto, dependem sim de um compilador C++.

O QT possui um editor de código, chamado QT Creator, mas não tem compilador próprio.
Ele dá suporte visual a construção de interface gráfica. E usa de compilador o GNU (MinGW no caso do Windows, o mesmo do Code::Blocks).
Há plugins do QT para o Visual Studio também.

A boost é uma biblioteca criada e mantida pelo próprio comitê que normatiza e desenvolve o C++. Não é à toa que várias partes dela acabam se incorporando ao padrão (como no caso da próxima versão do C++, o C++11, que incorporou a biblioteca de threads, smart pointers, números aleatórios e refinou a parte de lambda).


Valeu pelas dicas. Vou acessar o site do Qt para entender melhor.

Voltando ao java (hipótese ainda não descartada), utilizando um software para ofuscar o código, como por exemplo o Proguard, ainda assim fica relativamente frágil a segurança do código-fonte?


mateus.cordeiro
JavaChild
[Avatar]

Membro desde: 06/07/2011 23:39:47
Mensagens: 128
Localização: São Paulo - SP
Offline

Muito boa essas informações! Estou verificando minhas pespectivas!

Parabens a todos!

VIVA O GUJ!
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20587
Localização: Curitiba/PR
Offline

andredf wrote:Voltando ao java (hipótese ainda não descartada), utilizando um software para ofuscar o código, como por exemplo o Proguard, ainda assim fica relativamente frágil a segurança do código-fonte?


Dificulta, mas não impede.
1. Classes da API do Java e de API de terceiros não serão ofuscadas (APIs de terceiros até podem, se vc se der ao trabalho de compila-las também);
2. Classes que serão acessadas via reflection ou scripts não podem ser ofuscadas;
3. O código ainda poderá ser lido de maneira estruturada (com funções, classes, etc).

Mas claro, aí só alguém que esteja ativamente trabalhando para reverter o código será capaz de faze-lo.
Um investimento que só valerá a pena caso seu software valha muito dinheiro, e que o valor dele esteja numa tecnologia única.

Dificilmente um cliente irá contratar um programador para reverter um código ofuscado só para piratear o software para si.

No caso do C++, tentar reverter um assembly é uma tarefa mais difícil do que reprogramar a aplicação inteira.

This message was edited 2 times. Last update was at 05/11/2011 08:31:21


@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
 
Índice dos Fóruns » Java Básico
Ir para:   
Powered by JForum 2.1.8 © JForum Team