Código compartido

WCF RIA Services permite escribir lógica de aplicación que se comparte entre el nivel intermedio y el nivel de presentación, proporcionándose de ese modo idéntica funcionalidad tanto en el servidor como en el cliente. El código se puede compartir con archivos de código fuente o ensamblados.

A diferencia del proceso de generación automática de código que se describe en el tema Generación de código de cliente, el código compartido no se modifica durante la compilación. En su lugar, el código se copia o se comparte textualmente entre los niveles. El código compartido permite definir partes de lógica o extensiones de clase parcial para las entidades que se definen una vez en el servidor, pero que también obtienen código generado en el cliente, para que la misma lógica esté disponible para su uso en ambos lugares.

Archivos de código fuente compartidos

Puede agregar archivos de código fuente al nivel intermedio y, a continuación, designar explícitamente esos archivos para el uso compartido con el nivel de presentación. Hay dos enfoques para el uso compartido de archivos de código fuente entre niveles. El primero consiste en asignar un nombre a los archivos de código fuente de acuerdo con una convención de nomenclatura compartida: *.shared.cs (para C#) o *.shared.vb (para Visual Basic). El segundo consiste en utilizar la característica de archivos vinculados en Visual Studio 2010.

Convención de nomenclatura compartida

Cuando se utiliza la convención de nomenclatura compartida (*.shared.cs o *.shared.vb) para compartir archivos, debe implementar un modelo de "inserción" para compartir archivos de código fuente. Los archivos compartidos se copian activamente del proyecto de nivel intermedio al proyecto de cliente durante la compilación. La convención de nomenclatura compartida funciona para compartir archivos solo cuando existe un vínculo a RIA Services entre los proyectos de servidor y de cliente.

Archivo compartido

La convención de nomenclatura compartida tiene las siguientes ventajas:

Ventajas de la convención de nomenclatura compartida Descripción

Compatibilidad integrada

No se requiere ninguna acción por parte del desarrollador para mantener sincronizados los archivos compartidos.

Transparencia

El nombre indica claramente que está previsto que se comparta el archivo.

Mantenimiento automático

Según se agregan nuevos archivos compartidos, todos los proyectos de cliente vinculados al nivel intermedio se actualizan automáticamente cuando se compila la solución.

Experiencia de depuración fácil de entender

El desarrollador puede establecer puntos de interrupción en las versiones de servidor o de cliente del archivo.

La convención de nomenclatura compartida tiene las siguientes desventajas:

Desventajas de la convención de nomenclatura compartida Descripción

Nuevo concepto

El desarrollador debe conocer la convención de nomenclatura compartida.

Los archivos se copian

Los archivos compartidos se copian físicamente en los proyectos de cliente, lo que significa que un desarrollador puede editar accidentalmente la versión copiada y perder los cambios durante la siguiente compilación.

Para obtener más información, vea Compartir código a través de archivos de código fuente.

Archivos vinculados

Los archivos vinculados son una característica existente de Visual Studio 2010 y no es exclusiva de RIA Services . Puede existir un vínculo a RIA Services entre proyectos, pero no es obligatorio utilizar archivos vinculados. Cuando se utiliza el enfoque de archivos vinculados, se debe implementar un modelo de "extracción" para compartir los archivos de código fuente. El proyecto de cliente no contiene una copia del archivo. En su lugar, el proyecto de cliente solamente hace referencia al archivo del proyecto de servidor.

Archivo vinculado

También se pueden vincular los proyectos de servidor y de cliente a un archivo de otro proyecto.

Archivos vinculados

El enfoque de archivos vinculados tiene las siguientes ventajas:

Ventajas de los archivos vinculados Descripción

Característica existente en Visual Studio

El desarrollador no tiene que aprender una nueva convención.

El archivo no se copia

El archivo solamente existe en el proyecto de servidor. Por lo tanto, el desarrollador no puede cambiar una versión copiada del cliente y perder los cambios durante la siguiente compilación.

El enfoque de archivos vinculados tiene las siguientes desventajas:

Desventajas de los archivos vinculados Descripción

Se requiere una acción del usuario explícita

El desarrollador debe vincular cada archivo compartido.

No hay mantenimiento automático

Cada proyecto de cliente se debe actualizar cuando se agregan o quitan archivos compartidos.

Falta de transparencia

El desarrollador debe examinar el archivo de proyecto para determinar qué archivos se comparten.

Experiencia de depuración difícil

No es fácil determinar qué nivel solicitó un punto de interrupción.

Para obtener más información, vea Compartir código a través de archivos de código fuente.

Ensamblados compartidos

En lugar de compartir archivos de código fuente entre proyectos, puede compilar código en una biblioteca de clases y, a continuación, compartir la biblioteca a través de referencias de ensamblado. Puede utilizar las bibliotecas de clases de WCF RIA Services para asegurarse de que los ensamblados sean compatibles, incluso cuando se utilicen con marcos diferentes (como .NET Framework versión 4 y Silverlight 4 ).

En el siguiente diagrama se muestra una aplicación de n niveles que utiliza las bibliotecas de clases de RIA Services para compartir código. El nivel intermedio y el nivel de cliente utilizan referencias de ensamblado a las bibliotecas de clases.

Estructura de la biblioteca de clases

Para obtener más información sobre las bibliotecas de clases de RIA Services , vea Crear soluciones de RIA Services y Tutorial: crear una biblioteca de clases de RIA Services.