2009-01-08 33 views
7

Somos una tienda de desarrollo que todavía hace la mayor parte de nuestro desarrollo en .NET 2.0. Estamos empezando a pensar sobre el uso de algunas de las cosas nuevas en 3.5 (LINQ, etc.) y hay algunos otros paquetes de software que estamos viendo que necesitan WPF, etc.¿Funcionarán .net 2.0 y 3.5 uno al lado del otro?

Nos gustaría poner 3.5 en funcionamiento en nuestro servidor de prueba, pero sin arruinar ninguno de los 2.0 sitios que ya tenemos en ejecución (y nos gustaría que siguieran funcionando en 2.0). ¿Hay algún problema oculto que deba conocer, o puedo simplemente instalar 3.5 en nuestra máquina Server 2003 y estar listo para continuar?

(La preocupación específica que es que a pesar Microsoft reclamando el .NET 2.0 componentes son los mismos en el punto 3.5, que en realidad cambian algo para romper el juego.)

Actualización: Apoyado en los comentarios de cada uno aquí y otro de lectura, decidimos morder la bala e instalar 3.5 en el servidor "solo para ver qué pasa".

Al ejecutar el programa de instalación, descubrimos (para sorpresa nuestra no despreciable) que .net 3.5 se había instalado en agosto, y ninguno de nosotros lo sabía.

Que, en realidad, es una actualización tan perfecta como usted puede pedir.

¡Gracias a todos!

Respuesta

2

3.5 es una extensión si 2.0. No hay 3.5 sin 2.0. Es en realidad un dll diferente (Core.dll). Esto no es como pasar de 1.1 a 2.0; si sus sitios más antiguos no hacen referencia a la nueva DLL, entonces esos sitios no se alteran en absoluto.

+0

core.dll no es una DLL diferente, es sólo otro DLL, junto con mscorlib y Sistema que se carga en el dominio de la aplicación. – casperOne

+0

Quise decir que el 2.0 dll original (mscorlib) no se modificó. –

+0

Aha, es bueno saberlo. Gracias. –

12

2.0 jugará muy bien con 3.5. .NET 3.5 es realmente solo algunas clases adicionales agregadas en la parte superior de 2.0, por lo que todo es compatible. Moví un montón de proyectos de 2.0 a 3.5, y todo migró sin problemas, con solo una recompilación.

+0

Esto se aplica a las aplicaciones web también? –

+0

Esa respuesta es incorrecta. 3.5 reemplaza ciertas partes de 2.0, por lo que necesita una prueba de regresión –

+0

no es absolutamente correcto. – Micah

1

Solo para agregar, las versiones de .NET están pensadas para funcionar juntas, no solo para la cosa 2.0/3.0/3.5. También puede ejecutar 1.1 junto y estará bien.

-2

No, no puedes. Es probable que funcione, pero 3.5 reemplaza ciertas partes de 2.0, por lo que necesita una prueba de regresión.

[editar] No vote si no le gusta la respuesta.

Formulé específicamente esta pregunta en TechEd. Mantener la misma API no significa que la implementación se comporta de la misma manera. En ese momento, la respuesta del hablante fue: mejoras en el rendimiento (sin detalles).

Para repetirme, ya que no parece registrarse: la API es la misma, la implementación es diferente (como se puede ver en el enlace de Hanselman en los comentarios). Micah, parece que no sabes de dónde estás hablando.

+0

¿Puedes dar un ejemplo de algo que se reemplaza y no se modifica? –

+0

Sí, por favor, los ejemplos serían excelentes. –

+0

Well 3.5 incluye .net 2.0 SP1 y 2, supongo que reemplaza las piezas del framework 2.0. por supuesto, es mejor no romper el cambio, pero nunca se sabe ... – JoshBerke

7

.Net 3.5 es, esencialmente, un conjunto de ensamblajes adicionales que se ejecutan al lado de las bibliotecas 2.0. No se produjo ningún cambio radical en ninguna de las bibliotecas 2.0 existentes. Puede convertir directamente todas sus aplicaciones 2.0 a 3.5 sin un solo problema. Esto incluye ejecutar aplicaciones 2.0 en el marco 3.5. Algunas optimizaciones y correcciones de errores se realizaron en 2.0, pero todas las interfaces públicas permanecen sin cambios. Esto se aplica a todos los espacios de nombres, incluido System.Web.

Se agregaron muchas características nuevas en las versiones 3.0 y 3.5 del marco, como WPF, Entorno de entidades y varios otros "frameworks". Las clases se agregaron a los espacios de nombres existentes pero, en realidad, viven en DLL independientes.

Hay que destacar como FryGuy señala:

tener cuidado con la instalación de 3.5 SP1, porque también instala 2.0 SP2, que añade algunas funciones adicionales. Este estaría bien, excepto por Visual Studio utilizará IntelliSense y todo va a compilarse bien y trabajar muy bien en el ordenador de desarrollo, pero fallar por completo con un error oscura en equipos con "sólo" 2.0.

Un ejemplo de esto es el método ManualResetEvent.WaitOne. SP1 agregó la sobrecarga WaitOne (int), mientras que sin ella, debe llamar al WaitOne (int, false).

Como CMS publicado desde 4GuysFromRolla:

Additive versions of the .NET Frameworks http://aspnet.4guysfromrolla.com/images/NewIn35.gif

1

que he hecho esto en dos sistemas muy grandes en los últimos dos años y tenía absolutamente ningún problema en cualquiera de los casos. 3.5 se ejecuta en la parte superior del tiempo de ejecución 2.0.

3.0 realmente debería haber sido 2.1, y 3.5 debería haber sido 2.5. Si eso ayuda a alguno. 3.0 y 3.5 son solo extensiones de funcionalidad para 2.0, y no incluyen su propio tiempo de ejecución. Las versiones de Service Pack a 2.0 son donde se encuentran los cambios a 2.0.

3

Sí, pero con una advertencia.

Tenga cuidado con la instalación de 3.5 SP1, ya que también instala 2.0 SP2, que agrega algunas funciones adicionales. Esto estaría bien, excepto que Visual Studio usará IntelliSense y todo se compilará bien y funcionará bien en la máquina del desarrollador, pero falla completamente con un error oscuro en las computadoras con "solo" 2.0.

Un ejemplo de esto es el método ManualResetEvent.WaitOne. SP1 agregó la sobrecarga WaitOne (int), mientras que sin ella, debe llamar a WaitOne (int, false).

1

Además de todas las respuestas proporcionadas, y como debe tener su trabajo en juego, primero debe probarlo en un servidor de prueba antes de implementarlo en un servidor de producción.

En mi experiencia no tuvimos ningún problema para actualizar a .NET 3.5 en nuestros servidores web.

+0

Excelente punto. Usamos el servidor de prueba, pero somos una tienda pequeña y solo tenemos una, por lo que incluso instalarla nos llevó a tener algunos nervios en la oficina. Aún así, todo bien, eso termina bien ... –

Cuestiones relacionadas