¿Qué son los recursos de VB.Net y cómo se usan?

Después de que los estudiantes de Visual Basic aprendan todo sobre los bucles y las declaraciones y subrutinas condicionales, una de las siguientes cosas que a menudo preguntan es: "¿Cómo agrego un mapa de bits, un archivo .wav, un cursor personalizado u otro efecto especial?" Una respuesta son los archivos de recursos. Cuando agrega un archivo de recursos a su proyecto, se integra para una velocidad de ejecución máxima y una molestia mínima al empaquetar e implementar su aplicación.

El uso de archivos de recursos no es la única forma de incluir archivos en un proyecto VB, pero tiene ventajas reales. Por ejemplo, podría incluir un mapa de bits en un control PictureBox o usar la API mciSendString Win32. 

Microsoft define un recurso como "cualquier dato no ejecutable que se implemente lógicamente con una aplicación".

La forma más fácil de administrar archivos de recursos en su proyecto es seleccionar la pestaña Recursos en las propiedades del proyecto. Para ello, haga doble clic en Mi proyecto en el Explorador de soluciones o en las propiedades de su proyecto en el elemento del menú Proyecto..

Tipos de archivos de recursos

  • Instrumentos de cuerda
  • Imágenes 
  • Íconos
  • Audio
  • Archivos
  • Otro

Los archivos de recursos simplifican la globalización

El uso de archivos de recursos agrega otra ventaja: una mejor globalización. Los recursos normalmente se incluyen en su ensamblaje principal, pero .NET también le permite empaquetar recursos en ensamblajes satelitales. De esta manera, logra una mejor globalización porque incluye solo los conjuntos de satélites que se necesitan. Microsoft le dio a cada idioma dialecto un código. Por ejemplo, el dialecto americano del inglés se indica con la cadena "en-US", y el dialecto suizo del francés se indica con "fr-CH". Estos códigos identifican los conjuntos de satélites que contienen archivos de recursos específicos de la cultura. Cuando se ejecuta una aplicación, Windows usa automáticamente los recursos contenidos en el ensamblaje del satélite con la cultura determinada a partir de la configuración de Windows.

VB.Net Agregar archivos de recursos

Como los recursos son una propiedad de la solución en VB.Net, puede acceder a ellos al igual que otras propiedades: por nombre utilizando el objeto My.Resources. Para ilustrar, examine esta aplicación diseñada para mostrar iconos de los cuatro elementos de Aristóteles: aire, tierra, fuego y agua..

Primero, debe agregar los íconos. Seleccione la pestaña Recursos de las Propiedades del proyecto. Agregue iconos seleccionando Agregar archivo existente en el menú desplegable Agregar recursos. Después de agregar un recurso, el nuevo código se ve así:

Private Sub RadioButton1_CheckedChanged (…
Maneja MyBase.Load
Button1.Image = My.Resources.EARTH.ToBitmap
Button1.Text = "Tierra"
End Sub

Incrustar con Visual Studio

Si está utilizando Visual Studio, puede incrustar recursos directamente en el ensamblaje de su proyecto. Estos pasos agregan una imagen directamente a su proyecto:

  • Haga clic con el botón derecho en el proyecto en el Explorador de soluciones. Haga clic en Agregar y luego haga clic en Agregar elemento existente.
  • Busque su archivo de imagen y haga clic en Abrir.
  • Mostrar las propiedades de la imagen que se acaba de agregar.
  • Establezca la propiedad Build Action en Embedded Resource.

Luego puede usar el mapa de bits directamente en un código como este (donde el mapa de bits era el tercero, índice número 2 en el ensamblaje).

Dim res () As String = GetType (Form1) .Assembly.GetManifestResourceNames ()
PictureBox1.Image = Nuevo System.Drawing.Bitmap (_
GetType (Form1) .Assembly.GetManifestResourceStream (res (2)))

Aunque estos recursos están incrustados como datos binarios directamente en el ensamblaje principal o en los archivos de ensamblaje satelital, cuando construye su proyecto en Visual Studio, se hace referencia a ellos mediante un formato de archivo basado en XML que usa la extensión .resx. Por ejemplo, aquí hay un fragmento del archivo .resx que acaba de crear:


type = "System.Resources.ResXFileRef,
System.Windows.Forms ">
… \ Resources \ CLOUD.ICO; System.Drawing.Icon,
System.Drawing, Version = 2.0.0.0,
Cultura = neutral,
PublicKeyToken = b03f5f7f11d50a3a

Debido a que son solo archivos XML de texto, un archivo .resx no puede ser usado directamente por una aplicación de .NET Framework. Tiene que convertirse a un archivo binario ".resources", agregándolo a su aplicación. Este trabajo lo realiza un programa de utilidad llamado Resgen.exe. Es posible que desee hacer esto para crear los conjuntos de satélites para la globalización. Debe ejecutar resgen.exe desde un símbolo del sistema.

Fuente

"Resumen de recursos". Microsoft, 2015.