Pergunta

Eu li em Stack Overflow algumas pessoas que têm conversão para C # 2.0 para C # 3, mas é realmente vale a pena?

Eu tenho um projeto que é feito em 75% antes de ir na fase de manutenção. Estou perguntando a mim mesmo se vale a pena mudar para C # 3.0?

Update:

O projeto terá uma interface web agora para que antes de entrar na fase de manutenção, temos de desenvolver a parte web (tudo foi feito para fins internos com o Windows Forms). A maioria das peças será resused (back-end). A maioria das pessoas têm dito que não valia a pena no passado, porque ele já estava em 75% ... mas agora você ainda acha que não vale a pena?

O que tem sido feito por fim

Finalmente uma vez que estamos dando continuidade ao projeto com a interface web que irá atualizar a 3,5 para o novo ano. Obrigado a todos por todas as suas entradas.

Foi útil?

Solução

Não, eu não aconselho. Eu aconselharia a começar 3.5 em apenas novos projetos, a menos que haja uma razão específica contrário. Você não terá qualquer benefício de 3,5 por apenas recompilar, já que o código já está escrito (ou pelo menos 75% dela).

Se você precisar migrar para 3,5 no futuro, você pode facilmente fazê-lo. Claro, você terá código em 2,0 estilo, mas o que está feito está feito.

  • Seja conservador, não fazer algo a menos que você precisar dele.
  • Uma aplicação que é de 75% na C # 2.0 e 25% em C # 3.0 não é exatamente uma besta bom para manter. A C # 2.0 aplicação 100% é certamente mais sustentável.

Quando você está indo para iniciar um novo projeto, em seguida, por todos os meios mudar! A nova versão do framework é muito interessante e o interruptor é calorosamente recomendada.

Outras dicas

Clarificação
O C # 3.5 não existe. Há C # 1.0, C # 2.0 e C # 3.0.

Em seguida, há .NET 1.0, 1.1 .NET, .NET 2.0, 3.0 NET, e .NET 3.5.

Não devemos confundir as duas coisas.

C # 3.0 vs C # 2.0
Agora, é C # 3.0 vale o movimento? Eu diria que com a existência de métodos de extensão e expressões lambda, a resposta é sim. Estas duas características sozinho make para fácil de ler e mais rápido para escrever código. Adicionar que para as propriedades de auto-implementado, LINQ, e métodos parciais, e C # 3.0 apresenta-se como um movimento vantajoso.

No entanto, não é necessariamente benéfico para mover um projeto existente. Você tem que pesar os prós e os contras, especialmente com relação à introdução de novos bugs e instabilidade, antes de decidir migrar de trabalho existente. Para novos projetos, eu diria que começar com C # 3.0.

Existe alguma característica C # 3.5 você quer mal nesta fase? :)

Se for LINQ, você pode dar LINQBridge uma tentativa .. Com Studio multi-segmentação e LINQBridge, você vai ser capaz de escrever local (LINQ to Objects) consultas usando o poder do C # 3.0 do compilador e ainda seus programas vai exigir apenas Framework 2.0.

Eu acho que um monte de presente virá para baixo a seu estilo pessoal. IMHO, as melhores características do C # 3.5 realmente vir para o seguinte

  1. Expressões Lambda
  2. LINQ
  3. Métodos de extensão

Meu código OO ainda tende a olhar um pouco funcional orientada. Portanto eu vejo 3.5 como um benefício enorme e é definitivamente vale a pena o upgrade.

O que é ainda melhor é que é possível usar o compilador 3.5 para baixo alvo CLR 2.0. Isto permite-lhe implementar com base em um 2.0 instalar (vs a 3.0 / 3.5 instalar) usando o novo quadro. Todos os itens acima pode ser feito neste cenário, se você está disposto a adicionar os tipos apropriados em seu programa.

Na minha opinião, não há nenhuma boa razão para não mudar para 3.5.

O recurso verdadeiro assassino é que você pode continuar a orientar versões mais antigas do tempo de execução (2.0+), enquanto usando todos os novos recursos de linguagem. Assim, você pode usar as novas expressões lambda, métodos de extensão, tipos anônimos, e todas as outras coisas boas. E se os seus clientes ainda estão usando principalmente o quadro 2.0, você pode continuar visando o tempo de execução anteriormente.

(Só não use qualquer um dos aulas do quadro 3.5, se você tem que direcionar versões anteriores do tempo de execução.)

Pessoalmente, acho que se você está fazendo um aplicativo GUI desktop, a sua melhor aposta é usar o framework 3.0 ou 3.5, uma vez WPF é a melhor biblioteca de interface de usuário que eu já trabalhei com (por um longo tiro).

Por outro lado, se você já escreveu a maioria de seu GUI em WinForms, então você pode estar interessado no quadro 3.5, que permite (limitado) entrelaçamento de WinForms e elementos WPF GUI. Você pode manter o trabalho que você já fez, mas adicionar um agradável alguns toques aqui e ali, onde quer que faz sentido, com controles WPF.

Outro recurso útil do quadro 3.5 é "Coleção Initializers". Veja isso:

var myDictionary = new Dictionary<String, String> {
   { "key-1", "value-1" },
   { "key-2", "value-2" },
   { "key-3", "value-3" },
};

Neat, hein?

Eu teria gostado um pouco melhor se fosse um pouco mais JSON-like. Mas é uma funcionalidade muito conveniente de qualquer maneira.

Qualquer possível destino do evento que codificam para o tempo de execução 2.0!

Se o projeto está quase completa, você provavelmente não vai beneficiar os novos recursos do 3.5. Para novos projetos, é certamente olhar um valor.

É realmente depende do projeto, que é destinado para, eo que ele faz.

Seria seguro supor que o .NET Framework 2.0 está em muitos mais computadores do que a versão 3.5.

Além disso, há alguma coisa que você precisa do .NET 3.5 que não está disponível na versão 2.0 (como LINQ)? Se você está lidando com um monte de consultas e dados, eu iria mudar. Mas, novamente, depende do cliente e se você pretende manter esta aplicação para o futuro previsível.

Do ponto de vista da tecnologia, é tudo framework versão 2 e é muito pouco esforço para conseguir. As diferenças em 2.0, 3.0 e 3.5 são apenas código da biblioteca adicional e um pouco de açúcar sintático do compilador.

Não é como você precisa mudar ao longo do nada; alvejando Framework 3.5 você tem mais opções.

De suas equipes ponto de vista: Sim pena é isso. Ninguém quer trabalhar em code-bases antigas. Enquanto você está no calor do desenvolvimento, assim como você pode utilizar a tecnologia estável mais atual.

É realmente depende do que você precisa fazer. Se o seu projeto requer expressões lambda onde você está objetos de consulta com uma sintaxe clara, você deve olhar para 3.0.

Atualmente, estou lendo C # Em profundidade por Jon Skeet, e ele leva a abordagem de colocar para fora uma solução em C # 1.15, então evolui a solução para descrever a nova e útil funcionalidade que você entrar em 2.0 e 3.0. Este tipo de progressão seria um meio perfeito para responder suas perguntas. O livro lê bem também, então eu estou achando que eu estou ficando com ele rapidamente.

Você tem que pesar custo versus benefício. Você não fornecer informações suficientes sobre o seu projeto para permitir-nos aconselhá-lo aqui, mas considerar:

  • custo da conversão é muito pequena. C # 3.0 é quase completamente retrocompatível com 2,0 e executado no quadro 2.0
  • benefício também é muito pequena se a codificação está quase terminado, mas força crescer no longo prazo. Um novo recurso que você pode ter que implementar no futuro pode vir a ser muito mais fácil implementado usando Linq, por exemplo.

Eu fiz a conversão muitas vezes. Principalmente porque a sintaxe clara de expressões lambda torna o código mais fácil de seguir (pelo menos para mim).

Eu faço uso ReSharper que torna o uso de novo 3.5 apresenta um piscar de olhos como alguns mostram bastante como refatoração sugestões por ReSharper. Usando uma ferramenta como o que faz com que esta transição muito mais fácil.

3,5 constrói em cima de 2.0, então você não tem problemas saltando diretamente para 3.5.

Eu ... não há nenhum dano e você obter alguns benefícios dos novos recursos

Eu não entendo todas as pessoas dizendo que não fazê-lo. NET 2.0 é a corrente (CLR) tempo de execução. NET 3,0 e 3,5 tanto .NET execução em tempo de execução de 2,0. Movendo-se para o .NET 3.5 para obter o C # 3.0 recursos é literalmente uma questão de mudar uma única suspensa em suas propriedades do projeto. (OK, e implantar o tempo de execução 3.5 para suas máquinas de destino se você usar cerca de 3,5 características como LINQ, etc. Se a instalação 3.5 é um problema não, então é uma resposta tão fácil.)

Eu não mudaria nada menos que você tenha uma boa razão para fazê-lo; ou seja, há um bug que você não pode trabalhar em torno de 2,0.

A atualização do quadro em um ponto tão tardia do projecto é susceptível de causar alguns problemas que você realmente não precisa no momento.

Se você tem uma extensão para o projeto, que poderia ser uma coisa boa para mudar agora para a versão mais recente do .NET, caso contrário, eu não faria.

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