Pergunta

Há alguma vantagem na compilação para o .NET Framework 3.5 em vez do 2.0?

Por exemplo, menos consumo de memória, inicialização mais rápida, melhor desempenho...

Pessoalmente, acho que não, posso ter perdido alguma coisa.

Editar:É claro que existem mais recursos na estrutura 3.5, mas estes não são o foco desta questão.

Editar2:Parece não haver vantagens.

Editar3:Sim, eu quis dizer direcionar o Framework.Eu instalei o 3.5 SP1 e o VS 2008 mais recentes, então qual é a diferença entre compilar e direcionar uma estrutura?Posso direcionar a estrutura nas opções do projeto, mas como faço para 'compilar' uma versão específica da estrutura?Eu não sabia que havia uma diferença.

Editar4:Então, por enquanto concordamos que não há vantagens.

Obrigado pelas suas opiniões

Foi útil?

Solução

Há uma diferença entre compilar e direcionar.

Compilar o código com o compilador C# 3.0 (por exemplo) provavelmente proporcionará um aumento no desempenho (muito pequeno, de qualquer maneira), já que alguma otimização para o código IL gerado pode ter sido incluída.Também permite usar alguns dos novos recursos, como propriedades automáticas ou expressões lambda.

A segmentação para uma determinada estrutura garantirá que seu assembly funcione para essa estrutura (e posteriores) e falhará se você direcionar para 2.0 e estiver usando uma biblioteca 3.5.Nenhuma melhoria de desempenho estará diretamente relacionada a isso, a menos que você substitua uma classe de uma estrutura por outra classe "mais rápida".Por exemplo, direcionar o .NET 1.1 não permitirá o uso de genéricos e, portanto, você terá que usar o ArrayList, que é consideravelmente mais lento que o List (devido ao boxing e unboxing).

Outras dicas

Há duas coisas a serem lembradas em relação ao .NET 2.0 e .NET 3.5.

  1. O .NET Framework 3.5 são apenas algumas bibliotecas executadas no .NET 2.0.
  2. Ao desenvolver no Visual Studio 2008 e direcionado ao .NET 2.0, você ainda pode usar determinados recursos da linguagem C# 3.0, como métodos de extensão, pois eles são, na verdade, um recurso do compilador C# 3.0 (ou .NET 3.5).Veja este link: http://www.codethinked.com/post/2008/02/Using-Extension-Methods-in-net-20.aspx

Eu não encontrei nenhum.Um óbvio desvantagem, se você não precisa dos recursos específicos do 3.5, é que a base de código 3.5 é mais jovem e, portanto, é possível, embora improvável, que haja algum bug por aí.

Não há benefício em compilar para a estrutura 3.5 se você não estiver usando nenhuma classe dessa versão da estrutura.

Presumo que você queira dizer como alvo a estrutura .NET 3.5 para sua compilação.Se sim, como outros disseram, não acredito que você verá muita diferença.

No entanto, se você está falando sobre o uso de compiladores atualizados, há várias alterações e alterações descritas para C# e VB nos seguintes links:

Acredito que um compilador diferente acompanha cada versão do Visual Studio.Por exemplo, no caso do C#, o compilador 2.0 fornecido com o Visual Studio 2005 e o C# 3.0 fornecido com o Visual Studio 2008.Dependendo de qual versão do Visual Studio você usa, você acaba com um compilador diferente.

Direcionar uma estrutura refere-se especificamente a qual versão da estrutura você deseja atingir durante o processo de compilação;a segmentação de estruturas é um novo recurso do Visual Studio 2008.Por exemplo, eu poderia ter uma solução aberta no Visual Studio 2008 e direcionar a v2.0 do .Net.O resultado seria que eu não teria nenhum dos recursos 3.0 ou 3.5 .Net disponíveis durante essa compilação, por exemplo, WPF.

Se o seu assembly .NET for direcionado ao .NET 3.5, o aplicativo resultante procurará e exigirá as bibliotecas .NET 3.5 e pronto.Essas bibliotecas vêm com inúmeras classes adicionais não encontradas na estrutura .NET 2.0, portanto, essa seria a vantagem de direcionar essas bibliotecas.

No entanto, se você compilar o código C# com o compilador C# 3.0 enviado com, por exemplo,Visual Studio 2008 e adequado para .NET 3.5, mas tiver seu destino de montagem .NET 2.0, você ainda precisará apenas das bibliotecas regulares do .NET 2.0 e, apesar disso, usar certos recursos do compilador .NET 3.5, já que vários desses recursos só fazem uso do código .NET 2.0 no final .Leia mais sobre isto aqui: http://weblogs.asp.net/shahar/archive/2008/01/23/use-c-3-features-from-c-2-and-net-2-0-code.aspx

3.5 tem classes que 2.0 não tem.Func<...> por exemplo.Se você almeja o 2.0, não poderá usá-los.

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