viernes, 25 de junio de 2010

Crear libreria .dll en vb.net y como utilizarla

Muchas veces nos encontramos ante un problema, creamos un codigo que utilizamos frecuentemente en todos nuestros proyectos, y es algo tedioso tener que estar incluyendo el codigo en cada aplicación, por esto y gracias a las librerias .dll podemos dar una solución a este problema.
Pasos para crear la libreria:
Creamos un nuevo proyecto en Visual Studio, para este caso lo crearemos en el lenguaje visual basic.net, luego seleccionamos que sea un proyecto 'Class Library', dejo una captura para que se den una idea mas clara:

Luego ya dentro del proyecto, modificamos el nombre de la clase por uno mas significativo, para este ejemplo yo le llame a la clase "operaciones_basicas"
y el encabezado de la clase quedaria de la siguiente manera:
Public Class operaciones_basicas
Paso seguido creamos las funciones que deseamos, para este ejemplo yo realice las cuatro operaciones basicas, ademas de esto hice que recibieran dos parametros de tipo Object, ya que asi podra recibir valores de cualquier tipo(integer, string, double), y estas funciones retornan un valor igualmente Object, el siguiente es el codigo completo de la clase "operaciones_basicas":
Public Class operaciones_basicas

Public Shared Function sumar(ByVal num_uno, ByVal num_dos) As Object
Dim resultado
resultado = num_uno + num_dos
Return resultado
End Function

Public Shared Function restar(ByVal num_uno, ByVal num_dos) As Object
Dim resultado
resultado = num_uno - num_dos
Return resultado

End Function

Public Shared Function multiplicar(ByVal num_uno, ByVal num_dos) As Object
Dim resultado
resultado = num_uno * num_dos
Return resultado

End Function

Public Shared Function dividir(ByVal num_uno, ByVal num_dos) As Object
Dim resultado
resultado = num_uno / num_dos
Return resultado

End Function



End Class

Como pueden observar yo declare las funciones compartidas Public Shared Function,para asi lograr el acceso a estas funciones.
Ya para este punto tenemos la libreria completa, solo restara compilar e implementarlo en los proyectos deseados.
En mi caso realice un proyecto sencillo, un form con 2 textbox y cuatro botones:

Luego hay que agregar la referencia de nuestra dll en nuestro proyecto, y paso seguido en nuestro codigo indicar que importe nuestra libreria al proyecto:
Imports nombre_de_la_libreria.nombre_de_la_clase, en mi caso la importo de la siguiente manera Imports libreria_matematica.operaciones_basicas
,y paso seguido unicamente resta llamar cada función que usted desee y poseea la libreria que usted creó, aqui les dejo el código en el cual implemento todas las funciones que realice en la clase "operaciones_basicas":

Imports libreria_matematica.operaciones_basicas
Public Class Form1


Private Sub btn_sumar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_sumar.Click
If IsNumeric(txt_num_uno.Text) = True And IsNumeric(txt_num_dos.Text) = True Then
Dim num_uno As Double = txt_num_uno.Text
Dim num_dos As Double = txt_num_dos.Text
lbl_resultado.Text = sumar(num_uno, num_dos)
Else
lbl_resultado.Text = sumar(txt_num_uno.Text, txt_num_dos.Text)
End If


End Sub

Private Sub btn_restar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_restar.Click
lbl_resultado.Text = restar(txt_num_uno.Text, txt_num_dos.Text)

End Sub

Private Sub btn_multiplicar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_multiplicar.Click
lbl_resultado.Text = multiplicar(txt_num_uno.Text, txt_num_dos.Text)

End Sub

Private Sub btn_dividir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_dividir.Click
lbl_resultado.Text = dividir(txt_num_uno.Text, txt_num_dos.Text)

End Sub

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

End Sub
End Class

Aqui les dejo el proyecto completo: http://www.mediafire.com/?emnjnjuwmzj, y si tienen alguna duda simplemente mandar un email a jechu1@racsa.co.cr o dejar un comentario en el blog.

Rstricción de un textbox para que acepte solo numeros o letras.

En esta guía les mostrare un código muy sencillo, pero a su vez muy util para la restricción para el usuario de ingresar caracteres no permitidos en nuestras aplicaciones, y que sin duda nos evitara muchas molestias a la hora de ver como nos ¨botan¨ nuestras aplicaciones con diversas excepciones.
Primero que todo vamos a crear un nuevo proyecto, el cual como es de esperar incluiremos un textbox.
un ejemplo del form:

luego en el evento Keypress del textbox que soporta solo números iria el siguiente codigo:
Private Sub txt_solo_numeros_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txt_solo_numeros.KeyPress
If (Char.IsNumber(e.KeyChar) = True Or Char.IsControl(e.KeyChar) = True) Then
e.Handled = False
Else
e.Handled = True

End If
End Sub

Como se puede observar la condición IF evalua si es verdadero que se digitó un número mediante la linea Char.IsNumber(e.KeyChar)=true y tambien evalua si se digitó un control, necesario por si el usuario desea borrar lo digitado en el textbox, a condinuación les dejaré el evento del textbox que acepta solo letras, es la misma dinamica lo unico es que se le agrega el Char.IsSeparator(e.Keychar)=true para poder permitir que el usuario ingrese espacios en el textbox.

Private Sub txt_solo_letras_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txt_solo_letras.KeyPress
If (Char.IsLetter(e.KeyChar) = True Or Char.IsControl(e.KeyChar) = True Or Char.IsSeparator(e.KeyChar)) Then
e.Handled = False
Else
e.Handled = True

End If
End Sub

Aqui les dejo el proyecto completo: http://www.mediafire.com/?xdnm1lhydn5, y si tienen dudas solamente me mandan un email a jechu1@racsa.co.cr

Inicio del blog "Programación a lo tico"

La creación de este blog, en parte se debe a poder compartir mis escasos conocimientos en programación, pero que me siento en la obligación de compartirlos ya que a lo largo de mi corta experiencia programando he resuelto muchas de mis dudas en diversos foros y blogs, y como dicen por ahi un grano de arena es el inicio para crear la playa :)