2009-04-01 22 views
6

Tengo algunos archivos DLL que sería mucho más fácil de usar .NET 3.5 internamente (para aprovechar Linq, etc.). Quiero utilizar estos DLL con sitios web asp.net que actualmente ejecutan asp.net 2.0.¿Se puede usar una DLL .NET 3.5 con un sitio web .net 2.0?

¿Es posible este escenario? ¿Existen restricciones o inconvenientes (por ejemplo, asp.net no realiza ninguna llamada a métodos que devuelvan objetos .NET 3.5 como IQueryable)?

Nota: Por supuesto, .net 3.5 se instalará en el servidor.

Respuesta

5

Para ampliar lo que dijo foosnazzy, .NET 3.5 (SP1) es solo .NET 2.0 SP2 con algunos ensamblajes nuevos. La única razón para no instalarlo en el sitio web sería si el sitio web no se ejecuta con .NET 2.0 SP2.

Esto es muy diferente de la forma en que solía ser - instalar .NET 1.1 en un sitio web .NET 1.0 Yo era responsable de romper el sitio web, aunque el sitio web no estaba usando 1.1 - Tenía instalado 1.1 para poder usar una herramienta en particular. La actualización de .NET 1.1 a .NET 2.0 fue una pesadilla aún peor.

Pero Microsoft aprendió de esto. Las versiones .NET de 2.0 .NET 3.5 SP1 usan el .NET 2.0 Common Language Runtime (CLR). De hecho, las personas que han instalado 3.5 a menudo se sorprenden de mirar la configuración de IIS y ver que sus sitios web todavía se muestran como ejecutando .NET 2.0. Pero es exactamente el mismo .NET 2.0, solo con dos service packs aplicados. Cualquier sitio que no use los nuevos ensambles no se verá afectado en absoluto (más allá de lo que podría hacer un paquete de servicio).

Para reiterar aún más lo que se ha dicho, las características de C# 3.0 son independientes del Framework. Por ejemplo, puede usar tipos anónimos y lambdas en código .NET 2.0 puro. Lo que no se puede hacer es usar LINQ, ya que eso requiere los nuevos ensambles en .NET 3.5.

3

Puede usar muchas funciones de C# 3 en .net 2.0, pero Linq no es una de ellas. Debe incluir las DLL de Linq, que no puede distribuir por separado y debe instalar el tiempo de ejecución completo de 3.5.

NOTA: Si .net 3.5 está instalado, creo que tendrá problemas si el sitio no está configurado para incluir ensamblajes desde 3.5. Puede funcionar en un proyecto de aplicación web (a diferencia de un proyecto de formularios web) ya que los archivos DLL se compilan de antemano y pueden incluir las referencias necesarias en los archivos PE, pero no estoy seguro.

+0

Entonces, si instalo un dll 3.5 y llamo solo a 2.0 métodos compatibles, ¿funcionará? – Keltex

2

3.5 agrega al marco 2.0, todo es completamente compatible con versiones anteriores.

+0

Pero si 3.5 no está instalado, entonces no puede hacer uso de las características 3.5. Por ejemplo, .net 3.5 no se instalará en Windows 2000, pero .net 2.0 lo hará. Por lo tanto, no es completamente compatible con versiones anteriores. –

2

Siempre hay LinqBridge, que le permite usar Linq To Objects en un entorno .Net 2.0. Sin embargo, hay algunas advertencias sobre su uso con ASP.Net, dependiendo de si utiliza la aplicación web ASP.NET o los proyectos del sitio web ASP.NET. Consulte this page para obtener más información.

Cuestiones relacionadas