Pergunta

Isso deve ser bem vendo como o CLR na verdade ainda não mudou?

As caixas com C# 2.0 código tem tinha .NET 3.5 rolou para fora.

O plano de fundo é que nós temos um serviço do windows (.NET 2.0 exe criado com o VS2005, implantado ~150 servidores) que carrega dinamicamente assemblies (quase como plugins) para completar os vários itens de trabalho dele.Sempre que lançar uma nova versão da lógica de barramento, acabamos de soltar os assemblies em um servidor FTP e o serviço do windows sabe como procurar, capturar e armazenar as versões mais recentes.Novas assembléias estão agora construído usando o VS2008 e direcionando .NET 2.0, nós sabemos que não funciona ok.No entanto gostaríamos de começar a tirar proveito da linguagem C# 3.0 características, tais como o LINQ e direcionando as montagens contra .NET 3.5 sem precisar construir e implantar uma nova versão do serviço do windows.

Foi útil?

Solução

C#3 e .Net 3.5 adiciona novas montagens, mas o IL é inalterado.

Isso significa que, com .Net 2 montagens você pode compilar e usar o C#3, enquanto você não usar o Linq ou qualquer outra coisa que referências do Sistema.Linq ou Sistema.Núcleo

yield, var, sintaxe lambda, anon e tipos de inicializadores são todos compilador esperteza.O IL eles produzem é compatível.

Se você pode fazer referência a novas assembleias para 3.5 tudo deve funcionar.

Não há nenhuma nova versão do ASP.Net - ele ainda deve ser 2.0.50727 - mas você ainda deve compilar para 3.5

Outras dicas

rendimento, var, sintaxe lambda, anon tipos de e inicializadores são todos compilador a esperteza.O IL eles produzem é compatível com outros.

Menor nit-picking ponto, mas o rendimento foi de 2.0 recurso de qualquer maneira.

Isso é interessante.Eu estava olhando para LinqBridge ontem, depois de alguém neste fórum sugeriu-me e eles estão fazendo a mesma coisa.

Acho estranho que a Microsoft chamado de frameworks 2.0, 3.0 e 3.5, quando todos compilar para baixo, para produzir a mesma IL exigido pelo CLR 2.0.Eu teria pensado que a adição de versões para 2.0 teria feito mais sentido, embora eu suponho que também é difícil levar as pessoas para obter a sua cabeça em torno do fato de que existem diferentes versões de tempos de execução, compiladores e linguagens.

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