Compartir a través de


Conceptos comunes de recursos

La mayor parte de los aspectos de programación en .NET Framework son los mismos para todos los lenguajes compatibles, ya que sus compiladores generan código MSIL (Microsoft Intermediate Language, Lenguaje intermedio de Microsoft) administrado y autodescriptivo. El código MSIL administrado se ejecuta con Common Language Runtime, que proporciona integración entre varios lenguajes, administración de memoria automática, control de excepciones entre lenguajes, mayor seguridad y un modelo simplificado para la interacción entre componentes. Además del motor de tiempo de ejecución, .NET Framework incluye la biblioteca de clases de .NET Framework, a la que también se puede tener acceso desde cualquier lenguaje compatible con .NET. Varios aspectos de este proceso de desarrollo común son particularmente importantes al crear aplicaciones que utilizan recursos.

Unidades de creación

Las bibliotecas de clases de .NET Framework que se creen también se organizan en espacios de nombres jerárquicos y se almacenan en archivos ejecutables portátiles (PE), normalmente, archivos DLL y EXE. Puede haber varios espacios de nombres, incluso anidados, en un solo archivo PE. Además, un espacio de nombres puede dividirse en varios archivos PE. Se combinan uno o varios archivos PE (y posiblemente otros tipos de archivos, como pueden ser recursos) para crear un ensamblado, que es una unidad física que se puede implementar, volver a utilizar y a la que se puede asignar un número de versión. El motor de tiempo de ejecución utiliza los ensamblados para localizar y enlazar a los tipos a los que se hace referencia. Los recursos también se pueden enlazar en ensamblados, se pueden empaquetar por separado con varios formatos diferentes o incluso se pueden utilizar como archivos individuales, por ejemplo, como imágenes JPEG. La información relativa a lo que contiene un ensamblado, incluidas las clases y recursos, está contenida en el manifiesto del ensamblado.

Referencias culturales

En .NET Framework, una referencia cultural es el idioma del usuario combinado, opcionalmente, con la ubicación del propio usuario. Al especificar una referencia cultural, es posible utilizar un conjunto de preferencias comunes para determinada información, como cadenas, formato de fechas y formato de números, que corresponde a las convenciones de idioma y ubicación del usuario.

La ubicación puede ser un país o una región; esto último puede ser el término geopolíticamente correcto en una ubicación donde un país no se reconoce oficialmente. El idioma y la ubicación se pueden especificar mediante códigos definidos por RFC 1766 de Internet, "Etiquetas para la identificación de idiomas". Los propios códigos reales se definen mediante dos estándares ISO: ISO 639, "Códigos para la representación de nombres de idiomas", e ISO 3166, "Códigos para la representación de nombres de países". Vea el tema "Etiquetas de idioma y de país o región" en el Apéndice A: Información adicional de recursos para obtener información de referencia acerca de estos estándares.

Se puede tener acceso a las preferencias detalladas de referencias culturales mediante las instancias de la clase CultureInfo, a las que, a su vez, se tiene acceso mediante etiquetas de referencias culturales. Las etiquetas de referencias culturales utilizan el formato principal[-secundario], donde la etiqueta principal es el idioma y la etiqueta secundaria opcional es el código de país o región. Por convención, la etiqueta de idioma está compuesta de dos letras en minúsculas y la etiqueta de país o región está compuesta de dos letras en mayúsculas. La tabla siguiente contiene ejemplos de referencias de etiquetas culturales.

de Alemán
de-AT Alemán de Austria
de-CH Alemán de Suiza
en Inglés
en-US Inglés de Estados Unidos
en-AU Inglés de Australia
en-CA Inglés de Canadá
fr Francés
sp Español

En .NET Framework, las etiquetas de dos letras indican referencias culturales neutras, solamente de idioma, como de para alemán. Las etiquetas de cuatro letras indican referencias culturales específicas, tales como fr-CA para el francés que se habla en Canadá. En la mayor parte de las situaciones, la interfaz de usuario se especifica como una referencia cultural específica. Sin embargo, en ciertos casos, como ja-JP para el japonés de Japón, solamente hay una referencia cultural específica. En esta situación, a menudo se utilizan ambas etiquetas indistintamente. Si es necesario que una aplicación pueda establecer una referencia cultural específica, quizás como respuesta a la configuración de un explorador de Internet, la aplicación debe asignar todas las referencias culturales neutras a referencias culturales específicas con el método CreateSpecificCulture

Las referencias culturales en .NET Framework ocupan el lugar de la configuración regional de NLS (National Language Support, compatibilidad con el idioma nacional), que utiliza códigos de LCID (Locale Identifier, identificador de configuración regional). La propiedad LCID de la clase CultureInfo proporciona interoperabilidad y facilita la integración con el software basado en NLS.

Clases de recursos de .NET

La biblioteca de clases de .NET Framework ofrece varias clases para que los programadores puedan trabajar con recursos en sus aplicaciones y herramientas.

Clase ResourceManager

La clase ResourceManager (del espacio de nombres System.Resources) proporciona un acceso cómodo a recursos de referencias culturales en tiempo de ejecución. Esta clase proporciona una reserva de recursos (normalmente para la referencia cultural neutra) cuando no existe un recurso localizado, permite la serialización de recursos y proporciona el método CreateFileBasedResourceManager para tener acceso a los recursos que no están empaquetados en un ensamblado. Por supuesto, los programadores también pueden derivar clases de ResourceManager al crear soluciones de recursos personalizados.

Clase ResourceWriter

La clase ResourceWriter (del espacio de nombres System.Resources) escribe recursos en el formato predeterminado del sistema en un archivo o secuencia de salida. Los recursos se especifican como pares de nombre y valor mediante el método AddResource. En los nombres de recursos se distinguen mayúsculas y minúsculas cuando se utilizan para búsquedas, pero ResourceWriter no escribe un nombre de recurso en un archivo de recursos si el nombre varía solamente en las mayúsculas y minúsculas. La clase ResourceWriter proporciona una implementación predeterminada de la interfaz IResourceWriter y el programador la puede reemplazar.

**Nota   **Los recursos no se escribirán necesariamente en el mismo orden en que se agregaron con el programa.

Clase ResourceReader

La clase ResourceReader (del espacio de nombres System.Resources) enumera las secuencias y archivos de recursos, y lee los pares secuenciales de nombre y valor de los recursos. Esta clase proporciona una implementación predeterminada de la interfaz IResourceReader que, como la clase ResourceWriter, el programador puede reemplazar.

Clase ResourceSet

La clase ResourceSet (del espacio de nombres System.Resources) almacena todos los recursos localizados para una referencia cultural determinada. Todos los recursos se cargan inmediatamente en la memoria. A diferencia de ResourceManager, ResourceSet no tiene reservas de recursos. Por este motivo, ResourceSet resulta útil principalmente para crear herramientas y utilidades pero no en aplicaciones localizadas. ResourceSet también se puede utilizar para controlar la caché de recursos (por ejemplo, para impedir que se guarden imágenes en caché).

Clase CultureInfo

La clase CultureInfo (del espacio de nombres System.Globalization) contiene un conjunto de información sobre las preferencias del usuario en función del idioma, idioma secundario, país o región, y convenciones culturales del usuario. Esta clase se utiliza para dar formato a fechas, horas y números, para ordenar cadenas y para determinar la elección del idioma del texto.

Clase RegionInfo

La clase RegionInfo (del espacio de nombres System.Globalization) se utiliza para determinar la unidad de medida y asignar códigos de región a los nombres de regiones.

Método Assembly.GetManifestResourceStream

El método Assembly.GetManifestResourceStream (del espacio de nombres System.Reflection) carga directamente en una secuencia los datos de recursos del manifiesto. Resulta particularmente útil cuando los recursos están almacenados con formatos personalizados, que ResourceManager no podría entender de forma nativa.

**Nota   **Para usar el método Assembly.GetManifestResourceStream, los recursos deben encontrarse en un ensamblado.

Propiedad Thread.CurrentUICulture

La propiedad Thread.CurrentUICulture (del espacio de nombres System.Threading) es útil cuando hay que determinar la referencia cultural actual o, lo que es más importante, para establecer la referencia cultural y emular la ejecución en una versión localizada de Windows diferente. Esto es necesario ya que el Panel de control no puede mostrar varios LCID de interfaz en una versión de Windows 2000 que carezca de una interfaz de usuario multilenguaje. En cambio, se puede establecer la referencia cultural mediante programa en tiempo de ejecución o mediante subprocesos.

Implementación

En el caso más sencillo, un archivo independiente y ejecutable de .NET Framework se puede ejecutar localmente en cualquier equipo donde esté instalado Common Language Runtime. No hace falta más, no se crean entradas en el Registro, nada puede interrumpir otra aplicación ni hacer que se deje de ejecutar y con eliminar el archivo (si se copió localmente) basta para quitar la aplicación sin dejar huellas en el equipo. Las aplicaciones que se ejecutan desde una dirección URL que representa un sitio Web se comportan de forma ligeramente distinta. En estos casos, los ensamblados se instalan en la caché de descarga y después se borran automáticamente. Todas las demás aplicaciones, incluidas las de una dirección URL que representa un archivo, se ejecutan a partir del código fuente y no se guardan en la caché del equipo local.

Distribución

Por supuesto, la mayor parte de las aplicaciones de cliente se empaquetarán en un formato de distribución común (por ejemplo, en un archivo .cab o .msi) y muchas se instalarán mediante mecanismos de distribución de aplicaciones como Windows 2000 IntelliMirror o Microsoft Systems Management Server (SMS), que utilizan la tecnología Microsoft Installer. Para obtener más información acerca de Microsoft Installer, consulte la sección correspondiente del SDK de Win32.

Vea también

Crear recursos | Recuperar recursos mediante código | Resumen de recursos | Apéndice A: Información adicional de recursos | Apéndice B: Herramientas de recursos