Compartir a través de


(2) Aplicación dividida en componentes sencilla

Es evidente que la aplicación Hola a todos explicada anteriormente es trivial y apenas resulta representativa ni siquiera del programa más sencillo del mundo real. Así pues, ahora puede ver una versión del programa basado en componentes descrito detalladamente en el tutorial Introducción al desarrollo con .NET Framework. Esta nueva versión, que se puede encontrar en el subdirectorio 2_Simple, utiliza Client.exe para llamar a métodos solamente en los tipos contenidos en un componente único (Stringer.dll). El código del componente Stringer (que se encuentra en Stringer.cs) incluye varias instrucciones importantes. La primera especifica en qué parte del espacio de nombres global se pueden encontrar los tipos que contiene:

namespace org {...}

De nuevo debe crear una clase:

public class Stringer {...}

La clase contiene un único campo (StringsSet), un constructor (Stringer, con el mismo nombre que la propia clase), un método definido (GetString) y una propiedad (Count) con su correspondiente descriptor de acceso a la propiedad (get_Count) que el compilador crea automáticamente:

private string[] StringsSet; 
public Stringer() {...}
public string GetString(int index) {...}
public int Count {
       get { return StringsSet.Length; }
}

Al reunir todos estos elementos, un programa cliente puede cualificar completamente al método GetString, por ejemplo, org.Stringer.GetString.

No sorprende que, al mostrar el componente compilado, Ildasm.exe muestre todos sus miembros:

El cliente incluye una segunda instrucción using que especifica el espacio de nombres para facilitar el acceso a los tipos de Stringer.dll (el código está en el archivo Client.cs):

using org;

La generación de los archivos del proyecto es sencilla. Primero, cree el componente Stringer.dll. A continuación, cree Client.exe e importe el componente con el nombre del archivo que contiene el manifiesto en lugar de utilizar el nombre del espacio de nombres (que, en este caso, es org):

csc /target:library ... Stringer.cs
csc /reference:Stringer.dll ... Client.cs

Igual que en Hello.exe, el nuevo programa Client.exe contiene la información del manifiesto acerca de sí mismo, de la biblioteca de clases de .NET Framework y de los tipos que utiliza. Sin embargo, ahora contiene información acerca del componente Stringer y los tipos que contiene a los que se hace referencia (en este caso, org.Stringer).

**Nota   **El cliente utiliza ensamblados privados, por lo que no se comprueba la información de la versión.

La ilustración siguiente muestra la información del manifiesto para el componente Stringer:

En este ejemplo en particular, la DLL forma todo el ensamblado. Sin embargo, esto no siempre se cumple. Por ejemplo, en algunos escenarios de desarrollo, podría hacer falta combinar en un solo ensamblado varias DLL creadas en diversos idiomas. También podría ser ventajoso combinar varias DLL en un solo ensamblado para aprovechar reglas de ámbito especiales que permitan tener acceso a métodos de los componentes mientras se mantiene el acceso dentro del propio ensamblado. En estas situaciones, puede usar la utilidad Al.exe (Assembly Linker, vinculador de ensamblado), descrita en el Apéndice B: Herramientas de empaquetado e implementación, para personalizar los ensamblados.

Vea también

Implementar aplicaciones divididas en componentes | (3) Ruta de acceso para componentes privados | (4) Componente compartido | (5) Control de versiones de componentes | Resumen de empaquetado e implementación | Apéndice A: Información adicional acerca del empaquetado y de la implementación | Apéndice B: Herramientas de empaquetado e implementación