Manual
Manual
NET
ndice Temtico
Bsico Intermedio Avanzado
Entorno de Desarrollo
.NET Framework
.NET
namespaces
Nuevo Proyecto
Evento
Manejador de Eventos
Procedimientos
Control Label
Control TextBox
Control DateTimePicker
Control LinkLabel
Control MainMenu
Funciones Intrinsecas
Funciones Financieras
Cuadros de Dialogo
OpenFileDialog
ColorDialog
FontDialog
PrintDialog
PrintPreviewDialog
PageSetupDialog
Dim as
InputBox
Tipos de Datos
Constantes
Operadores
Operadores Aritmticos
Operadores String
Operadores Comparativos
Operadores Lgicos
Operadores Abreviados
Precedencia de Operadores
Sentencias de Control
Do ... Loop
Exit
Control Timer
Sentencia Rnd()
Mtodo Randomize()
Ventana de Comandos
Control ListBox
Funcin IsNumeric
Control CheckBox
Control RadioButton
Evento KeyPress
Mdulo
Matrices/Arreglos/Vectores
Clase Array
Colecciones
Manipulacin de Cadenas
Automatizacin
Componente Process
Instalacin Distribuida
Formularios
StreamReader
StreamWriter
Grficos
Sistema de Coordenadas
Clase System.Drawing.Graphics
Evento Paint
Opacidad en Formularios
Clases y Objetos
Encapsulacin
Herencia
Polimorfismo
Campos
Propiedades
Mtodos
Constructores
Bsico Intermedio Avanzado
Impresin
Impresin de un grfico
Impresin de un texto
Impresin de un archivo
Bases de Datos
ADO.NET
Conexin
Controles Enlazados
Mtodo Fill
Navegacin de un Dataset
Web
Web Forms
State Management
View State
Query String
Cookies
Tcnicas de Administracin de Estados del Lado del
Servidor
Application State
Sesion State
Database Support
Sistemas Inteligentes
Entorno de Desarrollo
El Entorno de Desarrollo recibe el nombre de Entorno de Desarrollo de
Microsoft Visual Studio .NET. Este entorno es personalizable y contiene
todas las herramientas necesarias para construir programas para Microsoft
Windows.
El Entorno de Desarrollo contiene mltiples ventanas y mltiples
funcionalidades y es por consecuencia llamado un entorno de desarrollo
integrado (integrated development environment IDE).
La ventana central es la ventana de diseo (Designer Window), la cual
contiene el formulario a desarrollar.
La caja de herramientas (ToolBox) se localiza de lado izquierdo. En el
extremo derecho tenemos la ventana de explorador de soluciones
(Solution Explorer).
La ventana de propiedades (Properties window) contiene tres partes:
La parte superior contiene un combo box que muestra el
nombre y la clase del objeto seleccionado.
Abs(n)
Descripcin
Calcula el valor absoluto de n
Exp(n)
Sin(n)
Sqr(n)
Tan(n)
Imports System.Math
Public Class Form1
.
.
.
Private
Sub
Form1_Load(ByVal
sender
System.Object,
ByVal e As System.EventArgs)Handles MyBase.Load
txtOutput.Text += Sqrt(9) & vbNewLine
.
.
.
As
.NET
La biblioteca de clases .NET es una biblioteca de clases incluida en
el Microsoft .NET Framework y est diseada para ser la base sobre las
cuales las aplicaciones .NET son construidas.
namespaces
La biblioteca .NET contiene un nmero considerable de clases con cdigo
reutilizable,
para
ayudar
a
controlar
esta
complejidad .NET utiliza namespaces, colecciones de clases relacionadas.
Nuevo Proyecto
De clic en el botn [New Project] o File/New/Project, como tipo de
proyecto
seleccione Visual
Basic
Project,
como
plantilla
seleccione Windows Application, por ltimo indique la ubicacin donde
desea almacenar su proyecto. Al dar clic Visual Studio configura el entorno
de desarrollo y crea un directorio con el mismo nombre que especifico para
la aplicacin.
Procedimientos
Un procedimiento es un conjunto de sentencias que realizan una accin
lgica. Existen tres tipos de procedimientos en Visual Basic .NET:
Event procedures/Event handler, procedimiento que contiene
cdigo que es ejecutado en respuesta a un evento. Cuando el evento
es disparado el cdigo dentro del manejador de eventos es
ejecutado.
Visual Basic .NET para los manejadores de eventos utiliza una
convencin estndar la cual combina el nombre del objeto seguido
de un guin bajo y el nombre del evento.
Prefijo
Button
Btn
Label
Lbl
PictureBox
Pic
Timer
Tmr
Text Box
Txt
List Box
Lst
Combo Box
Cbo
Check Box
Chk
Radio Button
Rad
Control TextBox
El control TextBox tiene una capacidad de almacenamiento de 32 Kbytes
de texto.
Control DateTimePicker
El control DateTimePicker muestra por defecto la fecha actual que es
posible modificar a travs de su propiedad value.
Este control puede mostrar fechas u horas, si desea mostrar horas utilice:
nombreControl.Format
DateTimePickerFormat.Time
Control LinkLabel
A travs de este control es posible abrir el navegador por default y acceder
a un URL especifico:
LinkLabel1.LinkVisited = True
System.Diagnostics.Process.Start(LinkLabel1.Text)
Donde LinkLabel1.Text es
el
valor
que
tiene
asignado
la
propiedad Text por ejemplo file:///C:/pagina.html si quiere probar sin
tener acceso a internet o si quiere probar con acceso a internet seria
http://www.elSitioWeb.com.
Si requiere especificar el navegador con el cual desea abrir el URL basta con
sealarlo:
System.Diagnostics.Process.Start("firefox.exe",
LinkLabel2.Text)
'La pgina se mostrara utilizando el navegador
firefox
Es necesario sealar algo importante del cdigo y adentrarnos a la
programacin .NET, ya que el mtodo Start de la claseProcess inicia en
memoria un proceso de programa ejecutable para el navegador.
La clase Process hace mucho ms que eso pero la parte a destacar es que
forma parte de la biblioteca de objetos System.Diagnostics la cual los
programadores
Visual
Basic
.NET
llaman espacio
de
nombres System.Diagnostics.
En cuanto al mtodo Process.Start destaca que adems de abrir una
pgina web puede ser utilizado para ejecutar otras aplicaciones:
System.Diagnostics.Process.Start(LinkLabel3.Text)
'Donde
el
valor
de
LinkLabel3.Text
"winword"
es
System.Diagnostics.Process.Start("excel",
"c:pagos.xls")
Private Sub
MenuItem2_Click(ByVal
System.Object, ByVal e As System.EventArgs) _
Handles MenuItem2.Click
MsgBox("opcin 1_1")
End Sub
Private Sub
MenuItem3_Click(ByVal
System.Object, ByVal e As System.EventArgs) _
Handles MenuItem3.Click
MsgBox("opcin 1_2")
End Sub
Private Sub
MenuItem5_Click(ByVal
System.Object, ByVal e As System.EventArgs) _
Handles MenuItem5.Click
MsgBox("opcin 2_1")
End Sub
Funciones Intrinsecas
sender
As
sender
As
sender
As
string especfico.
Funciones Financieras
Visual
Basic
.NET
provee
funciones
financieras
como Pmt(Rate,Nper,PV) para
determinar
pagos
mensuales
yFV(Rate,Nper,Pmt) para determinar el valor futuro de una anualidad
basada en pagos fijos periodicos e intereses de tasa fija.
Funciones de Tiempo y Hora
En Visual Basic .NET existen funciones a travs de las cuales es posible
manipular el tiempo y la hora:
TimeString, regresa la hora actual del sistema.
sistema.
sistema.
Private
Sub
Button1_Click(ByVal
System.Object, ByVal e As System.EventArgs)_
Handles Button1.Click
txtTimeString.Text = TimeString
End Sub
sender
As
sender
As
Handles Button2.Click
txtDateString.Text = DateString
End Sub
Private
Sub
Button3_Click(ByVal
System.Object, ByVal e As System.EventArgs)_
Handles Button3.Click
txtNow.Text = Now
End Sub
sender
As
Private
Sub
Button4_Click(ByVal
System.Object, ByVal e As System.EventArgs)_
Handles Button4.Click
txtHour.Text = Hour(Now)
End Sub
sender
As
Private
Sub
Button5_Click(ByVal
System.Object, ByVal e As System.EventArgs)_
Handles Button5.Click
txtMinute.Text = Minute(Now)
End Sub
sender
As
Private
Sub
Button6_Click(ByVal
System.Object, ByVal e As System.EventArgs)_
Handles Button6.Click
txtSecond.Text = Second(Now)
End Sub
sender
As
Private
Sub
Button7_Click(ByVal
sender
System.Object, ByVal e As System.EventArgs)_
Handles Button7.Click
txtDay.Text
Microsoft.VisualBasic.DateAndTime.Day(Now)
End Sub
As
Private
Sub
Button8_Click(ByVal
System.Object, ByVal e As System.EventArgs)_
Handles Button8.Click
txtMonth.Text = Month(Now)
End Sub
sender
As
Private
Sub
Button9_Click(ByVal
System.Object, ByVal e As System.EventArgs)_
Handles Button9.Click
txtYear.Text = Year(Now)
End Sub
sender
As
Private
Sub
Button10_Click(ByVal
System.Object, ByVal e As System.EventArgs)_
Handles Button10.Click
txtWeekday.Text = Weekday(Now)
sender
As
End Sub
Cuadros de Dialogo
Visual Basic .NET cuanta con siete tipos de cuadro de dialogo que facilitan
la construccin de interfaz de usuario:
OpenFileDialog, obtiene unidad, nombre de directorio y
nombre de un archivo existente.
para la fuente.
paleta.
PrintDialog,
para
que
el
usuario
defina
opciones
de
impresin
impresin.
dr = ofd.ShowDialog()
MsgBox(dr)
La siguiente lnea descarga el control de imagen:
pb.Image = Nothing
ColorDialog
El control ColorDialog representa un dialogo preconfigurado que despliega
la caja de dialogo de color estndar, permitiendo al usuario seleccionar el
color o definir un color personalizado, para desplegar la caja de dialogo de
color se utiliza su mtodo ShowDialog, la propiedad color mantiene el
color seleccionado por el usuario.
Es posible agregar el control ColorDialog al formulario aunque est no este
visiblemente contenido en el formulario pero si visible en la bandeja de
componentes o es posible agregar el control ColorDialog a travs de
cdigo declarando un objeto de este tipo.
Private
Sub
BtnFont_Click(ByVal
System.Object, ByVal e As System.EventArgs) _
Handles BtnFont.Click
Dim FD As New FontDialog
sender
As
FD.ShowDialog()
LblText.Font = FD.Font
End Sub
PrintDialog
El control PrintDialog es una caja de dialogo preconfigurada, utilizada para
seleccionar una impresora, escoger las pginas a imprimir y determinar
otras caractersticas de impresin en aplicaciones Windows. Es posible
habilitar al usuario para imprimir varias partes de sus documentos:
imprimir todo, imprimir un rango de pginas o imprimir una seleccin. La
propiedad Document se establece con un objeto PrintDocument, para
desplegar la caja de dialogo de impresin utilice el mtodo ShowDialog, la
caja de dialogo de impresin almacena la configuracin del usuario en el
objeto PrintDocument y para imprimir utilice el mtodo Print.
PrintPreviewDialog
El control PrintPreviewDialog es una caja de dialogo preconfigurada, para
presentar como podra ser el documento cuando se imprima. La
propiedad Document se establece con un objeto PrintDocument, el cual
tiene propiedades que describen que ser impreso y la habilidad para
imprimir dentro de una aplicacin Windows, para desplegar la caja de
dialogo de impresin-previa utilice el mtodo ShowDialog,
PageSetupDialog
El control PageSetupDialog es una caja de dialogo preconfigurada que
permite al usuario manipular la configuracin de pginas, incluyendo
margenes y orientacin del papel. La propiedad Document se establece con
un objeto PrintDocument, para desplegar la caja de dialogo de
PageSettings utilice el mtodo ShowDialog, la seleccin del usuario se
almacena en la propiedad PageSettings y debera entonces ser copiado al
objeto PrintDocument.
Dim as
Visual Basic .NET no permite el uso del tipo de dato Variant y todas las
variables
debern
ser
declaradas
por
las
instrucciones
Dim nombreVarible as tipoDato.
Recomendaciones:
El nombre de las variables deberan comenzar con una letra
As
Visual Basic .NET incorpora la instruccin Option Strict si desea que los
tipos de datos en las operaciones sean del mismo tipo y evitar la conversin
y perdida de datos.
Tam
ao
Boolea
n
2
byte
s
Byte
Char
1
byte
2
byte
s
Funci Validacin
n de
de
Conve Conversi
rsin
n
Rango
Desde
True
Hasta
False
255(unsigned)
65535
CBoo
l
Cualquier
dato
de
tipo String
o
valor
numrico
CByt
e
De 0 a
255,
las
fracciones
se
redondean
CByt
e
Cualquier
expresin
String
vlida
o
valor en el
rango de 0
a 65535
Date
8
byte
s
0:00:00
Enero 1 del
0001
Cualquier
11:59:59 PM
CDat expresin
Deciembre 31 del
vlida de
e
fecha
y
9999
tiempo
+/0 79,228,162,514,264,337,593,54
Nmeros
3,950,335(sin punto decimal)
Decima 16
CDec comprendi
byte
l
dos en su
+/s
rango
0 7.922816251426433759354395033
5(con 28 digitos en la parte decimal)
Double
(punto
foltan 8
te
de byte
doble s
precis
in)
1.797693134862
31570E+308
4.940656458412
46544E-324
Nmeros
4.940656458412
46544E-324 CDbl comprendi
dos en su
1.797693134862
rango
31570E+308
Intege 4
byte -2,147,483,648
r
Nmeros
comprendi
dos en su
rango
Long
8
byte
s
9,223,372,036,
854,775,808
2,147,483,647 CInt
Nmeros
9,223,372,036,
CLng comprendi
854,775,807
dos en su
rango
Cualquier
CObj expresin
Short
2
byte
s
-32,768
vlida
CSho
rt
Nmeros
comprendi
dos en su
rango, las
fracciones
son
redondead
as
-1.401298E-45
CSng
3.4028235E+38
Nmeros
comprendi
dos en su
rango, las
fracciones
son
redondead
as
32,767
Single
(punto
4
decimal
byte
de
s
precision
simple)
String
-3.4028235E+38
1.401298E-45
4
Depende de la plataforma en la que se
byte
integre
s
CStr
Aproximad
amente 2
billones de
caracteres
Unicode.
Structure Persona
Dim sNombre As String
Dim nEdad As Integer
Dim dFechaNac As Date
End Structure
Private
Sub
Form1_Load(ByVal
sender
As
System.Object, ByVal e As System.EventArgs)_
Handles MyBase.Load
Dim Empleado As Persona
Empleado.sNombre = "Gerardo ngeles Nava"
Empleado.nEdad = 33
Empleado.dFechaNac = "21 / 9 / 1971"
txtOutput.Text = Empleado.sNombre & vbNewLine
txtOutput.Text += Empleado.nEdad & vbNewLine
txtOutput.Text += Empleado.dFechaNac
End Sub
Cada variable declarada dentro de la estructura es llamado un member.
Definicin una estructura vacia:
Descripcin
Suma
Resta
Multiplicacin
Divisin
Divisin entera (parte entera de la divisin)
Mod
&
Concatenacin de Cadenas
-Infinito-")
End If
If
CStr(10
/
MsgBox("manejador de clculo")
0)
"Infinito"
Then
Operadores Aritmticos
Los operadores aritmticos requieren operadores numricos ( ^,*,/,,Mod,
+,-) y producen resultados numricos.
Operadores String
El operador de concatenacin (&) String requiere operadores String y
producen resultados String.
Operadores Comparativos
Los operadores Comparativos requieren operadores Comparativos
(>,<,>=,<=,=,<>) y producen un resultado lgico (True or False).
Operadores Lgicos
Los operadores Lgicos requieren operadores Lgicos ( NOT,AND,OR,XOR) y
producen un resultado lgico.
Operadores Abreviados
Visual Basic .NET incorpora nuevos operadores abreviados que facilitan la
escritura de cdigo, por ejemplo:
x = x + 1 'Antes escribia
x += 1 'Ahora puede escribir
Operadores Abreviados
+=
-=
*=
/=
=
^
&=
Precedencia de Operadores
A continuacin se muestra el orden de precedencia/prioridad/jerarqua de
los operadores en Visual Basic .NET
Precedencia de Operadores
( )
^
*/
Mod
+Sentencias de Control
Trataremos de destacar las novedades y cambios en cuando lo referente a
Visual Basic .NET y citaremos la referencia al Tutorial de Visual Basic 6.
Sentencias de Control
A manera de resumen recordaremos que For se utiliza cuando se conoce
de antemano el nmero de iteracciones a ejecutarse. Do se utiliza cuando
no se conoce de antemano el nmero de iteraciones a ejecutarse. Si al
menos debe ejecutarse 1 iteracin es necesario colocar la expresin
condicional al final del ciclo. Evite ciclos infinitos, para ello asegurese de
que estos ciclos tengan una expresin condicional de salida. Utilice Until a
diferencia de While cuando requiera que la expresin condicional sea la
contraria, por ejemplo con While la expresin condicional podra ser A <>
B y con Until podra serA = B.
Descripcin
And
Or
Not
Xor
AndAlso
OrElse
el
nombre
Do While condicin
sentencias
Loop
Do Until condicin
sentencias
Loop
Do
sentencias
Loop While condicin
Do
sentencias
Loop Until condicin
Exit
La sentencia Exit permite salir inmediatamente de una decisin, ciclo o
procedimiento.
Control Timer
A travs del control Timer es posible ejecutar una instruccin en un
intervalo de tiempo especfico, este Timer se activa estableciendo su
propiedad Interval con el valor True y se ejecutar hasta que por medio
de la accin del usuario lo detenga o se desactive el temporizador.
Cuando agrega un Timer este no es visible en el formulario pero si en la
parte inferior de la pantalla (Bandeja de Componentes), justo debajo del
formulario.
En Visual Basic .NET el nombre del control cambia su nombre
por Timer_Tick
Por ejemplo si desea que se ejecute una accin cada segundo, ser
necesario cambiar el valor de la propiedad Interval a1000 milisegundos.
Para iniciar la ejecucin del propio Timer es necesario establecer el valor
de la propiedad Enabled a True.
Para detencer
mtodo Stop().
la
ejecucin
del Timer es
necesario
invocar
Dim i As Integer = 0
Private
Sub
btnInicio_Click(ByVal
sender
System.Object
, ByVal e As System.EventArgs) _
Handles btnInicio.Click
Timer1.Enabled = True
End Sub
Private
Sub
Timer1_Tick(ByVal
sender
System.Object, ByVal e As System.EventArgs) _
Handles Timer1.Tick
lblTic.Text = CStr(i)
i += 1
End Sub
Private
Sub
btnFin_Click(ByVal
sender
System.Object, ByVal e As System.EventArgs) _
Handles btnFin.Click
Timer1.Stop()
End Sub
Sentencia Rnd()
el
As
As
As
Visual Basic .NET provee la funcin Rnd() la cual genera un valor aleatorio
(random) entre 0.0 y 1.0
sender
As
Note que cada vez que da clic al botn se genera un nmero aleatorio
(random) y se muestra en la caja de texto, pero cierre el programa y
ejecutelo de nuevo, notar que siempre d la misma secuencia de nmeros,
es por ello que a estos nmeros se les llame pseudo-aleatorios.
Si requiere obtener un nmero entero a partir del nmero generado, en vez
de la fraccin, entonces multipliquelo por 10 y despus redondeelo
utilizando la funcin de redondeo de la clase Math
As
TxtOut.Text = Rnd()
End Sub
El
mtodo Randomize pertenece
Clase Microsoft.VisualBasic.VBMath.
la
Dim a
a = "uno.dos.tres"
a = a.Split(".")
MsgBox(a(3)) ' el elemento 3 no existe, el arreglo inicia
en el elemento 0 y termina en 2
>file.
Inmediato
?sNombre
A continuacin se presentar su valor.
Control ListBox
El control ListBox hace visible una lista de items, donde el usuario puede
seleccionar items en la lista utilizando los clics del mouse.
sender
As
Tendr que hacer su funcin de validacin tan robusta como la requiera, por
ejemplo una validacin previa en una entrada de datos, seria pensar que el
usuario intento dar un nmero pero al escribir, sin desearlo digito un
espacio, para la perspectiva del usuario novato, quiz vea que
efectivamente escribio un nmero y no le toma importancia a los espacios
en blanco, por lo tanto lo primero que tendriamos que realizar es la
eliminacin de los espacios en blanco, pero no slo los que probablemente
esten al inicio, sino los que tambin estn en la parte intermedia y los que
estn en la parte final, para la eliminacin de los espacios en blanco al inicio
y al final de la entrada del usuario podriamos utilizar una sola funcin Trim,
pero, Qu hay de los espacios en blanco intermedios?.
Or
(Asc(e.KeyChar))
System.Windows.Forms.Keys.Back Then
e.Handled = False
Else
e.Handled = True
End If
End Sub
Private
Sub
BtnOpen_Click(ByVal
System.Object, ByVal e As System.EventArgs) _
Handles BtnOpen.Click
Dim OFD As New OpenFileDialog
OFD.ShowDialog()
wmp.openPlayer(OFD.FileName)
End Sub
sender
As
Try
sentencia(s) que pueden generar un error en
tiempo de ejecucin
Catch
(el error se genero)
sentencia(s) que definen las acciones a seguir
ya que se genero el error
Finally
sentencia(s) que reestablecen las condiciones
antes de generarse el error.
End Try
La palabra reservada Finally es opcional.
El cdigo contenido dentro de un bloque Try recibe el nombre de cdigo
protegido, porque evita la interrupcin del programa o aplicacin y ejecuta
las instrucciones contenidas en Catch.
Para probar ms de una condicin de error en tiempo de ejecucin utilice la
sentencia Catch When:
Try
'Evaluar expresin
Catch When Err.Number = 13
'Ocurrio un error de tipo de datos, no
coinciden los tipos
Catch When Err.Number = 6
'Ocurrio un error en el control del
ndice, desbordamiento
Catch
'Controlar el error
End Try
Por ltimo, este mecanismo al igual que las sentencias de control tiene una
manera de salir del bloque ya sea este Try oCatch a travs del empleo de
la instruccin Exit try, pero si contiene una sentencia Finally el cdigo
Try
'sentencia(s) que pueden generar un error en
tiempo de ejecucin
'Bajo determinada condicin Exit try
Catch
'(el error se genero)
'sentencia(s) que definen las acciones a
seguir ya que se genero el error
'Bajo determinada condicin Exit try
Finally
'sentencia(s) que reestablecen las condiciones
antes de generarse el error.
End Try
Err
Recordemos que el objeto Err tiene propiedades utiles como Number para
obtener el nmero de error que se produjo, Description para obtener una
descripcin del error ocurrido, todo ello referente al ltimo error ocurrido.
Mdulo
La novedad en Visual Basic .NET en lo referente a mdulos es que ahora el
mdulo tiene instrucciones de inicio y fin que lo delimitan:
Otra novedad en Visual Basic .NET es que los argumentos de los
procedimientos se pasan ByVal, es decir, no se modifica el valor original de
la variable sino que se manda una copia del valor, por lo que quiz sea
necesario la mayor parte de las veces indicar que se pasan ByRef.
Dim i As Integer
Dim aNumeros(9) As Integer
Private Sub Form1_Load(ByVal sender As System.Object,
ByVal e As System.EventArgs) _
Handles MyBase.Load
For i = 0 To 9
Randomize()
aNumeros(i) = Rnd() * 9
Next
ShowElements(aNumeros, ListBox1)
End Sub
Private Sub ShowElements(ByRef a As Array, ByVal list
As ListBox)
For i = 0 To 9
list.Items.Add(a(i))
Next
End Sub
Private
Sub
BtnOrder_Click(ByVal
sender
As
System.Object, ByVal e As System.EventArgs) _
Handles BtnOrder.Click
Array.Sort(aNumeros)
ShowElements(aNumeros, ListBox2)
End Sub
Colecciones
FileOpen(numeroArchivo,directorioNombreArchivo,modoApe
rtura), abre un archivo de texto para entrada y salida.
Donde el primer argumento es un nmero entre 1 y 255 cuya
funcin es controlar los archivos abiertos que tiene un programa, en
el segundo argumento se especifica la ruta y nombre del archivo
que deseamos abrir y por ltimo es necesario especificar en que
modo se abrira el archivo, es decir, si deseamos agregar datos
nuevos utilizamos el mtodo Append, si deseamos leer su contenido
utilizamos input, si deseamos escribir outputo tambin es posible
abrirlo en modo binario binary o en modo aleatorio random.
ofd.Filter = "txt|*.txt|ini|*.ini|log|*.log|inf|
*.inf"
ofd.ShowDialog()
FileOpen(1, ofd.FileName, OpenMode.Input)
Precaucin, tenga cuidado con el modo de apertura de archivos ya
que si abre un archivo con Output se elimina el contenido del
archivo dejandolo vacio y en espera de nuevos datos. Cuando
requiera leer su contenido utilice Input.
nLine += 1
Else
MsgBox("Fin de archivo, no hay ms lneas
que leer")
End If
EOF, comprueba el final del archivo de texto.
PrintLine(numeroArchivo,
As
As
Manipulacin de Cadenas
El mtodo Concat hace posible concatenar cadenas de texto.
1, sorts after
Ejemplo:
Dim s As String
Private Sub Form1_Load(ByVal sender As System.Object,
ByVal e As System.EventArgs) _
Handles MyBase.Load
lblTitulo.Text = s.Concat("
", "www", ".",
"informatique", ".", "com", ".", _
"mx", " ", "Tutoriales de Programacin
")
End Sub
Private
Sub
btnLower_Click(ByVal
System.Object, ByVal e As System.EventArgs) _
Handles btnLower.Click
txtOut.Text = lblTitulo.Text.ToLower
End Sub
sender
As
Private
Sub
btnUpper_Click(ByVal
System.Object, ByVal e As System.EventArgs) _
Handles btnUpper.Click
txtOut.Text = lblTitulo.Text.ToUpper
End Sub
sender
As
As
As
Private
Sub
btnTrim_Click(ByVal
System.Object, ByVal e As System.EventArgs) _
As
sender
Handles btnTrim.Click
txtOut.Text = lblTitulo.Text.Trim
End Sub
Private Sub
btnRemove_Click(ByVal sender
As
System.Object, ByVal e As System.EventArgs) _
Handles btnRemove.Click
txtOut.Text
=
lblTitulo.Text.Remove(lblTitulo.Text.IndexOf("informatique"
), 12)
End Sub
Private Sub
btnInsert_Click(ByVal sender
As
System.Object, ByVal e As System.EventArgs) _
Handles btnInsert.Click
txtOut.Text = lblTitulo.Text.Insert(0, "http://")
End Sub
Private Sub btnStrComp_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) _
Handles btnStrComp0.Click
txtOut.Text = StrComp(lblTitulo.Text,
lblTitulo.Text, CompareMethod.Binary) & _
" is equal."
End Sub
Private Sub btnStrComp_Click_1(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles btnStrComp1.Click
txtOut.Text = StrComp(lblTitulo.Text,
UCase(lblTitulo.Text), CompareMethod.Binary) & _
" sorts after."
End Sub
Private Sub btnStrCompL1_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) _
Handles btnStrCompL1.Click
txtOut.Text = StrComp(lblTitulo.Text, "abc" &
lblTitulo.Text & "abc"
, CompareMethod.Binary) & _
" sorts ahead."
End Sub
el
caracter
asociado
con
el
cdigo
ASCII
Automatizacin
La automatizacin (automation) es una tecnologa basada en el estndar
de interoperabilidad denominado Modelo de Objetos Componentes (COM).
El objetivo de automatizacin es utilizar las funciones de una aplicacin en
otra aplicacin.
Las aplicaciones basadas en Windows que exponen sus objetos se
denominan aplicaciones objeto o servidoras y los programas que utilizan
estos objetos se denominan aplicaciones controladoras o clientes.
Por ejemplo si desea utilizar Excel desde Visual Basic .NET :
Agregue
una
referencia
excel
(Project/Add
Reference/Microsoft Excel versin Object Library)
Declare una variable de tipo objeto Excel
Dim
Dim
Dim
Dim
xlsApp As Excel.Application
xlsBook As Excel.Workbook
xlsSheet As Excel.Worksheet
sFile As String
xlsApp = CType(CreateObject("Excel.Application"),
Excel.Application)
xlsBook = CType(xlsApp.Workbooks.Add,
Excel.Workbook)
xlsSheet = CType(xlsBook.Worksheets(1),
Excel.Worksheet)
xlsSheet.Cells(1,
xlsSheet.Cells(1,
xlsSheet.Cells(1,
xlsSheet.Cells(1,
1)
2)
3)
4)
=
=
=
=
"www"
"informatique"
"com"
"mx"
xlsSheet.Range("B1").Font.Bold = True
xlsSheet.Application.Visible = False
sFile = "c:prueba" & Now.Day & Now.Month & Now.Year
&
Now.Hour
&
Now.Minute
&
Now.Second & ".xls"
xlsSheet.SaveAs(sFile)
xlsSheet = Nothing
xlsBook.Close()
xlsBook = Nothing
xlsApp.Quit()
xlsApp = Nothing
MsgBox("Se ha creado el archivo : " & sFile)
Al crear este tipo de aplicaciones deber tener un buen dominio de su
funcionamiento, ya que puede observar a travs deladministrador de
programas que al iniciar la aplicacin se crea un objeto excel.exe, al
emplear Excel.Application desde Visual Basic .NET se crea otro
objeto EXCEL.EXE y solo se cierran estos objetos hasta que se cierre la
aplicacin, por lo que ser necesario una buena administracin de las
aplicaciones a fin de no dejarlas abiertas o que originen conflictos con otras
aplicaciones que el usuario abra o cierre.
Componente Process
Es posible utilizar el mtodo Process.Start para iniciar cualquier
aplicacin que se encuentre registrada en el Sistema. Si la extensin del
archivo a ejecutar es reconocida por el Sistema no ser necesario
especificar su ubicacin.
Por ejemplo para iniciar la calculadora de Windows:
System.Diagnostics.Process.Start("calc.exe")
Una vez que inica una aplicacin Visual Basic .NET no puede detenerla. La
solucin es utilizar una de las nuevas funciones de Visual Studio referentes
al control de procesos en Windows.
De clic a la seccin Components agregue el componente Process, de clic
a
su
propiedad StartInfo y
asigne
el
valor
calc.exe a
su
propiedad FileName, es posible pasar argumentos al abrir la aplicacin
para ello asigne los valores correspondientes a las propiedad Arguments.
De esta manera para abrir una aplicacin utilice el mtodo Start() y para
cerrarla el mtodo CloseMainWindow(). Tambin es posible cerrar
aplicaciones utilizando el mtodo Kill, pero tenga cuidado ya que esta
tcnica no le permitira almacenar los cambios realizados en su trabajo..
Ser
posible
incluir
clases
como Threading y Diagnostics para
manipular
va
cdigo,
no
sern
necesarios
si
nicamente
emplea Start y CloseMainWindow
Private
Sub
btnCalc_Click(ByVal
sender
System.Object, ByVal e As System.EventArgs) _
Handles btnCalc.Click
System.Diagnostics.Process.Start("calc.exe")
End Sub
As
Private
Sub
btnOpen_Click(ByVal
System.Object, ByVal e As System.EventArgs) _
Handles btnOpen.Click
Proc.Start()
End Sub
sender
As
Private
Sub
btnClose_Click(ByVal
System.Object, ByVal e As System.EventArgs) _
Handles btnClose.Click
Proc.CloseMainWindow()
End Sub
sender
As
Instalacin Distribuida
La distribucin de aplicaciones en Visual Studio .NET se hacen agregando
un proyecto de instalacin distribuida a la solucin que se desea
distribuir. Ser necesario configurar el proyecto de instalacin distribuida
para el tipo de instalacin que desee ejecutar.
Una aplicacin se ensambla en cuatro elementos:
Cdigo de Lenguaje Intermedio de Microsoft (MSIL), que es el
cdigo del programa compilado en un lenguaje comprensible por el
runtime del lenguaje comn.
Cdigo MSIL
Metadatos
Tipos definidos, mtodos, etc.
Tipos a los que se hace referencia, mtodos, etc.
Manifiesto
Nombre y versin
Lista de archivos
Ensamblados a los que se hace referencia
Recursos y tipos exportados
Informacin de seguridad
Project/Add/Project Output
Project/Add/File
Plantillas:
Cab, crea uno o ms archivos contenedores, recomendable
para descargas parciales remotas.
frm2.StartPosition = FormStartPosition.CenterScreen
Es posible manipular el estado minimizado, maximizado y restaurado de las
ventanas a travs de las propiedades correspondientes:
WindowState = FormWindowState.Minimized
WindowState = FormWindowState.Maximized
WindowState = FormWindowState.Normal
Tambin es posible establecer el tamao mximo o mnimo de las
ventanas:
Imports System.IO
Public Class Form1
.
.
.
Dim sr As StreamReader
sr = New StreamReader("c:Test.txt")
txtOut.Text = sr.ReadToEnd
sr.Close()
La Clase StreamReader est diseada para la entrada de caracteres, el
archivo
a
ser
leido
puede
ser
abierto
utilizando
la
funcin File.OpenText(path), donde path especifica la ubicacin del
archivo, as como el archivo de entrada.
Una vez que el reader (lector) tiene asignado un archivo abierto una serie
de mtodos stream reader (flujo de lectura) pueden ser invocados para
leer la informacin del archivo:
Stream =
Flujo
Buffer = espacio de memoria diseada para el almacenamiento temporal
de datos
Mtodo
Descripcin
Close
Peek
Read
ReadBlock Lee una cantidad mxima de caracteres del stream actual y escribe
los datos al buffer
ReadLine
Lee una lnea de caracteres del stream actual y regresa los datos
como string
ReadToEnd Lee un stream desde la posicin actual hasta el final del stream
StreamWriter
La Clase StreamWriter est diseada para la salida de caracteres, el
archivo
de
escritura
puede
ser
asignado
utilizando
la
funcin File.CreateText(path), donde path especifica la ubicacin del
archivo, as como el archivo de salida:
Si el archivo especificado no existe
Si el archivo existe su contenido es sobreescrito
Una vez que el writer tiene asignado un archivo abierto, una serie de
mtodos writer pueden ser invocados para escribir informacin al archivo:
Stream =
Flujo
Buffer = espacio de memoria diseada para el almacenamiento temporal
de datos
Mtodo
Descripcin
Close
Flush
Write
Escribe al stream
Escribe
datos
tal
como
son
especificados
por
los
btnDock.Dock = DockStyle.Bottom
Otros posibles valores son:
DockStyle.Top
DockStyle.Fill
DockStyle.Left
DockStyle.Right
anteriores
Establecer el objeto de inicio
Tambin en Visual Basic .NET es posible establecer el punto de inicio de la
aplicacin, ya que puede contener mltiples formularios es necesario
especificar con cual iniciara la aplicacin o tambin puede contar con
mltiples procedimientos por lo que tambin podr definir uno de ellos
como punto de partida.
Para configurar el punto de inicio seleccione Project/Properties y especique
el objeto de inicio (Startup object) que puede ser un formulario o
procedimiento.
Si requiere de una aplicacin Visual Basic .NET sin interfaz grfica, es
posible crear una aplicacin consola la cual procesa datos de entrada y
genera salidas mediante una consola de lnea de comandos.
Grficos
En Visual Basic .NET no existen los controles de dibujo pues la novedad
ser emplear los servicios de grficos GDI+ a travs del espacio de
nombres System.Drawing
Instrucciones como Circle, Line y PSet, son sustituidas
mtodos DrawEllipse, DrawLine y
la
estructura
Point
clase System.Drwaing.Graphics.
por
de
los
la
EMF
EXIF
GIF
Icon
JPEG
MemoryBMP
PNG
TIFF
WMF
A travs de la utilizacin de funciones GDI+ del espacio
nombres System.Drawing que
es
una
nueva API (Interfaz
Programacin de Aplicaiones) ser posible crear grficos.
de
de
Sistema de Coordenadas
El punto de origen del sistema de coordenas es la esquina superior
izquierda del formulario. El sistema de coordenadas predeterminado se
conforma de renglones (Eje Horizontal X) y columnas (Eje Vertical Y),
de elementos de imagen independientes del dispositivo (pxeles) los cuales
representan los puntos ms pequeos que un formulario puede ubicar.
Las coordenas (x,y) de la esquina superior izquierda de un formulario son
siempre (0,0).
Visual Basic .NET trabaja en conjunto con el controlador de vdeo de la
mquina para calcular como se deben presentar los pxeles del formulario y
como deben aparecer en la pantalla figuras como lneas, rectangulos,
curvas y crculos.
Clase System.Drawing.Graphics
El espacio de nombres System.Drawing contiene diversas clases con las
que es posible crear dibujos en un programa. Esta clase dispone de
mtodos y propiedades para dibujar figuras en un formulario.
A continuacin se presenta una lista de figuras geomtricas bsicas y el
mtodo que emplea la claseSystem.Drawing.Graphics para crearlas:
Figura
Mtodo
Descripcin
Lnea
DrawLine
Rectngulo
Arco
DrawArc
Crculo/Elipse
DrawEllipse
Polgono
DrawPolygon
Curva
Drawcurve
Bzier splines
DrawBezier
New
Evento Paint
Al dibujar una figura, esta ser visible mientras:
Otro control o figura no se sobreponga
Si se minimiza y maximiza la ventana del formulario
Para evitar que la figura desaparezca es necesario utilizar el
evento Paint del formulario, para que cada vez que se refresque el
formulario el grfico tambin se dibujo de nuevo.
As
New
Me.Opacity -= 0.1
Programacin Orientada a Objetos
Se considerada un lenguaje orientado a objetos si soporta las siguientes
tres caractersticas Encapsulacin, Herencia yPolimorfismo.
La programacin orientada a objetos es un excelente ejemplo de un
mejoramiento creciente. Los objetos son piezas modulares con interfaces
bien definidas que explican el uso apropiado de los objetos. Los objetos
emplean encapsulacin para prevenir accesos impropios a la estructura
interna de un objeto. Los objetos soportan herencia para perfeccionar el
cdigo reutilizado y diseo lgico.
Clases y Objetos
Un Objeto es una combinacin de datos y acciones que pueden ser
tratados como unidad.
Una Clase es una estructura de un objeto, un diseo que describe las
propiedades (datos) y mtodos (acciones) de un objeto.
Encapsulacin
Encapsulacin, referente a un grupo de propiedades y mtodos que
pueden ser tratados como una unidad u objeto, adems de proteger el
contenido interno de un objeto a travs de una averia o referencia
incorrecta por cdigo externo. Con la apropiada encapsulacin un objeto es
solamente referenciado a travs de una interfaz formal evitando efectos
laterales, es decir, referencias inesperadas y cambios indeseables que
ocurran en adicin a el comportamiento intencionado.
Una de las reglas bsicas de la encapsulacin es que los datos de las clases
deberan ser modificados o recuperados slo a travs de procedimientos
apropiados, limitando interactuar al objeto con cdigo externo y
manteniendo las operaciones internas del objeto invisibles hacia el mundo
exterior, de esta manera el contenido interno del objeto es protegido de
daos accidentales o intencionados por cdigo externo.
La encapsulacin tambin permite controlar como los datos y
procedimientos
son
utilizados,
para
ello
se
pueden
utilizar
losmodificadores Private o Protected para
evitar
que
un
procedimiento externo ejecute un mtodo de clase o evitar la lectura y
modificacin de datos en las propiedades y campos.
Data hiding es una tcnica en la cual se declaran detalles internos de una
clase como Private para prevenirlos de ser utilizados fuera de la clase.
Herencia
La Herencia describe la habilidad para crear una nueva clase basada en la
existencia de una clase existente, donde esta clase existente recibe el
nombre de Clase Base y la nueva clase derivada de la clase base es
llamada Clase Derivada. La clase derivada hereda las propiedades,
mtodos y eventos de la clase base y puede ser personalizada agregando
nuevas propiedades y mtodos.
Public Class
.
.
.
End Class
Las propiedades de las clases cambian de sintaxis y ya no se
utiliza Property Get, Let y Set.
Para que una Clase herede la interfaz y comportamiento de otra Clase
existente se utiliza la palabra clave reservadaInherits.
Polimorfismo
El Polimorfismo es la habilidad de los objetos de diferentes clases para
responder apropiadamente a nombres u operadores de mtodos identicos,
el polimorfismo permite utilizar nombres compartidos y el sistema podra
aplicar el cdigo apropiado para un objeto particular.
Agregar una Clase
La definicin de una clase consiste de campos, propiedades y mtodos, un
campo es una variable en la clase y usualmente es privada, una propiedad
es una programacin constructora que tipicamente provee la interfaz para
un campo en una clase, una propiedad contiene procedimientos
especiales Get y Set que permiten al cdigo externo hacer referencia al
campo en un sentido que mantiene la encapsulacin de datos, un mtodo
es una funcin o procedimiento dentro de una clase. La definicin de la
clase puede tambin contener mtodos constructores que son invocados
cuando un nuevo objeto es instanciado desde una clase. Es conveniente
listar primero los campos, despus las propiedades y los mtodos
constructores y por ltimo cualquier otro mtodo adicional.
La definicin de una clase consiste de campos, propiedades y mtodos, un
campo es una variable en la clase y usualmente es privada, una propiedad
es una programacin constructora que tipicamente provee la interfaz para
un campo en una clase, una propiedad contiene procedimientos
especiales Get y Set que permiten al cdigo externo hacer referencia al
campo en un sentido que mantiene la encapsulacin de datos, un mtodo
es una funcin o procedimiento dentro de una clase. La definicin de la
clase puede tambin contener mtodos constructores que son invocados
cuando un nuevo objeto es instanciado desde una clase. Es conveniente
listar primero los campos, despus las propiedades y los mtodos
constructores y por ltimo cualquier otro mtodo adicional.
constructores
mtodos
End Class
En Visual Basic .NET para agregar una Clase seleccione: Project/Add
Class y escriba un nombre para la Clase.
Escriba las variables para su clase:
un
mtodo
su
clase,
entonces
escriba
su
sNombre = Value
End Set
End Property
Public Property edad() As Integer
Get
Return nEdad
End Get
Set(ByVal Value As Integer)
nEdad = Value
End Set
End Property
Public Property sexo() As Boolean
Get
Return bsexo
End Get
Set(ByVal Value As Boolean)
bsexo = Value
End Set
End Property
Public Sub sexoPersona()
If bSexo Then
MsgBox("Hombre")
Else
MsgBox("Mujer")
End If
End Sub
End Class
Interfaz de la Clase Persona:
Dim Empleado As New Persona
Empleado.Nombre = txtNombre.Text
Empleado.edad = CInt(txtEdad.Text)
Empleado.sexo = txtSexo.Text
Empleado.sexoPersona()
Como puede notar las declaraciones de obtencin y asignacin de valores
para las propiedades coinciden no en nombre ya que puede declarar la
primer parte de las propiedades con un nombre y con otro la declaracin de
la propiedad por completo, es decir, la parte donde se asigna y recupera el
valor, la nica relacin existente es por el valor que se asigna o por el valor
que se regresa.
Atencin es posible crear ms de una Clase dentro de un mdulo de Clase
siempre y cuando las clases se encuentren delimitadas por las intrucciones
de inicio (Public Class) y final (End Class) de la Clase.
As que, si desea crear una Clase que herede de la Clase Persona puede
incluir en el mismo mdulo de Clase Persona, la Clase que hereda, por
ejemplo Director y escribir dentro del bloque de la clase la declaracin
que indica que hereda el comportamiento y propiedades de otra Clase a
travs de la palabra reservada Inherits.
Debajo del cdigo de la Clase Persona escriba:
Campos
Los campos proveen almacenamiento para los datos en un objeto y son
tratados como variables, usualmente son privados, existen dos diseos para
los campos:
Si los campos son declarados Private se hacen visibles slo
para los mtodos dentro de la clase, lo cual incrementa el
ocultamiento de los datos (data hiding) y minimiza la posibilidad de
efectos laterales (side effects)
Consiste en una convencin en el nombre de los campos, si
estos comienzan con la letra F mayscula ser un indicador claro de
que un campo-objeto comienza a referenciarse.
Propiedades
Los campos privados de una clase no pueden ser accesados por cdigo
externo, por lo que si es requerido que los campos sean leidos o
cambiados, para ello ser necesario incluir procedimientos de propiedades
(property procedures) en la definicin de la clase.
Los procedimientos de propiedades dan el control de clase sobre como los
campos son asignados o regresados. El nombre del procedimiento de
propiedad es hecho visible al cdigo externo.
El procedimiento de propiedad Get tipicamente recupera un campo privado.
El procedimiento de propiedad Set tipicamente asigna un nuevo valor al
campo privado.
Para que un cdigo externo pueda ver el valor de un campo pero no pueda
cambiar su valor es necesario que el campo sea slo de lectura, lo cual es
posible antecediendo al nombre del procedimiento de propiedad la palabra
reservada ReadOnly, entonces VB.NET podra omitir el bloque Set/End
Set porque es innecesario.
End Get
[Set(ByVal valor as tipoDato)
nombreCampo = valor
End Set]
Mtodos
Los mtodos son procedimientos definidos dentro de la clase. Los
procedimientos tienen acceso a todos los datos dentro del objeto incluso si
son privados.
Sub New([parmetros])
sentencias
End Sub
Cuando se define a una clase derivada de otra clase, la primer lnea de un
constructor es tipicamente una invocacin al constructor de la clase base.
Una clase base es referenciada utilizando la palabra reservada MyBase.
Sub New([parmetros])
MyBase.New([parmetros])
End Sub
Impresin
Si requiere imprimir, Visual Basic .NET utiliza como mecanismo la
Clase PrintDocument (agregando el control al formulario o a travs de
cdigo), en vez de hacerlo con el objeto Printer como se hace en Visual
Basic 6.
Para la interfaz de impresin es posible utilizar los controles de cuadros de
dilogo como PrintDialog, PrintPreviewDialog ypageSetupDialog
Si requiere imprimir varias pginas deber crear un manejador de
eventos PrintPage que imprima un documento pgina a pgina.
La Clase PrintDocument dispone de objetos como PrinterSettings que
define
la
impresin
predeterminada
para
una
impresora,
el
objeto PageSettings que define la impresin predeterminada para una
Imports System.Drawing.Printing
Public Class Form1
.
.
.
Agregue un control PrintDocument (no es visible en su formulario, pero si
debajo de este)
Escriba el cdigo del manejador:
Private
System.Object,
Sub
imprimirImagen(ByVal
sender
As
Private
Sub
btnPrint_Click(ByVal
sender
As
System.Object, ByVal e As System.EventArgs) _
Handles btnPrint.Click
Try
AddHandler printDoc.PrintPage, AddressOf
Me.imprimirImagen
printDoc.Print()
Catch ex As Exception
MsgBox("Ex : " & ex.ToString)
End Try
End Sub
Impresin de un texto
A diferencia del ejercicio anterior, conoceremos como imprimir un texto, sin
agregar un control PrintDocument, pero si agregando en su lugar cdigo
y tambin en vez de un manejador de evento, utilizaremos un
procedimiento:
Importar la clase:
Imports System.Drawing.Printing
Escribir en lugar del manejador de evento un procedimiento:
Private
Sub
ImprimirTexto(ByVal
sender
System.Object, ByVal ePrint As PrintPageEventArgs)
ePrint.Graphics.DrawString(txt.Text,
Font("Arial", 11, FontStyle.Regular), _
Brushes.Black, 100, 100)
ePrint.HasMorePages = False
End Sub
As
New
Private Sub
bntPrnTxt_Click(ByVal sender
As
System.Object, ByVal e As System.EventArgs) _
Handles bntPrnTxt.Click
Try
Dim prnTxt As New PrintDocument
AddHandler prnTxt.PrintPage, AddressOf
Me.ImprimirTexto
prnTxt.Print()
Catch ex As Exception
MsgBox("Ex : " & ex.ToString)
End Try
End Sub
Importante, tenga en cuenta las limitaciones que se tienen, pues no se
permite imprimir texto que sobrepase el margen derecho del papel,
tampoco se ajustan automticamente las lneas cuando se alcanza el borde
del papel, por ejemplo si imprime un archivo que no tiene retornos de carro
al final de las lneas ser necesario escribir cdigo que lo controle. Tampoco
es posible imprimir ms de una pgina de texto, pues lo que sobrepase una
pgina se ignora, por lo tanto no se imprime.
Para controlar la impresin de varias pginas es necesario crear una pgina
virtual,
para
ello
utilice
el
evento PrintPage o
el
mtodo Graphics.MeasureString.
Impresin de un archivo
Importar clases
Imports System.IO
Imports System.Drawing.Printing
Debajo del cdigo generado automticamente por Visual Basic .NET
(Windows Form Designer generated code) escriba
As
ADO.NET
ADO.NET es la arquitectura de acceso a datos para .NET Framework y
provee los objetos Connection, DataAdapter, y DataSetpara facilitar el
acceso a datos en una base de datos.
ADO.NET
Base de Datos (archivo .mdb)
Connection (OleDbConnection)
DataAdapter
DataSet
Conexin
Un objeto Connection establece una liga de la aplicacin al archivo de
base de datos, tambin especifica el tipo y ubicacin del archivo de base de
datos.
Para establecer una conexin a una base de datos seleccione View/Server
Explorer
El Explorador de Servidores es una herramienta grfica a travs de la
cual es posible establecer conexiones a fuentes de datos basadas en
Internet, Cliente/Servidor o Locales, as como tambin es posible examinar
la estructura de las tablas de una base de datos.
Para realizar una conexin haga clic en el botn Connect to database y
configure la conexin. Por ejemplo si trabaja con Access entonces
seleccione como proveedor Microsoft Jet 4.0 OLE DB, el cual es un
componente diseado para conectarse a bases de datos de Microsoft
Access.
De clic en el botn Probar Conexin
Si la conexin fue satisfactoria entonces podra navegar a travs del
Explorador de Servidores sobre los objetos de la base de datos.
Creacin de una Conexin
El primer paso para la creacin de un objeto Connection es agregar un
control OleDbConnection a la forma, el cual no es visible dentro de la
forma pero si esta contenido en la bandeja de componentes. Este control
esta contenido en el grupo Datade la caja de herramientas.
El segundo paso es seleccionar el control y establacer su
propiedad ConnectionString seleccionando New Connection, entonces
se despliega la ventana Data Link Properties (Propiedades de Vnculo de
Datos), el proveedor de base de datos a seleccionar depende del tipo de
base de datos a la cual se est conectado, por ejemplo para Access 2000 o
Access XP se selecciona el proveedor Jet 4.0 OLE DB Provider.
Despus de seleccionar el proveedor de base de datos se especifica la
ubicacin del archivo de base de datos, y si es requerido un login y
contrasea se proporcionan para poder probar la conexin dando clic
en Probar Conexin, si la conexin fue satisfactoria entonces es posible
utilizar el objeto Connection para enviar y recibir datos entre la aplicacin
y la base de datos.
Los formatos de datos son diferentes entre los dos programas, por lo que la
trasferencia de datos podra requerir unDataAdapter.
Adaptador de Datos - dataAdapter
Una vez que se ha establecido la conexin con la base de datos es
necesario crear un Adaptador de Datos el cual permitira extraer
informacin especfica de la base de datos adems de servir como base al
objeto dataset el cual es una representacin de los datos que se
manipularan en la aplicacin.
Para crear un adaptador de datos simplemente arrastre desde el Explorador
de Servidores el icono grfico de una tabla hasta el diseador de Windows
Forms, con lo cual se crean los objetos Adaptador de Datos y Conector
de Datos en la bandeja de componentes.
Otra manera de crear un adaptador de datos es seleccionar la
seccin Data de
la
caja
de
herramientas
y
agregar
un
controlDataAdapter y un DataSet.
DataAdapter.Fill(Dataset)
Navegacin de un Dataset
Cuando se utiliza un control data-aware se vncula o asocia su
propiedad Databindings con un campo de una tabla de la base de datos y
de est manera despliega el valor contenido en dicho campo en base al
registro actual en el Dataset especificado. Al cambiar la posicin del registro
actual por consiguiente cambia el dato desplegado en el control data-aware
empleado.
Cada formulario tiene un objeto BindingContext que mantiene el rastro
de todos los recursos de datos asociados con la forma. Para referirse a una
tabla dentro del Dataset utilice:
BindingContext(Dataset, "NombreTabla")
El objeto BindingContext tiene una propiedad Position que indica el
registro actual y una propiedad Count que indica el Total de registros en el
Dataset. El primer registro tiene la posicin 0, por lo que el ltimo registro
tiene la posicin 1 menos el valor de Count.
If
BindingContext(DsContratos1,
"TDetDato_Serv_Param_Asoc").Position = 0 Then
MsgBox("Primer Registro")
Else
BindingContext(DsContratos1,
"TDetDato_Serv_Param_Asoc").Position -= 1
InfoReg()
End If
End Sub
Private
Sub
BtnNext_Click(ByVal
sender
As
System.Object, ByVal e As System.EventArgs) _
Handles BtnNext.Click
If
BindingContext(DsContratos1,
"TDetDato_Serv_Param_Asoc").Position = _
BindingContext(DsContratos1,
"TDetDato_Serv_Param_Asoc").Count - 1 Then
MsgBox("ltimo Registro")
Else
BindingContext(DsContratos1,
"TDetDato_Serv_Param_Asoc").Position += 1
InfoReg()
End If
End Sub
Private Sub InfoReg()
LblRegNum.Text = BindingContext(DsContratos1,
"TDetDato_Serv_Param_Asoc").Position
End Sub
Private
Sub
BtnFirst_Click(ByVal
sender
As
System.Object, ByVal e As System.EventArgs) _
Handles BtnFirst.Click
BindingContext(DsContratos1,
"TDetDato_Serv_Param_Asoc").Position = 0
InfoReg()
End Sub
Private
Sub
BtnLast_Click(ByVal
sender
As
System.Object, ByVal e As System.EventArgs) _
Handles BtnLast.Click
BindingContext(DsContratos1,
"TDetDato_Serv_Param_Asoc").Position = _
BindingContext(DsContratos1,
"TDetDato_Serv_Param_Asoc").Count - 1
InfoReg()
End Sub
Manipulacin de la Base de Datos
Una vez que se establece la conexin y se relacionan los datos con un
control que los visualice, es necesario crear controles a travs de los cuales
se manipulen los datos obtenidos.
Al momento de cargar los datos el control utilizado para visualizar los datos
apunta al primer registro, pero Que hay si se requiere ver un registro
especifico o si se desea avanzar hacia el siguiente o retroceder al anterior?.
Me.BindingContext(Ds1, "TParametro").Position = 0
lblPos.Text
=
Me.BindingContext(Ds1,
"TParametro").Position
Para desplazarse al ltimo registro utilice:
Me.BindingContext(Ds1, "TParametro").Position =
Me.BindingContext(Ds1, "TParametro").Count - 1
lblPos.Text
=
Me.BindingContext(Ds1,
"TParametro").Position
Para desplazarse al registro anterior utilice:
If Me.BindingContext(Ds1, "TParametro").Position = 0
Then
MsgBox("Primer Registro")
End If
Me.BindingContext(Ds1, "TParametro").Position -= 1
lblPos.Text
=
Me.BindingContext(Ds1,
"TParametro").Position
Para desplazarse al registro siguiente utilice:
If Me.BindingContext(Ds1, "TParametro").Position =
Me.BindingContext(Ds1,
"TParametro").Count - 1 Then
MsgBox("ltimo Registro")
End If
Me.BindingContext(Ds1, "TParametro").Position += 1
lblPos.Text
=
Me.BindingContext(Ds1,
"TParametro").Position
Donde, "TParametro", es el nombre de la tabla a
accede, lblPos.Text controla la posicin del registro actual.
la
que
se
DataSource - DataSet.Tabla
Una recomendacin es que al generar el conjunto de datos, escriba
el nombre de la base de datos
En el evento Load del Formulario, escriba:
Contratos1.Clear()
OleAdapter.Fill(Contratos1)
Donde Contratos1 es el nombre del conjunto de datos (DataSet).
Modificacin de la base de datos con DataGrid
Un objeto DataSet (conjunto de datos) contiene una copia original de la
base de datos, si requiere modificar los datos se har a travs del
objeto DataAdapter para almacenar los cambios.
el
Try
OleAdapter.Update(Contratos1)
Catch ex As Exception
MsgBox(ex.ToString)
End Try
Tip, si cambia el valor de la propiedad BackColor del DataGrid se
produce un efecto en el cual el color de fondo del primer rengln aparece
con el color seleccionado y el rengln siguiente aparece en blanco.
Web
La versin inicial de Visual Basic .NET incluye Internet Explorer 6. Para
hacer uso de las funciones de Internet Explorer en una aplicacin Visual
Basic .NET es necesario agregar una referencia a la biblioteca de objetos
COM Microsoft
Internet
Controls (SHDocVw),
para
ello
seleccione project/Add Reference.
El
objeto
Internet
Explorer
est
contenido
en
la
Clase InternetExplorer la cual es miembro de la biblioteca SHDocVw.
Quiz el mtodo que utilizar con frecuencia sea Navigate el cual abre un
documento cuya ubicacin se especifica a travs de uno de sus parmetros
llamado URL, Flags especifica si se agregar al historial o al cach de
Internet Explorer, el nico parmetro obligatorio es URL los dems son
opcionales.
Para visualizar un documento web siga estos pasos:
Agregue la referencia COM Microsoft Internet Controls
Declare un objeto de tipo SHDocVw.InternetExplorer
As
End Sub
Private Sub oIE_DocumentComplete(ByVal pDisp As Object,
ByRef URL As Object) _
Handles oIE.DocumentComplete
MsgBox("El documento ha sido cargado")
End Sub
Web Forms
Web Forms es un nuevo modelo de programacin para interfaces de
usuario de Internet basado en ASP.NET que sustituye a WebClasses y
el Diseador de Web Forms sustituye al Diseador de pginas DHTML.
El Diseador de Web Forms es parte de Visual Studio .NET (tambin
disponible para C# .NET).
Web Forms es el componente de diseo de ASP.NET (plataforma de
desarrollo Web para Microsoft rediseada a partir de cero basndose en
.NET Framework), que permite crear y administrar interfaces de usuario de
Internet o pginas web.
Visual Studio soporta Web Forms para la creacin rpida y fcil de
interfaces-usuario para aplicaciones web ASP.NET, Web Forms combina la
velocidad y facilidad de un entorno de Desarrollo Rpido de Aplicacines
(RAD, Rapid Application Development) con el poder de la compilacin de los
lenguajes de programacin.
Las aplicaciones de tres capas protegen los recursos del servidor de base de
datos reduciendo el nmero de conexiones actuales a la base de datos. Las
conexiones al servidor de base de datos se realizan por las aplicaciones del
servidor en lugar de ser realizadas por las mquinas cliente. Los usuarios
no requieren de conexiones individuales o persistentes al servidor de base
de datos, lo cual no slo protege los recursos de base de datos, tambin
facilita el mantenimiento de cuentas y fortalece la seguridad de datos.
Capa de Presentacin - Presentation Layer
La Capa de Presentacin se ejecuta sobre la mquina del usuario
(cliente) y provee de una interfaz de aplicacin, un cliente robusto realiza
procesos significativos con menos carga en la capa de aplicacin, un cliente
menos robusto tipicamente involucra un navegador (browser) que despliega
HTML con procesos poco significativos y requiere de una mayor carga en la
capa de aplicacin.
Capa de Aplicacin - Application Layer
La Capa de Aplicacin provee varios mdulos y servicios que son
esenciales para la solucin, incluyendo el procesamiento basado en las
reglas de negocio. Si las reglas de negocio cambian solamente los servicios
en la capa de aplicacin necesitan ser cambiados para implementar los
cambios a travs del sistema.
La Capa de Aplicacin tambin provee un mediador entre los
manejadores de la capa de aplicacin y la capa de datos. Los
requerimientos del usuario para los servicios de datos son manejados por la
capa de aplicacin la cual puede reducir el nmero de conexiones a la base
de datos, por ejemplo todos los usuarios pueden compartir una conexin
entre la capa de aplicacin y la capa de datos, antes que cada usuario
(cliente) requiera de una conexin de datos.
Capa de Datos - Data Layer
La Capa de Datos es la responsable de todos los accesos a la base de
datos requeridos por la solucin, esta capa comunmente provee el soporte
http://informatique.com.mx?login?usuario=gangeles
Un Query String puede ser utilizado para intercambiar datos entre el
cliente y el servidor, de una pgina a otra. Un Query String no es seguro
porque la informacin es visible en el navegador, adems que la mayoria de
los navegadores tienen una longitud mxima de 255 caracteres para el URL,
lo cual limita la informacin que puede ser enviada utilizando un Query
String.
Cookies
Una Cookie es un texto pequeo almacenado en la mquina-cliente, es
decir, un archivo de texto y no un programa o plug-in, el navegador anexa
la Cookie en cada nueva peticin HTTP antes que enviarla al servidor para
que los datos puedan ser leidos y respondidos apropiedamente.
La informacin almacenada en una Cookie puede ser expuesta y por lo
tanto no es lo mejor para mantener informacin, adems los usuarios
podran deshabilitar la opcin en sus navegadores para no utilizar Cookies,
entonces la aplicacin no debera ser dependiente de un dato en la Cookie.
Tcnicas de Administracin de Estados del Lado del Servidor
Existen tambin varias Tcnicas de Administracin de Estados del Lado del
Servidor (Server-Side State Management Techniques) disponibles en
ASP.NET. Ya que las opciones del lado del servidor almacenan informacin
fuera del alcance del cliente la informacin es ms segura. Los estados de
administracin del lado del servidor deberan ser incluidos en todas las
aplicaciones que requieran soluciones seguras:
Application State
Application State (Estado de Aplicacin), es la suma de todos los
archivos, pginas y cdigo que reside en el servidor. Cuando se ejecuta una
aplicacin web, ASP.NET mantiene informacin referente a la aplicacin en
el Application State, el cual es creado la primer vez que un cliente hace
una peticin de un URL dentro de la aplicacin ASP.NET, el Application
State se mantiene en la memoria del servidor hasta que un servidor web
se apaga o hasta que la aplicacin se modifique.
El Application State permite a los desarrolladores crear variables de
aplicacin (application variables) que pueden establecerse y leerse a travs
de la duracin de vida de la aplicacin. Una variable de aplicacin se
compone de la palabra reservada Application seguido entre parntesis (y
comillas)
del
nombre
de
la
variable,
por
ejemplo:Application("UsuariosConectados"), estas variables se
crean automticamente en la primer referencia. Las variables de aplicacin
son de mbito global y accesibles desde cualquier pgina de la aplicacin
web y sus valores son independientes de un usuario especifico.
Session State
Una sesin es el perodo de tiempo que un nico navegador interactua con
la aplicacin web, cada vez que un nuevo navegador invoca una aplicacin
web, una nueva sesin es creada para el navegador. Cuando una nueva
sesin es creada, ASP.NET mantiene informacin referente a la sesin en
el Session State.
El Session State permite a los desarrolladores crear variables de sesin
(session variables) que pueden establecerse y leerse a travs de la duracin
de vida de la sesin. Las variables de sesin se componen de la palabra
reservada Session seguido entre parntesis (y comillas) del nombre de la
variable, por ejemplo: Session("User"), las variables de sesin pueden
ser accesadas desde cualquier pgina de la aplicacin web por cada peticin
a la aplicacin. Las sesiones y sus variables expiran despus de veinte
minutos de inactividad. Si el navegador hace una peticin despus del
tiempo de expiracin (20 minutos) la aplicacin web crea una nueva sesin
para el navegador.
Database Support
Los datos almacenados en las variables de aplicacin y sesin podran
perderse, si la aplicacin es interrumpida, para sobrevivir a estas
interrrupciones, es estado de informacin debera ser almacenado en la
base de datos.
Mantener un estado de informacin en la base de datos es tambin til
cuando la informacin a ser almacenada es significativa en tamao, la
dimensin del procesamiento y almacenamiento puede ser cargado en la
capa de datos permitiendo mejorar el desempeo de la capa de aplicacin.
Para una aplicacin web profesional es muy comn mantener un estado de
informacin en al base de datos relacional por las siguientes razones:
Seguridad, la informacin del usuario almacenada en la base
de datos es un nivel extra eliminado de las capa de presentacin,
haciendo que los datos sean menos disponibles para uso indebido.
Si la base de datos contiene informacin importante puede ser
protegida a travs de un usuario y contrasea para evitar accesos
no deseados.
Sistemas Inteligentes
Los Sistemas Inteligentes se enfocan sobre el procesamiento y
produccin de conocimiento.
Desde la perspectiva de la computacin los datos se refieren a nmeros,
caracteres o imagenes sin contexto, los datos por si solos no significan nada
o carecen de significado, cuando los datos son procesados en un contexto
se convierten en informacin, como la informacin es recopilada tambin
puede ser procesada por patrones creando conocimiento. La inteligencia es
la habilidad de adquirir conocimiento, finalmente la sabidura es un
comportamiento apropiado guiado por el conocimiento.
Un Sistema Inteligente extiende la tradicional funcin de la computacin
para tambin incluir la adquisicin y aplicacin de conocimiento.
Una estrategia para capturar y utilizar el conocimiento es a travs de
heursticas, una heurstica es una regla de conocimiento basada en la
experiencia o que induce a buscar la solucin.
Las heursticas pueden ser utilizadas por los Sistemas Inteligentes para
guar el proceso de descubrimiento y a travs de heursticas-gua el