Pergunta

Ao desenvolver um aplicativo desktop em .NET, é possível não exigir o .NET Framework?O desenvolvimento de software em .NET é a forma preferida de desenvolver aplicativos de desktop?Qual é a linguagem de programação mais utilizada pelas empresas de software para desenvolver aplicativos de desktop?

O requisito do .NET Framework é apenas assumido com base no sistema operacional Windows que você instalou, por isso eles listam os requisitos de versão do sistema operacional Windows?

Foi útil?

Solução

Você ainda pode desenvolver aplicativos para a área de trabalho do Windows usando C/C++, eliminando a necessidade do .NET framework, mas será necessário certificar-se de que as bibliotecas necessárias já estejam no sistema ou instaladas.

O bom do framework .NET é que o Windows XP SP2 e o Vista possuem o tempo de execução do framework 3.0 instalado por padrão.

Em muitos aspectos, este é o “padrão de desenvolvimento” da Microsoft e tem sido assim há algum tempo.Isso permite que você não se preocupe em ter um monte de bibliotecas inseridas em seu aplicativo.Se você estiver usando todas as bibliotecas fornecidas pelo .NET, acabará apenas precisando se preocupar em implantar seu executável, o que é um grande analgésico.Quando você tem um monte de bibliotecas que precisa implantar também, você começa a ter problemas ao escrever atualizações, porque precisa garantir que essas atualizações sejam enviadas para o instalador existente e para todos os aplicativos instalados existentes. .

Quanto a "preferido", isso sempre tende a irritar às vezes, mas há cada vez mais desenvolvedores .NET procurados para a web e o desktop nos sites de busca de emprego que costumo visitar.8^D

EDITAR:Muito obrigado ao Orion por apontar minha confusão sobre os frameworks.Você obtém 3,0 "de imediato se estiver no XP SP2 ou Vista.Todo o resto exigirá um simples download ou execução do Windows Update.

Outras dicas

Você não pode executar um aplicativo .Net sem a estrutura .Net.A estrutura cuida de algumas das tarefas em segundo plano mais tediosas, de modo que você não poderia executar o aplicativo sem a estrutura.

Na plataforma Windows, usar .NET é a forma preferida de desenvolver aplicativos de desktop.O modelo WinForms do .NET é uma maneira de desenvolver aplicativos clientes tradicionais ou grossos, com o Windows Presentation Foundation do .NET sendo a direção tecnológica mais recente da MS.

Acho que o que estou tentando dizer é que, quando examino os requisitos do sistema para determinados softwares, raramente vejo o .NET Framework como um requisito.Então, sempre me pergunto como eles conseguem sobreviver sem que isso seja uma exigência (se desenvolveram o software em .NET).Então, presumo que a maioria dos softwares comerciais não seja escrita em .NET, e é por isso que estou fazendo esta pergunta.Espero que isso tenha esclarecido algumas coisas.

Mono Tem uma versão para Windows, se você realmente precisa evitar a dependência do .NET.

De qualquer maneira, você precisará de um tempo de execução compatível com .NET em qualquer computador em que seu aplicativo esteja sendo executado.Portanto, se você quiser evitar completamente o .NET, provavelmente terá que distribuir o tempo de execução Mono junto com seu aplicativo.

A prática recomendada para distribuição de aplicativos .NET é que o instalador seja de alguma forma inicializado com o instalador .NET Redistributable para a estrutura necessária, de modo que, se a estrutura necessária ainda não estiver instalada (digamos, você precisa do 3.5 no Windows XP), o instalador irá basta colocá-lo.

O .NET Runtime é uma instalação pequena o suficiente para ser viável (tem cerca de 24 MB para o .NET 2.0, não verifiquei o tamanho do .NET 3.5).

Acho que o que estou tentando dizer é que, quando vejo os requisitos do sistema para determinados software, raramente vejo a estrutura .NET como um requisito.Então, eu sempre me pergunto como eles se passam sem ser um requisito (se eles desenvolveram o software no .NET).Então, apenas suponho que a maioria dos softwares comerciais não esteja escrita no .NET, é por isso que estou fazendo essa pergunta.Espero que isso tenha esclarecido algumas coisas.

Não tenho números, mas suponho que, como a maioria das pessoas está executando o XP e o Vista em seus desktops, listar o framework .NET é discutível, especialmente se eles estão visando o framework 2.0 no próprio aplicativo.Antigamente, quantos aplicativos você viu que diziam "requer vbrun50.dll" ou algo parecido, já que foi colocado nas instalações do Windows por padrão?

Além disso, é um pouco menos “assustador” para aqueles que não têm muito conhecimento de informática.Tudo o que eles querem fazer é baixar, instalar e executar o aplicativo.Alguns dos aplicativos que tenho por aí exigem a estrutura 2.0 e algumas pessoas perguntam o que é isso e como faço para obtê-lo e isso me custa alguma coisa?A resposta típica que dou a eles é "Se você estiver executando o XP ou o Vista, não há nada com que se preocupar" e eles parecem gostar disso.

Acho que se você fosse capaz de fazer algo como vincular estaticamente a estrutura .NET para não precisar desenvolvê-la, estaria violando o EULA fornecido pela Microsoft!

É o preço que temos que pagar por ter uma experiência de desenvolvedor tão rica!Vale a pena considerar a dificuldade de voltar à programação do MFC!

A Remotesoft oferece um vinculador – US$ 1.250 para uma única licença de desenvolvedor: http://www.remotesoft.com/linker/index.html

Se o seu aplicativo for executado no Mono (e o suporte para desktop Winform do Mono é muito bom agora), você pode empacotar seu aplicativo como um pacote Mono, que é um único executável.Existem duas opções - o padrão inclui o tempo de execução, mas não vincula estático a ele, a outra vincula você estaticamente ao tempo de execução Mono.O motivo pelo qual você pode não querer um link estático é que isso colocaria seu aplicativo sob a LGPL;pacotes que não são vinculados estáticos (ainda apenas um único exe) não têm esse requisito.http://www.mono-project.com/Mono:Runtime#Bundles

Você pode considerar usar "Implantação ClickOnce", o que torna muito fácil adicionar a inicialização dos instaladores redistribuíveis .Net 2.0, 3.0 e/ou 3.5 ao seu aplicativo.Basta clicar em uma caixa de seleção nas propriedades do seu projeto e seu instalador detectará automaticamente se a estrutura de pré-requisito foi instalada e irá instalá-la caso não esteja.

Não é adequado para todas as situações, mas se você puder tirar vantagem disso, pode ser muito inteligente.

Fiz alguma programação em .NET (usando C#) e percebi que muitas vezes eu desejava mais controle sobre vários controles.Isso exigia conhecimento que se estendia além da estrutura .NET.

Por exemplo, quando eu estava trabalhando com o controle WebBrowser para produzir uma ferramenta de teste automatizada para aplicativos da web, percebi que havia certas situações que exigiam manipuladores de eventos do controle ActiveX axWebBrowser de nível inferior e a documentação era escassa/amostras de código incorporavam muitos Conceitos de interoperabilidade COM.Então, talvez ter algum conhecimento sobre COM possa ser útil?

Acho que o que estou tentando dizer é que, quando vejo os requisitos do sistema para determinados software, raramente vejo a estrutura .NET como um requisito.Então, eu sempre me pergunto como eles se passam sem ser um requisito (se eles desenvolveram o software no .NET).Então, apenas suponho que a maioria dos softwares comerciais não esteja escrita no .NET, é por isso que estou fazendo essa pergunta.Espero que isso tenha esclarecido algumas coisas.

Muitos aplicativos desenvolvidos com C++/MFC para áreas de trabalho do Windows exigem uma versão específica das DLLs de tempo de execução do MFC, mesmo que ela não esteja explicitamente listada como um requisito.Acredito que o mesmo está acontecendo com aplicativos que exigem .NET.

Por exemplo, o aplicativo em que trabalho vem com arquivos redistribuíveis para .NET e para a versão específica do MFC necessária, bem como vários outros componentes necessários.Nosso programa de instalação instalará quaisquer componentes não instalados atualmente no sistema do usuário.Cada versão dos últimos anos usou mais código .NET do que a versão anterior.

Não creio que seja correto presumir que a maioria dos softwares comerciais não usa .NET apenas porque não está listado como um requisito.Eu não acho que você possa presumir nada disso com precisão.

O bom do .NET framework é que o Windows XP tem a biblioteca de tempo de execução do framework 2.0 instalada por padrão

Desde quando?Tive que dizer a muitos usuários do Windows XP para instalá-lo.Sim, você pode baixá-lo por meio do Windows Update, mas tenho certeza de que é uma instalação opcional e não algo que acontece automaticamente.

e o Vista tem 3.5 instalado

Não, ele tem 3.0 instalado.Você obtém o WPF, mas você não obter linq

Sim, você pode construir um aplicativo integrado em dot NET sem usar a estrutura.Você pode usar um programa como o ESS dotNET FuZe para incorporar qualquer dll, incluindo dlls de estrutura no aplicativo.O EXE resultante não precisa mais de uma estrutura.

Por favor, acesse este link: http://essaver.net/fuze.html para dar uma olhada no FuZe.

É possível não exigir o .NET Framework;existem algumas empresas que vendem (por milhares de dólares, veja bem) soluções que permitirão que você faça isso.No entanto, esses são hacks completos e não são suportados pela Microsoft.

A forma como você desenvolve aplicativos de desktop (ou seja, usando .NET ou não) depende de suas necessidades.Não existe uma maneira preferida.

A linguagem mais usada é provavelmente C#.

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