Usuário com melhor resposta
Duvida de iniciante

Pergunta
-
Olá amigos, sou novo nesse forum, tenho estudado a um tempo o C++, já consigo lidar legal com alguns códigos e alguns aplicativos, e estou com a seguinte dúvida, desculpem se eu estiver errado ou falando asneiras.
Pretendo sair do modo console e partir para aplicativos com forms, tenho ouvido no .net, no entanto, ouví dizer que nessa plataforma, é possível a visualização do código, e seu funcionamento é parecido com o Java, onde precisa do netframework instalado funcionando como uma máquina virtual interpretando os códigos.
Gostaria de saber se existe outro meio de eu montar meus formulários no C++ sem ter que depender de .net ou netframework, ou mesmo precisando do netframework, que pelo menos não tenha uma interface para interpretar os códigos como o Java, que o meu código trabalhasse compilado
Se eu estiver errado ou fazendo mal juízo do .net, por favor me esclareçam, afinal não conheço essa plataforma.
Estou optando pelo c++ pois alguns aplicativos feitos em java, me decepcionaram um pouco em questão de performace, e eu ví claramente que para o que eu pretendo o C++ sem dúvida é o que preciso. Se o visual studio e o .net necessitam de netframework para funcionar como uma interface como a JVM, julgo eu que estarei caindo no mesmo problema.
Obrigado desde já.
Respostas
-
Marcelo Developer wrote: Se eu compilar qualquer projeto que seje no visual studio, ele obrigatóriamente estará vinculado ao netframework? fis alguns aplicativos simples em modo console e todos necessitavam do netframework para rodar em outro computador que não tinha o Visual studio instalado, isso quer diser que todos eles estão rodando por essa máquina virtual?
Minha intenção mesmo é fugir da "maquina virtual", e que meu código fique compilado não passando por ela, para que eu não perca em performace.
Gostaria de saber como eu posso montar aplicativos com form sem usar o .net e a máquina virtual, é possível no Visual studio? qual o caminho?
Olá Marcelo,
A única forma de você não utilizar o .NET Framework, é desenvolver aplicações em C++ nativo (não-gerenciado).
Quando você cria um novo projeto C++ no Visual Studio, você pode escolher por criar um projeto Win32, MFC, ATL ou CLR.
Desses tipos de projeto, o único que utiliza o .NET Framework é o CLR. Todos os outros utilizam as APIs do Windows diretamente (Win32), ou então as bibliotecas da Microsoft (MFC e ATL).
Abraços,
Caio Proiete
Todas as Respostas
-
Olá Marcelo,
Exatamente. Todo programa .NET é executado em cima do .NET Framework que, comparando com o Java, é como se fosse a tal "máquina virtual".
Essa história da performance, é subjetiva... Muitas vezes, a arquitetura da aplicação é que faz toda a diferença. Já tive a chance de migrar algumas aplicações que antes funcionavam em C++, e que hoje estão 100% em C# .NET, que apresentam melhor performance do que as anteriores!
Mas é claro, também tive, pelo menos, um caso em que cheguei a conclusão que nada conseguia "bater" a aplicação C++ em questão de performance.
Tudo depende do que você precisa fazer.
Agora, o ganho de produtividade que você tem com o .NET comparado com o C++ nativo é enorme, por isso, você tem que pensar muito bem.
O que sugiro, é que faça o download das versões Express do Visual Studio .NET, e veja você mesmo:
http://www.microsoft.com/express/
Faça alguns protótipos e testes de performance, e decida qual caminho é o melhor para cada aplicação que você for desenvolver.
Abraços,
Caio Proiete
Caio Proiete
http://www.caioproiete.com -
Cara clareou bastante.
Realmente, é indiscutível que o tempo de desenvolvimento usando frameworks é drásticamente redusido, e o cérebro do programador agradece. Geralmente quando eu faço algum programa e viso produtividade, eu costumo usar o Java, o C# não tenho essa intimidade ainda, porém estou precisando também rever algo em C++ justamente vizando aplicativos mais velozes, como vc, já tive programas que eu precisava de desempenho, economia de recursos de memória e rapidez na resposta, só faltou eu acender vela preta com o Java e não obtive o resultado esperado.
Me tira umas dúvidas aquí com o Visual Studio.
Se eu compilar qualquer projeto que seje no visual studio, ele obrigatóriamente estará vinculado ao netframework? fis alguns aplicativos simples em modo console e todos necessitavam do netframework para rodar em outro computador que não tinha o Visual studio instalado, isso quer diser que todos eles estão rodando por essa máquina virtual?
Minha intenção mesmo é fugir da "maquina virtual", e que meu código fique compilado não passando por ela, para que eu não perca em performace.
Gostaria de saber como eu posso montar aplicativos com form sem usar o .net e a máquina virtual, é possível no Visual studio? qual o caminho?
-
Marcelo Developer wrote: Se eu compilar qualquer projeto que seje no visual studio, ele obrigatóriamente estará vinculado ao netframework? fis alguns aplicativos simples em modo console e todos necessitavam do netframework para rodar em outro computador que não tinha o Visual studio instalado, isso quer diser que todos eles estão rodando por essa máquina virtual?
Minha intenção mesmo é fugir da "maquina virtual", e que meu código fique compilado não passando por ela, para que eu não perca em performace.
Gostaria de saber como eu posso montar aplicativos com form sem usar o .net e a máquina virtual, é possível no Visual studio? qual o caminho?
Olá Marcelo,
A única forma de você não utilizar o .NET Framework, é desenvolver aplicações em C++ nativo (não-gerenciado).
Quando você cria um novo projeto C++ no Visual Studio, você pode escolher por criar um projeto Win32, MFC, ATL ou CLR.
Desses tipos de projeto, o único que utiliza o .NET Framework é o CLR. Todos os outros utilizam as APIs do Windows diretamente (Win32), ou então as bibliotecas da Microsoft (MFC e ATL).
Abraços,
Caio Proiete
-
Cara vlw
Eu tenho usado o win32 -> win32 Console aplication para montar meus projetos pra estudo, e meus aplicativos sempre necessitavam do netframework instalado na máquina aonde ele irá rodar.
Será que é somente para uso de algumas bibliotecas, ou para uso da máquina virtual?
Se for somente de bibliotecas, não há problema, mais se mesmo assim estiver usando a máquina virtual, aí terei que trocar de IDE, coisa que eu não gostaria de fazer, gosto do Visual Studio. Não sei como descobrir se está utilizando a máquina virtual ou não.
-
Marcelo Developer wrote: Cara clareou bastante.
Realmente, é indiscutível que o tempo de desenvolvimento usando frameworks é drásticamente redusido, e o cérebro do programador agradece. Geralmente quando eu faço algum programa e viso produtividade, eu costumo usar o Java, o C# não tenho essa intimidade ainda, porém estou precisando também rever algo em C++ justamente vizando aplicativos mais velozes, como vc, já tive programas que eu precisava de desempenho, economia de recursos de memória e rapidez na resposta, só faltou eu acender vela preta com o Java e não obtive o resultado esperado.
Me tira umas dúvidas aquí com o Visual Studio.
Se eu compilar qualquer projeto que seje no visual studio, ele obrigatóriamente estará vinculado ao netframework? fis alguns aplicativos simples em modo console e todos necessitavam do netframework para rodar em outro computador que não tinha o Visual studio instalado, isso quer diser que todos eles estão rodando por essa máquina virtual?
Minha intenção mesmo é fugir da "maquina virtual", e que meu código fique compilado não passando por ela, para que eu não perca em performace.
Gostaria de saber como eu posso montar aplicativos com form sem usar o .net e a máquina virtual, é possível no Visual studio? qual o caminho?
-
Marcelo Developer wrote: Cara clareou bastante.
Realmente, é indiscutível que o tempo de desenvolvimento usando frameworks é drásticamente redusido, e o cérebro do programador agradece. Geralmente quando eu faço algum programa e viso produtividade, eu costumo usar o Java, o C# não tenho essa intimidade ainda, porém estou precisando também rever algo em C++ justamente vizando aplicativos mais velozes, como vc, já tive programas que eu precisava de desempenho, economia de recursos de memória e rapidez na resposta, só faltou eu acender vela preta com o Java e não obtive o resultado esperado.
Me tira umas dúvidas aquí com o Visual Studio.
Se eu compilar qualquer projeto que seje no visual studio, ele obrigatóriamente estará vinculado ao netframework? fis alguns aplicativos simples em modo console e todos necessitavam do netframework para rodar em outro computador que não tinha o Visual studio instalado, isso quer diser que todos eles estão rodando por essa máquina virtual?
Minha intenção mesmo é fugir da "maquina virtual", e que meu código fique compilado não passando por ela, para que eu não perca em performace.
Gostaria de saber como eu posso montar aplicativos com form sem usar o .net e a máquina virtual, é possível no Visual studio? qual o caminho?
-
Marcelo Developer wrote: Cara clareou bastante.
Realmente, é indiscutível que o tempo de desenvolvimento usando frameworks é drásticamente redusido, e o cérebro do programador agradece. Geralmente quando eu faço algum programa e viso produtividade, eu costumo usar o Java, o C# não tenho essa intimidade ainda, porém estou precisando também rever algo em C++ justamente vizando aplicativos mais velozes, como vc, já tive programas que eu precisava de desempenho, economia de recursos de memória e rapidez na resposta, só faltou eu acender vela preta com o Java e não obtive o resultado esperado.
Me tira umas dúvidas aquí com o Visual Studio.
Se eu compilar qualquer projeto que seje no visual studio, ele obrigatóriamente estará vinculado ao netframework? fis alguns aplicativos simples em modo console e todos necessitavam do netframework para rodar em outro computador que não tinha o Visual studio instalado, isso quer diser que todos eles estão rodando por essa máquina virtual?
Minha intenção mesmo é fugir da "maquina virtual", e que meu código fique compilado não passando por ela, para que eu não perca em performace.
Gostaria de saber como eu posso montar aplicativos com form sem usar o .net e a máquina virtual, é possível no Visual studio? qual o caminho?