Você está na página 1de 55

Manuales .NET : Manual VB.

NET

ndice Temtico

Qu es Visual Basic .NET? Entorno de Desarrollo .NET Framework .NET namespaces Nue o !ro"ecto #plicaci$n %indows E&ecuta'le !ro(ramaci$n )rientada a E entos E ento *ane&ador de E entos !rocedimientos +m'ito de las aria'les ,on enciones para el nom're de los controles ,ontrol Button -antes CommandButton. ,ontrol /a'el ,ontrol Te0tBo0 ,ontrol DateTime!icker ,ontrol /ink/a'el ,ontroles #nteriores " )tros ,ontroles ,ontrol *ain*enu Funciones 1ntrinsecas Funciones Financieras Funciones de Tiempo " 2ora ,uadros de Dialo(o )penFileDialo( ,olorDialo( FontDialo( !rintDialo( !rint!re iewDialo( !a(e3etupDialo( Dim as +m'ito de las Varia'les 1nputBo0 Tipos de Datos Tipos de Datos De4inidos por el 5suario

,onstantes )peradores )peradores #ritmticos )peradores 3trin( )peradores ,omparati os )peradores /$(icos )peradores #'re iados !recedencia de )peradores 3entencias de ,ontrol Do ... /oop E0it ,ontrol Timer 3entencia 6nd-. *todo 6andomi7e-. Depuraci$n8 Tipos de errores Ventana de ,omandos Ventana de ,omandos 9 1nmediata ,ontrol /istBo0 Funci$n 1sNumeric Funci$n Trim8 /Trim8 6Trim ,ontrol ,:eckBo0 ,ontrol 6adioButton E ento ;e"!ress ,ontrol %indows *edia !la"er Tr" ... ,atc: Err *$dulo *atrices<#rre(los<Vectores ,lase #rra" ,olecciones *anipulaci$n de #rc:i os de Te0to *anipulaci$n de ,adenas Funciones ,:r #sc #utomati7aci$n ,omponente !rocess 1nstalaci$n Distri'uida Formularios 3tream6eader 3tream%riter

,reaci$n de controles en tiempo de e&ecuci$n Esta'lecer el o'&eto de inicio =r4icos 3istema de ,oordenadas ,lase 3"stem.Drawin(.=rap:ics E ento !aint #nimaci$n > Top 9 /e4t 9 /ocation 9 3etBounds )pacidad en Formularios !ro(ramaci$n )rientada a )'&etos ,lases " )'&etos Encapsulaci$n 2erencia !olimor4ismo #(re(ar una ,lase ,ampos !ropiedades *todos ,onstructores 1mpresi$n 1mpresi$n de un (r4ico 1mpresi$n de un te0to 1mpresi$n de un arc:i o Bases de Datos #D).NET ,one0i$n ,reaci$n de una ,one0i$n #daptador de Datos ,reaci$n de un #daptador de Datos Data3et =eneraci$n de un Dataset Data9aware ,ontroles Enla7ados *todo Fill Na e(aci$n de un Dataset *anipulaci$n de la Base de Datos Bases de Datos " Data(rid *odi4icaci$n de la 'ase de datos con Data=rid %e' %e' Forms

#r?uitectura Tres ,apas -T:ree9Tier. ,apa de !resentaci$n 9 !resentation /a"er ,apa de #plicaci$n 9 #pplication /a"er ,apa de Datos 9 Data /a"er 3tate *ana(ement Tcnicas de #dministraci$n de Estados del /ado del ,liente View 3tate Quer" 3trin( ,ookies Tcnicas de #dministraci$n de Estados del /ado del 3er idor #pplication 3tate 3esion 3tate Data'ase 3upport 3istemas 1nteli(entes

Qu es Visual Basic .NET


Es un len(ua&e orientado a o'&etos " e entos ?ue soporta encapsulaci$n8 :erencia " polimor4ismo. Es una me&ora a Visual Basic 4ormando parte de Visual 3tudio " compartiendo el entorno de desarrollo con *icroso4t Visual ,@@ .NET8 *icroso4t Visual ,A .NET8 etc.

Entorno de Desarrollo
El Entorno de Desarrollo reci'e el nom're de Entorno de Desarrollo de Microsoft Visual Studio .NET. Este entorno es personali7a'le " contiene todas las :erramientas necesarias para construir pro(ramas para *icroso4t %indows. El Entorno de Desarrollo contiene mBltiples entanas " mBltiples 4uncionalidades " es por consecuencia llamado un entorno de desarrollo inte(rado -integrated development environment 1DE.. /a entana central es la desarrollar. entana de diseCo -Designer Window.8 la cual contiene el 4ormulario a

/a ca&a de :erramientas -ToolBox. se locali7a de lado i7?uierdo. En el e0tremo derec:o tenemos la entana de e0plorador de soluciones -Solution Explorer.. /a entana de propiedades -Properties window. contiene tres partes> 1. &. a parte superior contiene un co!"o "ox #ue !uestra el no!"re $ la clase del o"%eto seleccionado. a parte !edia contiene la lista de propiedades del o"%eto seleccionado' de lado derec(o contiene un con%unto de ca%as para )er $ editar el )alor de la propiedad seleccionada. a parte in+erior es un cuadro descripti)o #ue proporciona una "re)e descripci,n de la propiedad seleccionada.

*.

Es necesario tener instalado el Visual 3tudio .NET8 al e&ecutarlo se presenta una p(ina de inicio8 en caso de no presentarse entonces de clic en 2elp<3:ow 3tart !a(e. En esta p(ina ser posi'le esta'lecer su per4il8 por e&emplo identi4icarse como Desarrollador Visual 3tudio o ms especi4ico como Desarrollador Visual Basic con lo cual Visual 3tudio con4i(ura de inmediato el entorno de desarrollo para pro(ramar en Visual Basic. !ara iniciar un nue o pro"ecto8 de clic en la opci$n Pro%ects " clic en el 'ot$n D New Pro%ectE8 esta acci$n a're una entana donde se indicar el arc:i o a a'rir8 los pro"ectos Visual Basic .NET tiene la e0tensi$n .)"pro%. 5na e7 ?ue a're el pro&ecto si la p(ina de inicio esta'a isi'le continuar asF " en el E0plorador de 3oluciones -Solution Explorer. se car(an los arc:i os correspondientes al pro"ecto. En Visual Basic .NET e0isten dos arc:i os>

1. 2.

-n arc(i)o de pro%ecto .)"pro%' el cual contiene in+or!aci,n espec.+ica para una deter!inada tarea de progra!aci,n. -n arc(i)o de soluci,n .sln' el cual contiene in+or!aci,n relacionada con uno o !/s pro$ectos. Este tipo de arc(i)o puede ad!inistrar )arios pro%ectos relacionados entre s. $ son si!ilares a los arc(i)os de grupos de pro$ecto 0.)"g1 en Visual Basic 2

3i la soluci$n tiene un Bnico pro"ecto8 a'rir el arc:i o de pro"ecto . 'pro& o el arc:i o de soluci$n .sln tiene el mismo resultado8 pero si la soluci$n es multipro"ecto entonces de'er a'rir el arc:i o de soluci$n. Best !ractices> Procure siempre abrir el archivo de soluci n .sln. /os 4ormularios en Visual Basic .NET tienen la e0tensi$n . '. 3e mostraran a manera de pestaCas la p(ina de inicio8 la ista de diseCo " el c$di(o del 4ormulario. !ara e itar el acoplamiento de entanas8 mientras arrastre la entana pulse la tecla D3trlE8 si desea inte(rar la entana como pestaCa entonces arrastre la entana so're otras pestaCas " li'ere. El control 4!age desaparece en Visual 3tudio. Ga no tendr ?ue utili7ar el ta'ulador para identar su c$di(o.

.NET 5ra!ewor6
Visual 3tudio .NET tiene una nue a :erramienta ?ue comparte con Visual Basic8 Visual ,@@8 Visual ,A8 etc. llamada.NET Framework ?ue adems es una inter4a7 su'"acente ?ue 4orma parte del propio sistema operati o %indows. /a estrucutra de .NET Framework es por ,lases mismas ?ue puede incorporar a sus pro"ectos a tra s de la instrucci$n 1mports8 por e&emplo una de sus ,lases es 3"stem.*at: la cual soporta los si(uientes mtodos

Mtodo Abs(n) Cos(n) Exp(n) Sign(n) Sin(n) Sqr(n) Tan(n) Calcula el valor absoluto de n

Descripcin

Atan(n) Calcula el arcotangente de n en radianes Calcula el coseno del ngulo n expresado en radianes Calcula el constante de e elevada a n Regresa -1 si n es menor que cero, cero Calcula la ra"# cuadrada de n. Calcula la tangente del ngulo n expresado en radianes si n es cero ! +1 si n es ma!or a

Calcula el seno del ngulo n expresado en radianes

/a declaraci$n de 1mports de'e ser a ni el de 4ormulario> 1mports 3"stem.*at: !u'lic ,lass FormH . . . !ri ate 3u' FormHI/oad-B"Val sender #s 3"stem.)'&ect8 B"Val e #s 3"stem.E ent#r(s.9 2andles *"Base./oad t0t)utput.Te0t @J 3?rt-K. L 'New/ine . . .

.NET
/a 'i'lioteca de clases .NET es una 'i'lioteca de clases incluida en el Microsoft .NET !rame"or# " est diseCada para ser la 'ase so're las cuales las aplicaciones .NET son construidas.

na!espaces
/a 'i'lioteca .NET contiene un nBmero considera'le de clases con c$di(o reutili7a'le8 para a"udar a controlar esta comple&idad .NET utili7a namespaces8 colecciones de clases relacionadas.

Nue)o Pro$ecto
De clic en el 'ot$n DNew Pro%ectE o File<New<!ro&ect8 como tipo de pro"ecto seleccione Visual Basic Pro%ect8 como plantilla seleccione Windows 7pplication8 por Bltimo indi?ue la u'icaci$n donde desea almacenar su pro"ecto. #l dar clic Visual 3tudio con4i(ura el entorno de desarrollo " crea un directorio con el mismo nom're ?ue especi4ico para la aplicaci$n.

7plicaci,n Windows E%ecuta"le


/as aplicaciones %indows creadas con Visual Basic .NET tienen la e0tensi$n .e0e mismas ?ue podrn ser e&ecutadas en cual?uier e?uipo ?ue ten(a instalado *icroso4t %indows. Visual Basic .NET instala de de

manera automtica los arc:i os de soporte8 inclu"endo las 'i'liotecas de de .NET frame"or#. Visual 3tudio puede crear dos tipos de arc:i os e&ecuta'les>

Fnculos dinmicos " arc:i os

1. 2.

De"ug 8 3o!pilaci,n de depuraci,n' se utili9a cuando se prue"a $ depura un progra!a 0De+ault1. :elease 8 Versi,n de edici,n' se utili9a cuando se ter!ina el progra!a siendo esta una )ersi,n opti!i9ada de !enor ta!a;o

!ara crear un arc:i o e&ecuta'le8 de clic en Build<,on4i(uration *ana(er para decidir so're el tipo de arc:i o e&ecuta'le8 adems de otras opciones como la plata4orma para la cual desea crear la aplicaci$n. De clic en Build<Build 3olution. /o ?ue Visual Basic :ace es crear una directorio 'inaria dentro del directorio ?ue contiene el pro"ecto " compilar el c$di(o 4uente8 dando como resultado un arc:i o .e0e con el nom're de su aplicaci$n.

Progra!aci,n <rientada a E)entos


Visual Basic .NET soporta la Progra!aci,n <rientada a E)entos en la cual las aplicaciones reconocen " responden a e entos.

E)ento
5n E)ento es una acci$n o acontecimiento reconocido por al(unos o'&etos para los cuales es necesario escri'ir el c$di(o para responder a dic:o e ento. /os e entos pueden ocurrir como resultado de una acci$n del usuario -on,lick.8 por in ocaci$n a tra s de c$di(o o disparados por el sistema -Timer Tick E ent..

=ane%ador de E)entos
5n =ane%ador de E)entos contiene c$di(o ?ue responde a e entos particulares. 5n desarrollador diseCa cuidadosamente sus aplicaciones determinando los controles disponi'les para el usuario " los e entos apropiados asociados a estos controles8 entonces8 el desarrollador escri'e el c$di(o para inte(rar los e entos consistentes con el diseCo de la aplicaci$n.

Procedi!ientos
5n procedi!iento es un con&unto de sentencias ?ue reali7an una acci$n l$(ica. E0isten tres tipos de procedimientos en Visual Basic .NET> 1 E)ent procedures>E)ent (andler' procedi!iento #ue contiene c,digo #ue es e%ecutado en respuesta a un e)ento. 3uando el e)ento es disparado el c,digo dentro del !ane%ador de e)entos es e%ecutado. Visual Basic .NET para los !ane%adores de e)entos utili9a una con)enci,n est/ndar la cual co!"ina el no!"re del o"%eto seguido de un gui,n "a%o $ el no!"re del e)ento. Pri)ate?Pu"lic Su" o"%eto@E)ento0par/!etros1 (andles <"%eto.E)ento sentencias End Su" 3ada !ane%ador de e)entos pro)ee dos par/!etros' el pri!er par/!etro l la!ado sender pro)ee una re+erencia al o"%eto #ue dispara el e)ento' el segundo par/!etro es un o"%eto cu$o tipo de dato depende del e)ento #ue es !ane%ado. 7!"os par/!etros son pasados por )alor. Si un par/!etro es declarado por re+erencia B$:e+ el par/!etro apunta al argu!ento actual. Por de+ault los argu!entos se pasan por )alor B$Val el par/!etro es una copia local del argu!ento. & Su" procedures' contiene c,digo #ue el desarrollador crea para reali9ar una acci,n l,gica.

5unction procedures' contiene c,digo #ue el desarrollador crea para reali9ar una acci,n l,gica $ regresa un )alor' el )alor #ue una +unci,n en)ia de regreso al progra!a #ue lo in)oco es lla!ado valor de regreso. Para regresar un )alor se utili9a la sentencia :eturn.

A!"ito de las )aria"les


,uando es declarada una aria'le tam'in se de4ine su m'ito8 el m'ito de una aria'le es la re(i$n de c$di(o en la cual la aria'le se re4erencia directamente. E0isten dos tipos de m'itos de las aria'les> 1. ocal' es una )aria"le declarada dentro de un procedi!iento $ se destru$e cuando el procedi!iento ter!ina de e%ecutarse.

&. =,dular' es una )aria"le declarada a ni)el !,dulo +uera de cual#uier procedi!iento $ son declaradas en la parte superior del Editor de 3,digo arri"a del pri!er procedi!iento' este espacio es lla!ado Secci,n de Declaraciones Benerales 0General Declaration Section1.

3on)enciones para el no!"re de los controles


Es recomenda'le utili7ar con enciones para el nom're de los controles8 es decir8 ?ue al momento de dar lectura al c$di(o sea 4cil de entender " comprender8 por lo ?ue el esta'lecimiento de con enciones a"uda a identi4icar ?ue control se empleo8 por e&emplo8 si emplea un control 'ot$n emplee siempre como pre4i&o "tn depus completelo con un nom're descripti o acorde a la 4uncionalidad ?ue este tendr.

Control Button Label PictureBox Timer Text Box List Box Combo Box C ec! Box

$re%i&o Btn Lbl Pic Tmr Txt Lst Cbo Chk

"a#io Button Rad


3ontrol Button 0antes CommandButton1
El control 3o!!andButton en Visual Basic .NET reci'e el nom're de Button8 propiedad 3aption a:ora reci'e el nom're de Te0t8 ocurre lo mismo para el caso del control /a'el. la

3ontrol a"el
El control /a'el a:ora su propiedad 3aption reci'e el nom're de Te0t " por e&emplo la antes propiedad 7lign!enta:ora reci'e el nom're de Te0t#li(n la cual tiene ms opciones de alineaci$n.

3ontrol TextBox
El control Te0tBo0 tiene una capacidad de almacenamiento de MN ;'"tes de te0to.

3ontrol DateTi!ePic6er
El control DateTime!icker muestra por de4ecto la 4ec:a actual ?ue es posi'le modi4icar a tra s de su propiedad alue. Este control puede mostrar 4ec:as u :oras8 si desea mostrar :oras utilice> nom're,ontrol.Format J DateTime!ickerFormat.Time

3ontrol in6 a"el


# tra s de este control es posi'le a'rir el na e(ador por de4ault " acceder a un 56/ especi4ico> /ink/a'elH./inkVisited J True 3"stem.Dia(nostics.!rocess.3tart-/ink/a'elH.Te0t. Donde /ink/a'elH.Te0t es el alor ?ue tiene asi(nado la propiedad Te0t por e&emplo 4ile><<<,><pa(ina.:tml si ?uiere pro'ar sin tener acceso a internet o si ?uiere pro'ar con acceso a internet seria :ttp><<www.el3itio%e'.com. 3i re?uiere especi4icar el na e(ador con el cual desea a'rir el 56/ 'asta con seCalarlo> 3"stem.Dia(nostics.!rocess.3tart-O4ire4o0.e0eO8 /ink/a'elN.Te0t. P/a p(ina se mostrara utili7ando el na e(ador +ire+ox Es necesario seCalar al(o importante del c$di(o " adentrarnos a la pro(ramaci$n .NET8 "a ?ue el mtodo 3tart de la clase !rocess inicia en memoria un proceso de pro(rama e&ecuta'le para el na e(ador. /a clase !rocess :ace muc:o ms ?ue eso pero la parte a destacar es ?ue 4orma parte de la 'i'lioteca de o'&etos3"stem.Dia(nostics la cual los pro(ramadores Visual Basic .NET llaman espacio de no!"res 3"stem.Dia(nostics. En cuanto al mtodo !rocess.3tart destaca ?ue adems de a'rir una p(ina we' puede ser utili7ado para e&ecutar otras aplicaciones> 3"stem.Dia(nostics.!rocess.3tart-/ink/a'elM.Te0t. PDonde el alor de /ink/a'elM.Te0t es OwinwordO El mtodo 3tart utili7a N ar(umentos8 el primero especi4ica la aplicaci$n a emplear " el se(undo especi4ica el arc:i o ?ue a'rira la aplicaci$n8 es decir8 el si(uiente e&emplo a're el arc:i o indicado con *icroso4t E0cel> 3"stem.Dia(nostics.!rocess.3tart-Oe0celO8 Oc>pa(os.0lsO.

3ontroles 7nteriores $ <tros 3ontroles


Es posi'le utili7ar anti(uos controles #cti eQ " utili7arlos con al(unas limitaciones8 teniendo como restricci$n tcnica ?ue de'ern estar en un contenedor8 por e&emplo de clic con el 'ot$n derec:o en el separador Windows 5or!sseleccione la opci$n 7dd>:e!o)e ite!s " aparecer una entana donde dar clic en el 4older 3<= 3o!ponents " eli(ira el componente ?ue desea a(re(ar.

3ontrol =ain=enu
El ,ontrol =ain=enu a(re(a menBs a un pro(rama8 el manB se con4i(ura mediante sus propiedades. !ara a(re(ar un menB simplemente seleccione el control =ain=enu el cual de manera automtica se a&usta al tamaCo del 4ormulario8 este menB es de 4cil manipulaci$n pues 'asta con escri'ir el nom're para las opciones " a tra s del menB popup es posi'le modi4icarlo. 5na e7 a(re(ado el control =ain=enu tam'in se a(re(a un panel de'a&o del 4ormulario la cual reci'e el nom're deBande&a de ,omponentes a tra s del cual ser posi'le de4inir " modi4icar sus propiedades. #:ora 'ien lo ?ue se muestra en la parte superior del 4ormulario es un representaci$n isual del menB misma ?ue reci're el nom're de diseCador de menB8 pero el o'&eto menB principal se muestra en la parte in4erior dentro de la 'ande&a de componentes. !ara de4inir teclas de acceso para las opciones del menB8 continua con la 4orma de :acerlo en Visual Basic R ?ue es anteponiendo al caracter al cual deseamos :acer re4erencia el sFm'olo L 3i despus de escri'ir las opciones de su menB desea cam'iar el orden 'asta con seleccionar " mo er la opci$n a la posici$n deseada. 3i desea eliminar una opci$n del menB 'asta con seleccionarla " pulsar la tecla DSuprE o DDelE. !ara a(re(ar c$di(o a cada opci$n del menB 'asta con dar do'le clic so're la opci$n deseada> !ri ate 3u' *enu1temNI,lick-B"Val sender #s 3"stem.)'&ect8 B"Val e #s 3"stem.E ent#r(s. I 2andles *enu1temN.,lick *s(Bo0-Oopci$n HIHO. End 3u' !ri ate 3u' *enu1temMI,lick-B"Val sender #s 3"stem.)'&ect8 B"Val e #s 3"stem.E ent#r(s. I 2andles *enu1temM.,lick

*s(Bo0-Oopci$n HINO. End 3u' !ri ate 3u' *enu1temSI,lick-B"Val sender #s 3"stem.)'&ect8 B"Val e #s 3"stem.E ent#r(s. I 2andles *enu1temS.,lick *s(Bo0-Oopci$n NIHO. End 3u'

5unciones 4ntrinsecas

Val' regresa el nC!ero contenido en un argu!ento' se detiene en el pri!er caracter no nu!rico. 3D"l' regresa un )alor dou"le si el argu!ento puede ser con)ertido a dou"le 4sNu!eric' regresa True si el argu!ento puede ser con)ertido a dou"le :nd' regresa un )alor rando! entre D $ 1 7"s' regresa el )alor a"soluto de un nC!ero 0es necesario i!portar S$ste!.=at(1 4nt' regresa la parte entera de un nC!ero 5or!at3urrenc$' regresa un string +or!ateado a !oneda $ redondeado a dos deci!ales 5or!ar0expr'str1' con)ierte una expresi,n a un +or!ato string espec.+ico.

5unciones 5inancieras
Visual Basic .NET pro ee 4unciones 4inancieras como !mt-6ate8Nper8!V. para determinar pa(os mensuales "FV-6ate8Nper8!mt. para determinar el alor 4uturo de una anualidad 'asada en pa(os 4i&os periodicos e intereses de tasa 4i&a.

5unciones de Tie!po $ Eora


En Visual Basic .NET e0isten 4unciones a tra s de las cuales es posi'le manipular el tiempo " la :ora>

Ti!eString' regresa la (ora actual del siste!a. DateString' regresa la +ec(a actual del siste!a. Now' regresa un )alor codi+icado #ue representa la (ora $ +ec(a actual del siste!a. Eour0(ora1' regresa el nC!ero de (ora actual del siste!a. =inute0(ora1' regresa el nC!ero de !inuto actual del siste!a. Second0(ora1' regresa el !C!ero del segundo actual del siste!a. Da$0+ec(a1' regresa el nC!ero del d.a actual del siste!a. =ont(0+ec(a1' regresa el nC!ero de !es actual del siste!a. Fear0+ec(a1' regresa el a;o actual del siste!a. Wee6da$0+ec(a1' regresa el nC!ero #ue representa el d.a de la se!ana. 01 G Do!ingo' & G unes' ...1. !ri ate 3u' ButtonHI,lick-B"Val sender #s 3"stem.)'&ect8 B"Val e #s 3"stem.E ent#r(s.I 2andles ButtonH.,lick t0tTime3trin(.Te0t J Time3trin( End 3u' !ri ate 3u' Date3trin(I,lick-B"Val sender #s 3"stem.)'&ect8 B"Val e #s 3"stem.E ent#r(s.I 2andles ButtonN.,lick t0tDate3trin(.Te0t J Date3trin( End 3u' !ri ate 3u' ButtonMI,lick-B"Val sender #s 3"stem.)'&ect8 B"Val e #s 3"stem.E ent#r(s.I

2andles ButtonM.,lick t0tNow.Te0t J Now End 3u' !ri ate 3u' ButtonTI,lick-B"Val sender #s 3"stem.)'&ect8 B"Val e #s 3"stem.E ent#r(s.I 2andles ButtonT.,lick t0t2our.Te0t J 2our-Now. End 3u' !ri ate 3u' ButtonSI,lick-B"Val sender #s 3"stem.)'&ect8 B"Val e #s 3"stem.E ent#r(s.I 2andles ButtonS.,lick t0t*inute.Te0t J *inute-Now. End 3u' !ri ate 3u' ButtonRI,lick-B"Val sender #s 3"stem.)'&ect8 B"Val e #s 3"stem.E ent#r(s.I 2andles ButtonR.,lick t0t3econd.Te0t J 3econd-Now. End 3u' !ri ate 3u' ButtonUI,lick-B"Val sender #s 3"stem.)'&ect8 B"Val e #s 3"stem.E ent#r(s.I 2andles ButtonU.,lick t0tDa".Te0t J *icroso4t.VisualBasic.Date#ndTime.Da"-Now. End 3u' !ri ate 3u' ButtonVI,lick-B"Val sender #s 3"stem.)'&ect8 B"Val e #s 3"stem.E ent#r(s.I 2andles ButtonV.,lick t0t*ont:.Te0t J *ont:-Now. End 3u' !ri ate 3u' ButtonKI,lick-B"Val sender #s 3"stem.)'&ect8 B"Val e #s 3"stem.E ent#r(s.I 2andles ButtonK.,lick t0tGear.Te0t J Gear-Now. End 3u' !ri ate 3u' ButtonHWI,lick-B"Val sender #s 3"stem.)'&ect8 B"Val e #s 3"stem.E ent#r(s.I 2andles ButtonHW.,lick t0t%eekda".Te0t J %eekda"-Now. End 3u'

3uadros de Dialogo
Visual Basic .NET cuanta con siete tipos de cuadro de dialo(o ?ue 4acilitan la construcci$n de inter4a7 de usuario>

<pen5ileDialog' o"tiene unidad' no!"re de directorio $ no!"re de un arc(i)o existente. Sa)e5ileDialog' o"tiene unidad' no!"re de directorio $ no!"re para un arc(i)o nue)o. 5ontDialog' para #ue el usuario seleccione una con+iguraci,n para la +uente. 3olorDialog' para #ue el usuario seleccione un color de una paleta. PrintDialog' para #ue el usuario de+ina opciones de i!presi,n PrintPre)iewDialog' !uestra al usuario una )ista pre)ia de i!presi,n. PageSetupDialog' para #ue el usuario controle las opciones de con+iguraci,n de p/gina.

#l momento de diseCar la inter4a7 de usuario los controles de cuadro de dialo(o no aparecen en la pantalla pero si se muestran isi'les al pie de la misma8 pudiendo acceder a sus propiedades para con4i(urar el control.

3i re?uiere :acer isi'le mtodo 3:owDialo(-..

el

cuadro

de

dialo(o

en

modo

e&ecuci$n

tendr

?ue

emplear

el

El mtodo 3:owDialo(-. re(resa un dilo(o en el ?ue el usuario dio clic.

alor denominado Dialo(6esult8 indicando el 'ot$n del cuadro de

<pen5ileDialog
El control <pen5ileDialog representa un dialo(o precon4i(urado para seleccionar un arc:i o ?ue ser a'ierto. /a propiedad 1nitialDirector" especi4ica el directorio inicial desple(ado por la ca&a de dialo(o de arc:i o. /a propiedadFilter determina el 4ormato de arc:i os ?ue podrn ser presentados en la ca&a de dialo(o8 para desple(ar la ca&a de dialo(o de arc:i o se utili7a su mtodo 3:owDialo(8 la propiedad FileName mantiene es un strin( ?ue contiene el nom're del arc:i o seleccionado. 3upon(a un e&ercicio donde tiene un control )penFileDialo( " otro !ictureBo08 a tra s del cuadro de dialo(o es posi'le seleccionar una ima(en8 misma ?ue ser car(ada " presentada por el control de ima(en -X.'mp8 X.em48 X.wm48 X.ico8 X.cur8 X.&p(8 X.&pe(8 X.pn(8 X.(i4.8 es posi'le utili7ar el mtodo Filter para especi4icar solamente los arc:i os ?ue ten(an el 4ormato especi4icado -entre 4ormato " 4ormato se utili7a como separador el sFm'olo Y pipe.> o4d.Filter J O4ormato HYX.&p(Y4ormato NYX.'mpO o4d.3:owDialo(-. p'.1ma(e J 3"stem.Drawin(.1ma(e.FromFile-o4d.FileName. Dim dr dr J o4d.3:owDialo(-. *s(Bo0-dr. /a si(uiente lFnea descar(a el control de ima(en> p'.1ma(e J Not:in(

3olorDialog
El control 3olorDialog representa un dialo(o precon4i(urado ?ue desplie(a la ca&a de dialo(o de color estndar8 permitiendo al usuario seleccionar el color o de4inir un color personali7ado8 para desple(ar la ca&a de dialo(o de color se utili7a su mtodo 3:owDialo(8 la propiedad color mantiene el color seleccionado por el usuario. Es posi'le a(re(ar el control 3olorDialog al 4ormulario aun?ue est no este isi'lemente contenido en el 4ormulario pero si isi'le en la 'ande&a de componentes o es posi'le a(re(ar el control 3olorDialog a tra s de c$di(o declarando un o'&eto de este tipo. 6E* #(re(ando un control ,olorDialo( al 4ormulario !ri ate 3u' BtnB(,olorI,lick-B"Val sender #s 3"stem.)'&ect8 B"Val e #s 3"stem.E ent#r(s. I 2andles BtnB(,olor.,lick ,D.3:owDialo(-. /'lTe0t.Back,olor J ,D.,olor End 3u' 6E* Declarando un o'&eto tipo ,olorDialo( ia c$di(o !ri ate 3u' BtnFore,olorI,lick-B"Val sender #s 3"stem.)'&ect 8 B"Val e #s 3"stem.E ent#r(s. I 2andles BtnFore,olor.,lick Dim F, #s New ,olorDialo( F,.3:owDialo(-. /'lTe0t.Fore,olor J F,.,olor End 3u'

5ontDialog
El control 5ontDialog representa un dialo(o precon4i(urado ?ue desplie(a la ca&a de dialo(o de 4uente estndar8 por de4ault la ca&a de dialo(o muestra ca&as de listas para la 4uente8 estilo94uente8 " tamaCo8 ca&as de c:e?ueo para e4ectos como su'ra"ado o tac:ado8 tam'in muestra un e&emplo de como la 4uente podrFa aparecer8 para desple(ar la ca&a de dialo(o de 4uente se utili7a su mtodo 3:owDialo(8 la propiedad 4ont mantiene el color seleccionado por el usuario.

Es posi'le a(re(ar el control 5ontDialog al 4ormulario aun?ue este no est isi'lemente contenido en el 4ormulario pero si isi'le en la 'ande&a de componentes o es posi'le a(re(ar el control 5ontDialog a tra s de c$di(o declarando un o'&eto de este tipo. !ri ate 3u' BtnFontI,lick-B"Val sender #s 3"stem.)'&ect8 B"Val e #s 3"stem.E ent#r(s. I 2andles BtnFont.,lick Dim FD #s New FontDialo( FD.3:owDialo(-. /'lTe0t.Font J FD.Font End 3u'

PrintDialog
El control PrintDialog es una ca&a de dialo(o precon4i(urada8 utili7ada para seleccionar una impresora8 esco(er las p(inas a imprimir " determinar otras caracterFsticas de impresi$n en aplicaciones %indows. Es posi'le :a'ilitar al usuario para imprimir arias partes de sus documentos> imprimir todo8 imprimir un ran(o de p(inas o imprimir una selecci$n. /a propiedad Document se esta'lece con un o'&eto !rintDocument8 para desple(ar la ca&a de dialo(o de impresi$n utilice el mtodo 3:owDialo(8 la ca&a de dialo(o de impresi$n almacena la con4i(uraci$n del usuario en el o'&eto !rintDocument " para imprimir utilice el mtodo !rint.

PrintPre)iewDialog
El control PrintPre)iewDialog es una ca&a de dialo(o precon4i(urada8 para presentar como podrFa ser el documento cuando se imprima. /a propiedad Document se esta'lece con un o'&eto !rintDocument8 el cual tiene propiedades ?ue descri'en ?ue ser impreso " la :a'ilidad para imprimir dentro de una aplicaci$n %indows8 para desple(ar la ca&a de dialo(o de impresi$n9pre ia utilice el mtodo 3:owDialo(8

PageSetupDialog
El control PageSetupDialog es una ca&a de dialo(o precon4i(urada ?ue permite al usuario manipular la con4i(uraci$n de p(inas8 inclu"endo mar(enes " orientaci$n del papel. /a propiedad Document se esta'lece con un o'&eto!rintDocument8 para desple(ar la ca&a de dialo(o de !a(e3ettin(s utilice el mtodo 3:owDialo(8 la selecci$n del usuario se almacena en la propiedad !a(e3ettin(s " de'erFa entonces ser copiado al o'&eto !rintDocument.

Di! as
Visual Basic .NET no permite el uso del tipo de dato Variant " todas las aria'les de'ern ser declaradas por las instrucciones Dim nombreVarible as tipoDato. Dim es la a're iatura de Di!ensi,n8 ?ue sir e para reser ar espacio sentencia Di! especi4ica el nom're de la aria'le " su tipo de dato asociado. para la aria'le. /a

/as aria'les de'en tener un nom're Bnico llamado 4denti+icador8 los identi4icadores se 4orman si(uiendo las si(uientes re(las> 3o!en9ar con una letra o gui,n "a%o 0underscore1 De"en contener letras' digitos $ guiones "a%os. No pueden ser pala"ras reser)adas.

6ecomendaciones> El no!"re de las )aria"les de"er.an co!en9ar con una letra El no!"re de las )aria"les de"er.an distinguir cada nue)a pala"ra escri"iendo la pri!er letra en !a$Cscula El no!"re de las )aria"les de"er.an ser lo su+iciente!ente largo para ser signi+icati)o $ lo su+iciente!ente corto para ser !ane%a"le.

5na no edad en Visual Basic .NET es la declaraci$n e iniciali7aci$n de aria'les8 "a ?ue es posi'le :acer esto al mismo tiempo> Dim nom'reVaria'le as tipoDato J alor1nicial

3i no se de4ine un tipo de dato para la es )'&ect.

aria'le8 entonces asume el tipo de dato por de4ault ?ue

Es posi'le declarar aria'les como se :acia en Visual Basic R8 si emplea la instrucci$n )ption E0plicit )44. )ption E0plicit )44 !ri ate 3u' FormHI/oad-B"Val sender #s 3"stem.)'&ect 8 B"Val e #s 3"stem.E ent#r(s.I 2andles *"Base./oad J O000O L S *s(Bo0- . End 3u' End ,lass Visual Basic .NET incorpora la instrucci$n )ption 3trict si desea ?ue los tipos de datos en las operaciones sean del mismo tipo " e itar la con ersi$n " perdida de datos.

A!"ito de las Varia"les


ocal' )isi"le Cnica!ente a ni)el procedi!iento. PC"lica $ al inicio del +or!ulario' )isi"le Cnica!ente a ni)el +or!ulario. PC"lica $ al inicio del !,dulo' )isi"le Cnica!ente a ni)el pro$ecto.

4nputBox
# tra s de la 4unci$n 1nputBo0 es posi'le manipular la entrada de datos por parte del usuario8 pudiendo almacenar en una aria'le los datos in(resados por este. Dim s6espuesta #s 3trin( s6espuesta J 1nputBo0-O!assword > O8 O5suarioO8 8 SWW8 SWW. 14 s6espuesta Z[ 'Null3trin( T:en *s(Bo0-OValidaci$n de usuario " password pendiente...O. Else *s(Bo0-OEs necesario proporcionar su passwordO. End 14 El primer parmetro ?ue reci'e esta 4unci$n es un te0to indicati o para el usuario8 un te0to para el tFtulo de la entana8 un alor inicial para el campo donde el usuario in(resar datos8 un nBmero ?ue representa la coordenada Q " otro nBmero ?ue representa la coordenada los cuales indican la posici$n en donde se presentar la entana de in(reso de datos.

Tipos de Datos
/os tipos de datos numericos en Visual Basic .NET se a(rupan en dos cate(orias> enteros " de punto 4lotante. /os tipos de datos numericos a su e7 se a(rupan en8 B$te' S(ort' 4nteger $ ong. /os tipos de datos de punto 4lotante son Single " Dou"le. /os tipos de datos 3(ar almacenan un s$lo caracter en 4ormato 5nicode. /os tipos de datos String almacenan una secuencia de caracteres 5nicode. $nicode es un sistema internacional de codi4icaci$n de HR9'it ?ue cu're alores para ms de TS8WWW caracteres. 5n caracter 5nicode es almacenado como un alor numerico sin si(no de HR9'it8 de W a RSSMS. /os primeros HNV -W9HNU. caracteres 5nicode corresponden al con&unto de caracteres #3,11. Del MN al HNU corresponden a caracteres al4anumericos " sim'olos para un teclado 53. Del HNV al NSS representan caracteres especiales. El tipo de dato Boolean es un alor sin si(no el cual es interpretado como 4also o erdadero. El tipo de dato Date almacena 4ec:as " tiempo8 el ran(o de alores posi'le es del HN>WW>WW #* Enero H al MH de Diciem're del KKKK HH>SK>SK !*. /os alores para las 4ec:as de'en ser encerrados entre el si(no H " con el 4ormato!>d>aaaa8 por e&emplo AHN<U<HKUHA.

El tipo de dato <"%ect es el tipo de dato uni ersal en Visual Basic .NET " es tam'in el tipo de dato por de4ault para las aria'les ?ue son declaradas sin especi4icar su tipo de dato.

Tipos de Datos De+inidos por el -suario I Structure


Visual Basic permite al desarrollador crear sus propios tipos de datos8 esto es posi'le.NET a tra s del empleo de la instrucci$n 3tructure8 e&emplo> 3tructure !ersona Dim sNom're #s 3trin( Dim nEdad #s 1nte(er Dim dFec:aNac #s Date End 3tructure !ri ate 3u' FormHI/oad-B"Val sender #s 3"stem.)'&ect8 B"Val e #s 3"stem.E ent#r(s.I 2andles *"Base./oad Dim Empleado #s !ersona Empleado.sNom're J O=erardo +n(eles Na aO Empleado.nEdad J MM Empleado.dFec:aNac J ONH < K < HKUHO t0t)utput.Te0t J Empleado.sNom're L 'New/ine

t0t)utput.Te0t @J Empleado.nEdad L 'New/ine t0t)utput.Te0t @J Empleado.dFec:aNac End 3u' ,ada aria'le declarada dentro de la estructura es llamado un !e!"er. De4inici$n una estructura acia> Dim Empleado #s !ersona J \]

3onstantes
5na constante es a?uella ?ue almacena un pro(rama. alor ?ue no es posi'le cam'iar durante la e&ecuci$n del

3e recomienda ?ue el nom're de una constante sea escrito en su totalidad en ma"Bsculas. ,onst !1 #s Dou'le J M.HTHSKNRS 3i desea ?ue la constante est disponi'le para todos los 4ormularios " m$dulos de la aplicaci$n de'er ser declarada en un m$dulo " anteponer a su declaraci$n la pala'ra reser ada !u'lic. 6E* Escri'ir en un *$dulo !u'lic ,onst !1 #s Dou'le J M.HTHSKNRS

<peradores
Visual Basic .NET dispone de los si(uientes operadores matemticos>

'perador + $ % (uma Resta Multiplicacin Divisin

Descripcin

Divisin entera )parte entera de la divisin* &o# ' ( Residuo )resto de la divisin entera* +xponenciacin )elevar a una potencia* Concatenacin de Cadenas

Dim n1nc #s 1nte(er For n1nc J H To HW 14 n1nc *od N J W T:en t0t)utput.Te0t @J n1nc L O es par O L 'New/ine Else t0t)utput.Te0t @J n1nc L O no es par O L 'New/ine End 14 Ne0t t0t)utput.Te0t @J OHW<W J O L ,3tr-HW < W. /a di isi$n entre W no est permitida en los clculos matemticos "a ?ue produce un resultado in4inito8 en la ersi$n Visual Basic R :acer esto produce un error de e&ecuci$n HH ODivisi n entre %O8 pero en Visual Basic .NET se mane&a esta situaci$n automticamente " muestra un alor de Infinito. !on(a atenci$n en el si(uiente c$di(o " ten(a cuidado al comparar resultados "a ?ue el alor ?ue re(resa la e0cepci$n del clculo matemtico entre W es 1n4inito con la primer letra en ma"Bscula> 14 ,3tr-HW < W. J Oin4initoO T:en *s(Bo0-Omane&ador de clculoO.

Else *s(Bo0-ONo es lo mismo 9in4inito9 e 91n4inito9O. End 14 14 ,3tr-HW < W. J O1n4initoO T:en *s(Bo0-Omane&ador de clculoO.

<peradores 7rit!ticos
/os operadores aritmticos re?uieren operadores numricos -^8X8<88*od8@89. " producen resultados numricos.

<peradores String
El operador de concatenaci$n -L. 3trin( re?uiere operadores 3trin( " producen resultados 3trin(.

<peradores 3o!parati)os
/os operadores ,omparati os re?uieren operadores ,omparati os -[8Z8[J8ZJ8J8Z[. " producen un resultado l$(ico -True or False..

<peradores ,gicos
/os operadores /$(icos re?uieren operadores /$(icos -N)T8#ND8)68Q)6. " producen un resultado l$(ico.

<peradores 7"re)iados
Visual Basic .NET incorpora nue os operadores a're iados ?ue 4acilitan la escritura de c$di(o8 por e&emplo> 0 J 0 @ H P#ntes escri'ia 0 @J H P#:ora puede escri'ir

'peradores ,breviados +) -) $) %) ) ' ()


Precedencia de <peradores
# continuaci$n se muestra el orden de precedencia<prioridad<&erar?uFa de los operadores en Visual Basic .NET

$recedencia de 'peradores ( ) ' $% &o# +-

Sentencias de 3ontrol
Trataremos de destacar las no edades " cam'ios en cuando lo re4erente a Visual Basic .NET " citaremos la re4erencia al Tutorial de Visual Basic R. 3entencias de ,ontrol # manera de resumen recordaremos ?ue For se utili7a cuando se conoce de antemano el nBmero de iteracciones a e&ecutarse. Do se utili7a cuando no se conoce de antemano el nBmero de iteraciones a e&ecutarse. 3i al menos de'e e&ecutarse H iteraci$n es necesario colocar la e0presi$n condicional al 4inal del ciclo. E ite ciclos in4initos8 para ello ase(urese de ?ue estos ciclos ten(an una e0presi$n condicional de salida. 5tilice 5ntil a di4erencia de %:ile cuando re?uiera ?ue la e0presi$n condicional sea la contraria8 por e&emplo con %:ile la e0presi$n condicional podrFa ser # Z[ B " con 5ntil podrFa ser # J B. /a Bnica sentencia de control ?ue tiene un cam'io rele ante sintacticamente es %:ile "a ?ue antes se escri'ia %:ile ... %end a:ora es necesario escri'ir %:ile ... End %:ile. Visual Basic .NET incorpora N nue os operadores l$(icos para utili7arlos en las sentencias de control8 a continuaci$n se mostrar la ta'la de operadores l$(icos anteriores " nue os>

'peradores -gicos An# *r +ot ,or An#Also *rElse

Descripcin -as 2 expresiones deben ser verdaderas ,lguna de las 2 expresiones es verdadera .egacin del resultado de la expresin (i 1 ! slo 1 de las expresiones es verdadera (i la primer ! segunda condicin son verdaderas (i la primer o segunda condicin es verdadera

/os nue os operadores l$(icos #nd#lso " )rElse reci'en el nom're de sistema de corto&circuito. Dim n,ali4icacion #s 1nte(er J W 14 n,ali4icacion ZJ W #nd#lso n,ali4icacion < W T:en *s(Bo0-OError de l$(icaO. Else *s(Bo0-O,ontinuar clculoO. End 14 !arece ?ue el operador l$(ico #nd#lso como )rElse nos a:orran escri'ir un 14 dentro de otro 14<else " ?ui7 e itar un error en tiempo de e&ecuci$n. Dim n,ali4icacion #s 1nte(er J W 14 n,ali4icacion Z W )rElse n,ali4icacion < W T:en *s(Bo0-OError de l$(icaO. Else *s(Bo0-O,ontinuar clculoO. End 14

Do ... oop
/a sentencia de control Do ... /oop es la sentencia (eneral iterati a8 la cual permite e&ecutar repetiti amente un (rupo de sentencias :asta ?ue una condici$n sea cumpla. E0isten cuatro ersiones de la sentencia Do ... /oop > Do While condici,n sentencias oop Do Until condici,n

sentencias oop

Do sentencias oop While condici,n Do sentencias oop Until condici,n

Exit
/a sentencia E0it permite salir inmediatamente de una decisi$n8 ciclo o procedimiento.

3ontrol Ti!er
# tra s del control Timer es posi'le e&ecutar una instrucci$n en un inter alo de tiempo especi4ico8 este Timer se acti a esta'leciendo su propiedad 1nter al con el alor True " se e&ecutar :asta ?ue por medio de la acci$n del usuario lo deten(a o se desacti e el tempori7ador. ,uando a(re(a un Timer este no es isi'le en el 4ormulario pero si en la parte in4erior de la pantalla -Bande&a de ,omponentes.8 &usto de'a&o del 4ormulario. En Visual Basic .NET el nom're del control cam'ia su nom're por TimerITick !or e&emplo si desea ?ue se e&ecute una acci$n cada se(undo8 ser necesario cam'iar el propiedad1nter al a HWWW milise(undos. alor de la

!ara iniciar la e&ecuci$n del propio Timer es necesario esta'lecer el alor de la propiedad Ena'led a True. !ara detencer la e&ecuci$n del Timer es necesario in ocar el mtodo 3top-.. Dim i #s 1nte(er J W !ri ate 3u' 'tn1nicioI,lick-B"Val sender #s 3"stem.)'&ect8 B"Val e #s 3"stem.E ent#r(s. I 2andles 'tn1nicio.,lick TimerH.Ena'led J True End 3u' !ri ate 3u' TimerHITick-B"Val sender #s 3"stem.)'&ect8 B"Val e #s 3"stem.E ent#r(s. I 2andles TimerH.Tick l'lTic.Te0t J ,3tr-i. i @J H End 3u' !ri ate 3u' 'tnFinI,lick-B"Val sender #s 3"stem.)'&ect8 B"Val e #s 3"stem.E ent#r(s. I 2andles 'tnFin.,lick TimerH.3top-. End 3u'

Sentencia :nd01
Visual Basic .NET pro ee la 4unci$n 6nd-. la cual (enera un alor aleatorio -random. entre W.W " H.W !ri ate 3u' Btn*ake6ndI,lick-B"Val sender #s 3"stem.)'&ect8 B"Val e #s 3"stem.E ent#r(s. I 2andles Btn*ake6nd.,lick T0t)ut.Te0t J 6nd-. End 3u' Note ?ue cada e7 ?ue da clic al 'ot$n se (enera un nBmero aleatorio -random. " se muestra en la ca&a de te0to8 pero cierre el pro(rama " e&ecutelo de nue o8 notar ?ue siempre d la misma secuencia de nBmeros8 es por ello ?ue a estos nBmeros se les llame pseudo9aleatorios. 3i re?uiere o'tener un nBmero entero a partir del nBmero (enerado8 en e7 de la 4racci$n8 entonces multipli?uelo por HW " despus redondeelo utili7ando la 4unci$n de redondeo de la clase *at:

!ri ate 3u' Btn*ake6ndI,lick-B"Val sender #s 3"stem.)'&ect8 B"Val e #s 3"stem.E ent#r(s. I 2andles Btn*ake6nd.,lick T0t)ut.Te0t J 6nd-. T0t)utN.Te0t J T0t)ut.Te0t X HW T0t)utM.Te0t J *at:.6ound-T0t)ut.Te0t X HW. End 3u' )tra manera de o'tener la parte entera es utili7ar la 4unci$n 1nt8 si desea ?ue el nBmero (enerado se encuentre en un ran(o8 solamente tiene ?ue :acer una multiplicaci$n del nBmero del lFmite superior> !ri ate 3u' Btn*ake6ndI,lick-B"Val sender #s 3"stem.)'&ect8 B"Val e #s 3"stem.E ent#r(s. I 2andles Btn*ake6nd.,lick 14 Trim-T0t6an(e.Te0t. Z[ 'Null3trin( T:en T0t)utT.Te0t J 1nt-6nd-. X -T0t6an(e.Te0t @ H.. Else T0t)ut.Te0t J 6nd-. T0t)utN.Te0t J T0t)ut.Te0t X HW T0t)utM.Te0t J *at:.6ound-T0t)ut.Te0t X HW. End 14 End 3u' Salida8 los nBmeros (enerados comprenden el ran(o de W a lFmite superior.

:ando!i9e
/a 4unci$n 6nd crea siempre la misma secuencia de nBmeros aleatorios8 para crear un autntico nBmero aleatorio utilice el mtodo 6andomi7e la cual utili7a el relo& de la !, para crear un punto de inicio aleatorio el cual ser utili7ado despus por la 4unci$n 6nd. !ri ate 3u' Btn6ndmi7eI,lick-B"Val sender #s 3"stem.)'&ect8 B"Val e #s 3"stem.E ent#r(s. I 2andles Btn6ndmi7e.,lick VB*at:.6andomi7e-. P 1nitiali7e random9num'er (enerator. T0t)ut.Te0t J 6nd-. End 3u' El mtodo 6andomi7e pertenece a la ,lase =icroso+t.VisualBasic.VB=at(.

Depuraci,n' Tipos de errores


E0isten M tipos 'sicos de errores8 los 4ciles de encontrar8 solucionar " ?ue no causan pro'lemas de mantenimiento -sinta0is.8 los di4Fciles de encontrar8 solucionar " ?ue causan pro'elmas potenciales de mantenimiento -l$(ica.> 1. Errores de co!pilaci,n o de Sintaxis' son a#uellos errores en los cuales la estructura sint/ctica de+inida por el lengua%e no concuerda con la escrita en una sentencia' es decir' ocurren cuando el c,digo escrito no sigue o )iola las reglas del lengua%e' para ello Visual Studio reconoce un error de sintaxis su"ra$a de a9ul el error $ pasando por enci!a de este el !ouse aparece un !ensa%e de error. &. Errores en tie!po de e%ecuci,n' son todos a#uellos errores no descu"iertos por el co!pilador $ #ue pro)ocan una !al +unci,n del progra!a. El t.pico caso de una expresi,n entre tipos de datos distintos' #ue en Visual Basic 2 presenta el siguiente !ensa%eI :un8ti!e error J1*JI T$pe !is!atc( 7(ora en Visual Basic .NET un error en tie!po de e%ecuci,n genera una excepci,n' lo cual signi+ica #ue esta situaci,n excepcional re#uiere de un !ane%o especial. *. Errores l,gicos' son todos a#uellos errores de tipo Eu!anWare' es decir' +allas en la +or!a de pensar de la persona $ #ue trasciende al c,digo' este tipo de errores son los #ue consu!en !/s tie!po al tratar de (acer un progra!a li"re de errores $ son ade!/s los errores !/s di+iciles de corregir' por ser el resultado de una plani+icaci,n $ ra9ona!iento e#ui)ocados.

os errores l,gicos son errores en el dise;o o i!ple!entaci,n de la soluci,n #ue pro)ocan un co!porta!iento incorrecto. Por e%e!plo piense en #ue se re#uiere o"tener un pro!edio $ alguien dise;o o i!ple!ento la siguiente +or!ulaI nPro!edio G 3ali+icacion1 K 3ali+icacion& > & Si la +or!ula se escri"e tal cual' la precedencia de operadores nos indica #ue su!ar/ la 3ali+icacion1 al resultado de la di)isi,n de la 3ali+icacion& > &' lo cual no es el pro!edio' lo #ue estaria!os esperando es #ue pri!ero (iciera una su!atoria $ despus reali9ara una di)isi,n' el error a#u. es #ue (ar.an +alta unos parntesis. nPro!edio G 03ali+icacion1 K 3ali+icacion&1 > & a ra9,n por la cual son los errores !/s di+iciles de corregir es por#ue la !a$oria de los escenarios +unciona sin pro"le!a' pero )asta con #ue un escenario no se cu!pla para (acer +allar el progra!a. En el siguiente e%e!plo el co!pilador no detecta #ue se trata de acceder a un .ndice #ue no existe' por lo #ue al intentar acceder se genera una excepci,nI Di! a a G Luno.dos.tresL a G a.Split0L.L1 =sgBox0a0*11 J el ele!ento * no existe' el arreglo inicia en el ele!ento D $ ter!ina en & 5na de las potencialidades de Visual Basic a di4erencia de otros poderosos len(ua&es es ?ue tiene inte(rada una :erramienta de depuraci$n de errores8 con la cual es posi'le e&ecutar el c$di(o> Paso a paso por instrucciones Paso a paso por procedi!ientos Paso a paso para salir 7s. co!o ta!"in es posi"le esta"lecer puntos de interrupci,n en el c,digo.

5na no edad en Visual Basic .NET es ?ue los puntos de interrupci$n se mantienen aBn si se cierra Visual Basic .NET

Ventana de 3o!andos
# tra s del depurador de Visual Basic .NET es posi'le a'rir una entana ?ue nos permita conocer el alor ?ue tienen las aria'les en cierto momento o para re?uerir de una a"uda au0iliar. /a Ventana de 3o!andos nos permite escri'ir por e&emplo un o'&eto " al escri'ir la notaci$n de punto -.. aparecen las propiedades " mtodos de este o'&eto8 por e&emplo escri'a> [4ile. !ara a'rir o acti ar esta soportar dos modos> entana de clic en De'u(<%indows<1nmediate8 esta entana es capa7 de

En =odo 4n!ediato 0Inmediate1 En =odo 3o!ando 0Command1

!ara cam'iar de un modo a otro simplemente escri'a>

Mc!d' si est/ en !odo 4n!ediato $ se desea pasar a !odo 3o!ando Mi!!ed' si est/ en !odo 3o!ando $ se desea pasar a !odo 4n!ediato

Ventana de 3o!andos 8 4n!ediata


/a Ventana de 3o!andos 8 4n!ediata8 nos permite e aluar o conocer el alor de una aria'le por e&emplo si su pro(rama utili7a una aria'le llamada sNom're " ?uiere conocer ?ue alor tiene entonce en la entana de comandos en modo inmediato8 escri'a> ?sNom're # continuaci$n se presentar su alor.

3ontrol istBox
El control /istBo0 :ace isi'le una lista de items8 donde el usuario puede seleccionar items en la lista utili7ando los clics del mouse. !ri ate 3u' FormHI/oad-B"Val sender #s 3"stem.)'&ect8 B"Val e #s 3"stem.E ent#r(s. 9 2andles *"Base./oad /stBo0.1tems.#dd-O6edO. /stBo0.1tems.#dd-O=reenO. /stBo0.1tems.#dd-OBlueO. End 3u' !ri ate 3u' /stBo0I3elected1nde0,:an(ed-B"Val sender #s 3"stem.)'&ect 8 B"Val e #s 3"stem.E ent#r(s. I 2andles /stBo0.3elected1nde0,:an(ed /stBo0)ut.1tems.#dd-/stBo0.3elected1tem. End 3u' !ri ate 3u' /stBo0)utI3elected1nde0,:an(ed-B"Val sender #s 3"stem.)'&ect 8 B"Val e #s 3"stem.E ent#r(s. I 2andles /stBo0)ut.3elected1nde0,:an(ed /stBo0)ut.1tems.6emo e-/stBo0)ut.3elected1tem. End 3u'

5unci,n 4sNu!eric
/a 4unci$n 1sNumeric-. re(resa un e aluada como un nBmero. alor 'ooleano el cual indica cuando una e0presi$n puede ser

Esta 4unci$n es 'sica de una aplicaci$n para alidar la entrada correcta de datos de tipo numrico. !ri ate 3u' 'tn1sNum'erI,lick-B"Val sender #s 3"stem.)'&ect8 B"Val e #s 3"stem.E ent#r(s. I 2andles 'tn1sNum'er.,lick 14 1sNumeric-T0t1nput.Te0t. T:en *s(Bo0-O3i es nBmeroO. Else *s(Bo0-ONo es nBmeroO. End 14 End 3u' Tendr ?ue :acer su 4unci$n de alidaci$n tan ro'usta como la re?uiera8 por e&emplo una alidaci$n pre ia en una entrada de datos8 seria pensar ?ue el usuario intento dar un nBmero pero al escri'ir8 sin desearlo di(ito un espacio8 para la perspecti a del usuario no ato8 ?ui7 ea ?ue e4ecti amente escri'io un nBmero " no le toma importancia a los espacios en 'lanco8 por lo tanto lo primero ?ue tendriamos ?ue reali7ar es la eliminaci$n de los espacios en 'lanco8 pero no s$lo los ?ue pro'a'lemente esten al inicio8 sino los ?ue tam'in estn en la parte intermedia " los ?ue estn en la parte 4inal8 para la eliminaci$n de los espacios en 'lanco al inicio " al 4inal de la entrada del usuario podriamos utili7ar una sola 4unci$n Trim8 pero8 Qu :a" de los espacios en 'lanco intermedios?.

Tri!' Tri!' :Tri!


Visual Basic .NET pro ee mecanismos para la eliminaci$n de espacios en 'lanco contenidos en un strin( a tra s de las si(uientes 4unciones>

Tri!' regresa un string #ue contiene una copia de un string especi+ico al cual se eli!inaron los espacios en "lanco contenidos al inicio del string. :Tri!' regresa un string #ue contiene una copia de un string especi+ico al cual se eli!inaron los espacios en "lanco contenidos al +inal del string. Tri!' regresa un string #ue contiene una copia de un string especi+ico al cual se eli!inaron los espacios en "lanco contenidos al inicio $ al +inal del string.

3ontrol 3(ec6Box
5n control ,:eckBo0 indica cuando un alor particular esta encendido o apa(ado8 erdadero o 4also8 si o no8 puede ser utili7ado tam'in para seleccionar mBltiples items de una lista de opciones.

3ontrol :adioButton
5n control 6adioButton permite al usuario seleccionar s$lo un item de una lista de opciones.

E)ento Ne$Press
El e ento ;e"!ress es utili7ado para capturar la tecla di(itada por el usuario. Este e ento distin(ue entre letras ma"Bsculas " minBsculas. El se(undo ar(umento del este e ento e0pone dos propiedades> 2andled " ;e",:ar8 la propiedad ;e",:ar es el caracter correspondiente a la tecla di(itada. /a propiedad 2andled es un alor 'ooleano8 si se esta'lece este alor como True entonces indicamos al 4ormulario ?ue no procese el e ento. El si(uiente e&emplo e ita ?ue se di(ite un nBmero> !ri ate 3u' Te0tBo0HI;e"!ress-B"Val sender #s )'&ect8 B"Val I e #s 3"stem.%indows.Forms.;e"!ressE ent#r(s. 2andles Te0tBo0H.;e"!ress 14 1sNumeric-e.;e",:ar. T:en e.2andled J True End 3u' El si(uiente e&emplo lida ?ue la entrada unicamente acepte nBmeros -permite 'orrar la entrada.> !ri ate 3u' Te0tBo0HI;e"!ress-B"Val sender #s )'&ect8 B"Val I e #s 3"stem.%indows.Forms.;e"!ressE ent#r(s. 2andles Te0tBo0H.;e"!ress 6E* 14 1sNumeric-e.;e",:ar. T:en e.2andled J True 14 -#sc-e.;e",:ar.. [J TV #nd -#sc-e.;e",:ar.. ZJ SU )r -#sc-e.;e",:ar.. J 3"stem.%indows.Forms.;e"s.Back T:en e.2andled J False Else e.2andled J True End 14 End 3u' El si(uiente e&emplo lida ?ue la entrada unicamente acepte letras -permite 'orrar la entrada.> !ri ate 3u' t0t/etrasI;e"!ress-B"Val sender #s )'&ect8 B"Val I e #s 3"stem.%indows.Forms.;e"!ressE ent#r(s. 2andles t0t/etras.;e"!ress 14 -#sc-e.;e",:ar.. [J RS #nd -#sc-e.;e",:ar.. ZJ KW )r I -#sc-e.;e",:ar.. [J KU #nd -#sc-e.;e",:ar.. ZJ HNN )r I -#sc-e.;e",:ar.. J 3"stem.%indows.Forms.;e"s.Back T:en e.2andled J False Else e.2andled J True End 14 End 3u'

3ontrol Windows =edia Pla$er


El control Windows =edia Pla$er reproduce inclu"endo *!E=8 #V18 %#V " *1D1. ideo " arc:i os de sonido en distintos 4ormatos8

Este control no es parte de la ca&a de :erramientas estndar8 para a(re(arlo seleccione #dd<6emo e ToolBo0 1tems<,)*<%indows *edia !la"er !ri ate 3u' Btn)penI,lick-B"Val sender #s 3"stem.)'&ect8 B"Val e #s 3"stem.E ent#r(s. I 2andles Btn)pen.,lick Dim )FD #s New )penFileDialo( )FD.3:owDialo(-. wmp.open!la"er-)FD.FileName. End 3u'

Tr$ ... 3atc(


3in duda una de las (randes no edades de Visual Basic .NET es la instrucci$n Tr" 9 ,atc:. El mecanismo Tr" 9 ,atc: sir e para atrapar errores8 tal como lo :ace )n Error =oto8 6esume " 6esume Ne0t pero estructural " conceptualmente di4erente. ,on el mecanismo Tr" 9 ,atc: es posi'le escri'ir mane&adores de errores estructurados o4reciendo una manera e4ica7 de resol er los errores en tiempo de e&ecuci$n. /os mecanismos pre ios a Tr" 9 ,atc: continuan i(entes8 incluso e0iste un nue o mtodo llamadoErr.=etE0ception8 ?ue o'tiene la e0cepci$n ?ue ocurrio al momento de (enerarse el error. Qu es un error en tie!po de e%ecuci,n?8 no es ms ?ue un error inesperado del cual un pro(rama en Visual Basic .NET no se puede recuperar8 por no poderse completar una instrucci$n entonces Visual Basic .NET no tiene instrucciones precisas ?ue e&ecutar en estos casos cuando se (enera el error. !ara lidiar con los errores en tiempo de e&ecuci$n Visual Basic tiene este nue o mecanismo Tr" 9 ,atc: para controlar los errores8 "a ?ue este mecanismo atrapa el error de4iniendo las acciones a se(uir cuando se identi4ica el error. #l(o importante a ana7alir " diseCar es cuando " como inte(rar un mecanismo Tr" 9 ,atc:. #sF ?ue de'era emplearse en a?uellas situaciones sucepti'les a error. /a manera en ?ue de'e utili7ar este mecanismo es la si(uiente> Tr" sentencia-s. ?ue pueden (enerar un error en tiempo de e&ecuci$n ,atc: -el error se (enero. sentencia-s. ?ue de4inen las acciones a se(uir "a ?ue se (enero el error Finall" sentencia-s. ?ue reesta'lecen las condiciones antes de (enerarse el error. End Tr" /a pala'ra reser ada Finall" es opcional. El c$di(o contenido dentro de un 'lo?ue Tr" reci'e el nom're de c di'o prote'ido8 por?ue e ita la interrupci$n del pro(rama o aplicaci$n " e&ecuta las instrucciones contenidas en ,atc:. !ara pro'ar ms de una condici$n de error en tiempo de e&ecuci$n utilice la sentencia ,atc: %:en> Tr" PE aluar e0presi$n ,atc: %:en Err.Num'er J HM P)currio un error de tipo de datos8 no coinciden los tipos ,atc: %:en Err.Num'er J R P)currio un error en el control del Fndice8 des'ordamiento ,atc: P,ontrolar el error End Tr" !or Bltimo8 este mecanismo al i(ual ?ue las sentencias de control tiene una manera de salir del 'lo?ue "a sea esteTr" o ,atc: a tra s del empleo de la instrucci$n E0it tr"8 pero si contiene una sentencia Finall" el c$di(o contenido en esta si se e&ecuta8 Bnicamente aplica para Tr" " ,atc: pues el o'&eti o de Finall" es precisamente el e&ecutar pase lo ?ue pase su contenido. Tr" Psentencia-s. ?ue pueden (enerar un error en tiempo de e&ecuci$n PBa&o determinada condici$n Exit tr$ ,atc: P-el error se (enero. Psentencia-s. ?ue de4inen las acciones a se(uir "a ?ue se (enero el error PBa&o determinada condici$n Exit tr$ Finall" Psentencia-s. ?ue reesta'lecen las condiciones antes de (enerarse el error. End Tr"

Err
6ecordemos ?ue el o'&eto Err tiene propiedades utiles como Num'er para o'tener el nBmero de error ?ue se produ&o8Description para o'tener una descripci$n del error ocurrido8 todo ello re4erente al Bltimo error ocurrido.

=,dulo
/a no edad en Visual Basic .NET en lo re4erente a m$dulos es ?ue a:ora el m$dulo tiene instrucciones de inicio " 4in ?ue lo delimitan> )tra no edad en Visual Basic .NET es ?ue los ar(umentos de los procedimientos se pasan B"Val8 es decir8 no se modi4ica el alor ori(inal de la aria'le sino ?ue se manda una copia del alor8 por lo ?ue ?ui7 sea necesario la ma"or parte de las eces indicar ?ue se pasan B"6e4. !ri ate 3u' FormHI/oad-B"Val sender #s 3"stem.)'&ect8 B"Val e #s 3"stem.E ent#r(s. 2andles *"Base./oad Dim i #s 1nte(er J S multiplica-i. *s(Bo0-i. End 3u' *odule mi*odulo 3u' multiplica-B"Val & #s 1nte(er. & XJ & End 3u' End *odule Salida> S 3i cam'ia B"Val por B"6e4 la Salida es NS. #l in ocar un procedimiento Visual Basic .NET de manera automtica encierra entre parntesis los ar(umentos. 3in duda la ma"or no edad para las 4unciones es ?ue a:ora es posi'le utili7ar la sinta0is 6eturn para re(resar el resultado " se(uira i(ente :acerlo como se :acia en Visual Basic R8 ?ue era utili7ar el nom're de la 4unci$n " asi(narle el resultado. ,uando la 4unci$n encuentre la pala'ra reser ada 6eturn de manera inmediata se detiene su e&ecuci$n " re(resar si se esta'lecio en su caso un alor. /as 4unciones ?ue son declaradas en los m$dulos estndar por de4ecto son pB'licas. 6ecuerde ?ue la di4erencia entre una 4unci$n " un procedimiento es ?ue la 4unci$n re(resa procedimiento no. alores " el

=atrices>7rra$s>7rreglos>Vectores
)ptaremos por re4erirnos a esta estrutura como 7rreglo. /a no edad para los arre(los en Visual Basic .NET es ?ue el Fndice comien7a en W " no podr utili7arse la opci$n)ption Base para rede4inirlo8 es decir8 darle cual?uier otro alor. E4ectos de las arre(los 'asados en W> Dim a,olores-N. #s 3trin( a,olores-W. J O6o&oO a,olores-H. J OVerdeO a,olores-N. J O#7ulO

No es posi"le declarar arreglos con la pala"ra reser)ada To Bound regresar/ sie!pre el )alor D por#ue el l.!ite in+erior de un arreglo es D -Bound regresar/ co!o )alor el nC!ero de ele!entos !enos 1 Dim aNumeros-. #s 1nte(er J \HW8 NW8 MW8 TW8 SW] Dim i #s 1nte(er t0t)ut.Te0t @J O/e4t Bound > O L /Bound-aNumeros. L 'New/ine t0t)ut.Te0t @J O5pper Bound > O L 5Bound-aNumeros. L 'New/ine For i J W To 5Bound-aNumeros. t0t)ut.Te0t @J i L O > O L aNumeros-i. L 'New/ine Ne0t

No es posi"le utili9ar :edi! en la declaraci,n inicial No es posi"le utili9ar :edi! para ca!"iar la di!ensi,n a un arreglo existente

1. 7rreglos Est/ticos' el nC!ero de sus ele!entos sie!pre ser/ el !is!o. &. 7rreglos Din/!icos' el nC!ero de sus ele!entos puede ca!"iar durante la e%ecuci,n del progra!a. Para los arreglos din/!icos de"e tenerse en !ente #ue al declarar el arreglo su ta!a;o ser/ de+inido co!o elnmero de elementos menos 1. -na )e9 declarado un arreglo no es posi"le ca!"iar el nC!ero de di!ensiones utili9ando :edi!' es decir si se declaro un arreglo unidi!ensional con :edi! no podr/ rede+inirlo co!o "idi!ensional. 6edim !reser e8 si modi4ica la dimensi$n de una matri7 ?ue "a conten(a datos8 estos se perdern8 "a ?ue al e&ecutar la instrucci$n 6edim el contenido del arre(lo dinmico se de4inir a su alor predeterminado W o null8 mu" 'ueno para eliminar el contenido de un arre(lo8 pero mu" malo si se desea mantener los alores8 por lo ?ue la soluci$n para no eliminar los alores al rede4inir un arre(lo es utili7ar la instrucci$n !reser e. /a Bnica re(la es respetar el nBmero de dimensiones ori(inal. E0iste una limitaci$n8 "a ?ue s$lo es posi'le cam'iar el tamaCo de la Bltima dimensi$n8 si es ?ue el arre(lo tiene ms de una dimensi$n. En el caso de arre(los unidimensionales podrFa parecer no tener restricci$n. Dim a*ultidimensional-888. #s 1nte(er 6eDim a*ultidimensional-HW8 NW8 MW8 TW. 6eDim !reser e a*ultidimensional-HW8 NW8 MW8 VW.

3lase 7rra$
/a ,lase #rra" pro ee mtodos para crear8 manipular8 'uscar " ordenar arre(los8 por lo ?ue sir en como la clase 'ase para todos los arre(los en el runtime del len(ua&e comBn. Forma parte la 'i'lioteca .NET. /a ,lase #rra" contiene el mtodo 3ort el cual reci'e como ar(umento un arre(lo " su o'&eti o es ordenar el contenido del arre(lo> Dim i #s 1nte(er Dim aNumeros-K. #s 1nte(er !ri ate 3u' FormHI/oad-B"Val sender #s 3"stem.)'&ect8 B"Val e #s 3"stem.E ent#r(s. I 2andles *"Base./oad For i J W To K 6andomi7e-. aNumeros-i. J 6nd-. X K Ne0t 3:owElements-aNumeros8 /istBo0H. End 3u' !ri ate 3u' 3:owElements-B"6e4 a #s #rra"8 B"Val list #s /istBo0. For i J W To K list.1tems.#dd-a-i.. Ne0t End 3u' !ri ate 3u' Btn)rderI,lick-B"Val sender #s 3"stem.)'&ect8 B"Val e #s 3"stem.E ent#r(s. I 2andles Btn)rder.,lick #rra".3ort-aNumeros. 3:owElements-aNumeros8 /istBo0N. End 3u'

3olecciones
/as colecciones se utili7an o sir en para contener o'&etos8 por e&emplo> PDeclarar una aria'le del tipo ,ontrol para representar controles de 4ormulario Dim ctrl #s ,ontrol !ri ate 3u' FormHI/oad-B"Val sender #s 3"stem.)'&ect8 B"Val e #s 3"stem.E ent#r(s. 2andles *"Base./oad Dim i #s 1nte(er J H For Eac: *e.ctrl 1n ,ontrols 14 ctrl.Name Z[ O0O T:en ctrl.Te0t J O'oton O L i i @J H End 14 Ne0t End 3u' *s so're colecciones

=anipulaci,n de 7rc(i)os de Texto


En Visual Basic .NET e0isten nue as 4unciones para el mane&o de arc:i os de te0to proporcionandas por el o'&etoFiles"stem>

5ile<pen0nu!ero7rc(i)o'directorioNo!"re7rc(i)o'!odo7pertura1' a"re un arc(i)o de texto para entrada $ salida. Donde el pri!er argu!ento es un nC!ero entre 1 $ &OO cu$a +unci,n es controlar los arc(i)os a"iertos #ue tiene un progra!a' en el segundo argu!ento se especi+ica la ruta $ no!"re del arc(i)o #ue desea!os a"rir $ por Clti!o es necesario especi+icar en #ue !odo se a"rira el arc(i)o' es decir' si desea!os agregar datos nue)os utili9a!os el !todo 7ppend' si desea!os leer su contenido utili9a!os output' si desea!os escri"ir input o ta!"in es posi"le a"rirlo en !odo "inario "inar$ o en !odo aleatorio rando!. o+d.5ilter G Ltxt?P.txt?ini?P.ini?log?P.log?in+?P.in+L o+d.S(owDialog01 5ile<pen01' o+d.5ileNa!e' <pen=ode.4nput1 Precauci,n' tenga cuidado con el modo de apertura de arc(i)os $a #ue si a"re un arc(i)o con <utput se eli!ina el contenido del arc(i)o de%andolo )acio $ en espera de nue)os datos. 3uando re#uiera leer su contenido utilice4nput.

ine4nput' lee una l.nea de entrada desde el arc(i)o de texto. Di! s<ut7ux 7s String 4+ Not E<5011 T(en s<ut7ux G txt<ut.Text txt<ut.Text G )"NullString txt<ut.Text KG s<ut7ux Q n ine Q L I L Q ine4nput011 Q )"New ine n ine KG 1 Else =sgBox0L5in de arc(i)o' no (a$ !/s l.neas #ue leerL1 End 4+

E<5' co!prue"a el +inal del arc(i)o de texto. 4+ E<5011 T(en =sgBox0L5in de arc(i)oL1

5ile3lose' cierra el arc(i)o de texto. 5ile3lose011 5tilice Te0tBo0.3elect-H8W. para eliminar la selecci$n de te0to.

,omo nota aclaratoria los arc:i os de te0to son di4erentes a los arc:i os de documentos8 los cuales tienen c$di(os de 4ormato8 cuando nos re4erimos a arc:i os de te0to entiendase un arc:i o ?ue contiene Bnicamente caracteres reconoci'les " ?ui7 su 4ormato sea t0t8 ini8 lo( o in4.

Print ine0nu!ero7rc(i)o' o"%eto1' esta +unci,n escri"e datos con +or!ato a un arc(i)o secuencial El si(uiente e&emplo ilustra el e&emplo al(unas de las 4unciones de manipulaci$n de arc:i os de te0to> Dim n/ine #s 1nte(er J H !ri ate 3u' FormHI/oad-B"Val sender #s 3"stem.)'&ect8 B"Val e #s 3"stem.E ent#r(s. I 2andles *"Base./oad 'tn/ine.Ena'led J False 'tn,lose.Ena'led J False 'tn3a e.Ena'led J False End 3u' !ri ate 3u' 'tn)penI,lick-B"Val sender #s 3"stem.)'&ect8 B"Val e #s 3"stem.E ent#r(s. I 2andles 'tn)pen.,lick o4d.Filter J Ot0tYX.t0tYiniYX.iniYlo(YX.lo(Yin4YX.in4O o4d.3:owDialo(-. File)pen-H8 o4d.FileName8 )pen*ode.1nput. 'tn)pen.Ena'led J False 'tn/ine.Ena'led J True 'tn3a e.Ena'led J True End 3u' !ri ate 3u' 'tn/ineI,lick-B"Val sender #s 3"stem.)'&ect8 B"Val e #s 3"stem.E ent#r(s. I 2andles 'tn/ine.,lick 14 Not E)F-H. T:en t0t)ut.Te0t @J n/ine L O > O L /ine1nput-H. L 'New/ine n/ine @J H Else *s(Bo0-OFin de arc:i o8 no :a" ms lFneas ?ue leerO. 'tn/ine.Ena'led J False 'tn,lose.Ena'led J True t0t)ut.3elect-H8 W. End 14 End 3u' !ri ate 3u' 'tn,loseI,lick-B"Val sender #s 3"stem.)'&ect8 B"Val e #s 3"stem.E ent#r(s. I 2andles 'tn,lose.,lick File,lose-H. 'tn3a e.Ena'led J False 'tn,lose.Ena'led J False End 3u' !ri ate 3u' 'tn3a eI,lick-B"Val sender #s 3"stem.)'&ect8 B"Val e #s 3"stem.E ent#r(s. I 2andles 'tn3a e.,lick s4d.Filter J O#rc:i os de te0to t0tYX.t0tO s4d.3:owDialo(-. 14 s4d.FileName Z[ 'Null3trin( T:en File)pen-N8 s4d.FileName8 )pen*ode.)utput. !rint/ine-N8 t0t)ut.Te0t. File,lose-N. *s(Bo0-O#rc:i o almacenadoO. End 14 End 3u'

=anipulaci,n de 3adenas

El !todo 3oncat (ace posi"le concatenar cadenas de texto. -tilice la +unci,n -3ase o !todo To-pper' para con)ertir una cadena a !a$Csculas. -tilice la +unci,n 3ase o !todo To ower' para con)ertir una cadena a !inCsculas.

-tilice la +unci,n en o !todo engt(' para deter!inar el nC!ero de caracteres #ue tiene una cadena. -tilice la +unci,n =id o !todo Su"string' o"tiene un nC!ero +i%o de caracteres a partir de una posici,n dada de una cadena. 0El primer elemento de una cadena tiene el ndice !1. -tilice la +unci,n 4nStr o !todo 4ndex<+' si una cadena se encuentra contenida en otra regresa la posici,n a partir de la cual encontro la cadena. -tilice la +unci,n Tri! o !todo Tri!' eli!ina los caracteres en "lanco iniciales $ +inales de una cadena. -tilice el !todo :e!o)e' para eli!inar caracteres de la parte central de una cadena. -tilice el !todo 4nsert' para agregar caracteres a la parte central de una cadena. -tilice la +unci,n Str3!p' co!para cadenas $ detecta di+erencias en el uso de !a$Csculas $ !inCsculas' regresa los siguientes )aloresI 81' sorts a(ead D' las cadenas son iguales 1' sorts a+ter

E&emplo> Dim s #s 3trin( !ri ate 3u' FormHI/oad-B"Val sender #s 3"stem.)'&ect8 B"Val e #s 3"stem.E ent#r(s. I 2andles *"Base./oad l'lTitulo.Te0t J s.,oncat-O O8 OwwwO8 O.O8 Oin4ormati?ueO8 O.O8 OcomO8 O.O8 I Om0O8 O O8 OTutoriales de !ro(ramaci$n O. End 3u' !ri ate 3u' 'tn/owerI,lick-B"Val sender #s 3"stem.)'&ect8 B"Val e #s 3"stem.E ent#r(s. I 2andles 'tn/ower.,lick t0t)ut.Te0t J l'lTitulo.Te0t.To/ower End 3u' !ri ate 3u' 'tn5pperI,lick-B"Val sender #s 3"stem.)'&ect8 B"Val e #s 3"stem.E ent#r(s. I 2andles 'tn5pper.,lick t0t)ut.Te0t J l'lTitulo.Te0t.To5pper End 3u' !ri ate 3u' 'tn/enI,lick-B"Val sender #s 3"stem.)'&ect8 B"Val e #s 3"stem.E ent#r(s. I 2andles 'tn/en.,lick t0t)ut.Te0t J l'lTitulo.Te0t./en(t: End 3u' !ri ate 3u' 'tn3u'3trI,lick-B"Val sender #s 3"stem.)'&ect8 B"Val e #s 3"stem.E ent#r(s. I 2andles 'tn3u'3tr.,lick t0t)ut.Te0t J l'lTitulo.Te0t.3u'strin(-HT. End 3u' !ri ate 3u' 'tn1nde0)4I,lick-B"Val sender #s 3"stem.)'&ect8 B"Val e #s 3"stem.E ent#r(s. I 2andles 'tn1nde0)4.,lick t0t)ut.Te0t J l'lTitulo.Te0t.1nde0)4-Oin4ormati?ueO. End 3u' !ri ate 3u' 'tnTrimI,lick-B"Val sender #s 3"stem.)'&ect8 B"Val e #s 3"stem.E ent#r(s. I 2andles 'tnTrim.,lick t0t)ut.Te0t J l'lTitulo.Te0t.Trim End 3u'

!ri ate 3u' 'tn6emo eI,lick-B"Val sender #s 3"stem.)'&ect8 B"Val e #s 3"stem.E ent#r(s. I 2andles 'tn6emo e.,lick t0t)ut.Te0t J l'lTitulo.Te0t.6emo e-l'lTitulo.Te0t.1nde0)4-Oin4ormati?ueO.8 HN. End 3u' !ri ate 3u' 'tn1nsertI,lick-B"Val sender #s 3"stem.)'&ect8 B"Val e #s 3"stem.E ent#r(s. I 2andles 'tn1nsert.,lick t0t)ut.Te0t J l'lTitulo.Te0t.1nsert-W8 O:ttp><<O. End 3u' !ri ate 3u' 'tn3tr,ompI,lick-B"Val sender #s 3"stem.)'&ect8 B"Val e #s 3"stem.E ent#r(s. I 2andles 'tn3tr,ompW.,lick t0t)ut.Te0t J 3tr,omp-l'lTitulo.Te0t8 l'lTitulo.Te0t8 ,ompare*et:od.Binar". L I O is e?ual.O End 3u' !ri ate 3u' 'tn3tr,ompI,lickIH-B"Val sender #s 3"stem.)'&ect8 B"Val e #s 3"stem.E ent#r(s. 9 2andles 'tn3tr,ompH.,lick t0t)ut.Te0t J 3tr,omp-l'lTitulo.Te0t8 5,ase-l'lTitulo.Te0t.8 ,ompare*et:od.Binar". L I O sorts a4ter.O End 3u' !ri ate 3u' 'tn3tr,omp/HI,lick-B"Val sender #s 3"stem.)'&ect8 B"Val e #s 3"stem.E ent#r(s. I 2andles 'tn3tr,omp/H.,lick t0t)ut.Te0t J 3tr,omp-l'lTitulo.Te0t8 Oa'cO L l'lTitulo.Te0t L Oa'cO 8 ,ompare*et:od.Binar". L I O sorts a:ead.O End 3u'

5unciones 3(r 7sc

3(r' regresa el caracter asociado con el c,digo 7S344 especi+icado. 7sc' regresa un )alor entero el cual representa el c,digo 7S344 del caracter correspondiente.

# tra s de estas 4unciones es posi'le determinar el c$di(o #3,11 de una letra o su propio c$di(o #3,118 es decir8 por e&emplo si deseamos o'tener el c$di(o #3,11 de la letra PaP entonces empleados la 4unci$n #sc8 si conocemos el c$di(o #3,11 " deseamos sa'er el caracter asociado a este entonces empleamos la 4unci$n ,:r Visual Basic .NET cuando :ace una comparaci$n entre cadenas se 'asa en el c$di(o #3,11 de cada uno de los caracteres ?ue compone la cadena por lo ?ue una comparaci$n entre las cadenas O#O J OaO da como resultadoFalse8 pues en realidad estaria comparando RS " KU. Dim '6esultado #s Boolean J -O#O J OaO. *s(Bo0-'6esultado L O > -O L #sc-O#O. L O J O L #sc-OaO. L O.O.

7uto!ati9aci,n
/a auto!ati9aci,n -automation. es una tecnolo(Fa 'asada en el estndar de interopera'ilidad denominado *odelo de )'&etos ,omponentes -,)*.. El o'&eti o de automati7aci$n es utili7ar las 4unciones de una aplicaci$n en otra aplicaci$n. /as aplicaciones 'asadas en %indows ?ue e0ponen sus o'&etos se aplicaciones o"%eto o ser)idoras " los pro(ramas ?ue utili7an estos o'&etos se aplicaciones controladoras o clientes. !or e&emplo si desea utili7ar E0cel desde Visual Basic .NET > 1. 7gregue una re+erencia excel 0Pro%ect>7dd :e+erence>=icroso+t Excel versi"n <"%ect i"rar$1 &. Declare una )aria"le de tipo o"%eto Excel Dim 0ls#pp #s E0cel.#pplication denominan denominan

0ls#pp J ,T"pe-,reate)'&ect-OE0cel.#pplicationO.8 E0cel.#pplication. NotaI si no agrega la re+erencia entonces no tendr/ disponi"les las re+erencias del o"%eto Excel. En Visual Basic 2 era posi"le e!plear la tcnica enlace en tiempo de e#ecuci"n en la cual se declara"a una )aria"le de tipo o"%eto $ en tie!po de e%ecuci,n se asigna"a un tipo de aplicaci,n espec.+ico' esta tcnica $a no se reco!ienda. o reco!enda"le es e!plear la tcnica de enlace en tiempo de compilaci"n donde se asigna en tie!po de dise;o un tipo a las )aria"les #ue al!acenan los o"%etos 7uto!ati9aci,n' para ser enla9ados a los datos durante la co!pilaci,n. 7 tra)s de la +unci,n 3T$pe es el !ecanis!o #ue durante la co!pilaci,n de)uel)e el tipo de aplicaci,n espec.+ica a la )aria"le de aplicaci,n. E&emplo> Dim Dim Dim Dim 0ls#pp #s E0cel.#pplication 0lsBook #s E0cel.%ork'ook 0ls3:eet #s E0cel.%orks:eet sFile #s 3trin(

0ls#pp J ,T"pe-,reate)'&ect-OE0cel.#pplicationO.8 E0cel.#pplication. 0lsBook J ,T"pe-0ls#pp.%ork'ooks.#dd8 E0cel.%ork'ook. 0ls3:eet J ,T"pe-0lsBook.%orks:eets-H.8 E0cel.%orks:eet. 0ls3:eet.,ells-H8 0ls3:eet.,ells-H8 0ls3:eet.,ells-H8 0ls3:eet.,ells-H8 H. N. M. T. J J J J OwwwO Oin4ormati?ueO OcomO Om0O

0ls3:eet.6an(e-OBHO..Font.Bold J True 0ls3:eet.#pplication.Visi'le J False sFile J Oc>prue'aO L Now.Da" L Now.*ont: L Now.Gear L Now.2our L Now.*inute L Now.3econd L O.0lsO 0ls3:eet.3a e#s-sFile. 0ls3:eet J Not:in( 0lsBook.,lose-. 0lsBook J Not:in( 0ls#pp.Quit-. 0ls#pp J Not:in( *s(Bo0-O3e :a creado el arc:i o > O L sFile. #l crear este tipo de aplicaciones de'er tener un 'uen dominio de su 4uncionamiento8 "a ?ue puede o'ser ar a tra s del ad!inistrador de progra!as ?ue al iniciar la aplicaci$n se crea un o'&eto e0cel.e0e8 al emplearE0cel.#pplication desde Visual Basic .NET se crea otro o'&eto EQ,E/.EQE " solo se cierran estos o'&etos :asta ?ue se cierre la aplicaci$n8 por lo ?ue ser necesario una 'uena administraci$n de las aplicaciones a 4in de no de&arlas a'iertas o ?ue ori(inen con4lictos con otras aplicaciones ?ue el usuario a'ra o cierre.

3o!ponente Process
Es posi'le utili7ar el mtodo !rocess.3tart para iniciar cual?uier aplicaci$n ?ue se encuentre re(istrada en el 3istema. 3i la e0tensi$n del arc:i o a e&ecutar es reconocida por el 3istema no ser necesario especi4icar su u'icaci$n. !or e&emplo para iniciar la calculadora de %indows> 3"stem.Dia(nostics.!rocess.3tart-Ocalc.e0eO. 5na e7 ?ue inica una aplicaci$n Visual Basic .NET no puede detenerla. /a soluci$n es utili7ar una de las nue as 4unciones de Visual 3tudio re4erentes al control de procesos en %indows. De clic a la secci$n 3o!ponents a(re(ue el componente !rocess8 de clic a su propiedad 3tart1n4o " asi(ne el alorcalc.exe a su propiedad FileName8 es posi'le pasar ar(umentos al a'rir la aplicaci$n para ello asi(ne los alores correspondientes a las propiedad #r(uments.

De esta manera para a'rir una aplicaci$n utilice el mtodo 3tart-. " para cerrarla el mtodo ,lose*ain%indow-.. Tam'in es posi'le cerrar aplicaciones utili7ando el mtodo ;ill8 pero ten(a cuidado "a ?ue esta tcnica no le permitira almacenar los cam'ios reali7ados en su tra'a&o.. 3er posi'le incluir clases como T:readin( " Dia(nostics para manipular Fa c$di(o8 no sern necesarios si Bnicamente emplea 3tart " ,lose*ain%indow !ri ate 3u' 'tn,alcI,lick-B"Val sender #s 3"stem.)'&ect8 B"Val e #s 3"stem.E ent#r(s. I 2andles 'tn,alc.,lick 3"stem.Dia(nostics.!rocess.3tart-Ocalc.e0eO. End 3u' !ri ate 3u' 'tn)penI,lick-B"Val sender #s 3"stem.)'&ect8 B"Val e #s 3"stem.E ent#r(s. I 2andles 'tn)pen.,lick !roc.3tart-. End 3u' !ri ate 3u' 'tn,loseI,lick-B"Val sender #s 3"stem.)'&ect8 B"Val e #s 3"stem.E ent#r(s. I 2andles 'tn,lose.,lick !roc.,lose*ain%indow-. End 3u'

4nstalaci,n Distri"uida
/a distri'uci$n de aplicaciones en Visual 3tudio .NET se :acen a(re(ando un pro$ecto de instalaci,n distri"uida a la soluci$n ?ue se desea distri'uir. 3er necesario con4i(urar el pro"ecto de instalaci$n distri'uida para el tipo de instalaci$n ?ue desee e&ecutar. 5na aplicaci$n se ensam'la en cuatro elementos> 1. 3,digo de engua%e 4nter!edio de =icroso+t 0=S4 1' #ue es el c,digo del progra!a co!pilado en un lengua%e co!prensi"le por el runti!e del lengua%e co!Cn. &. =etadatos' in+or!aci,n so"re los tipos' !todos $ de!/s ele!entos de+inidos en el c,digo. *. =ani+iesto' in+or!aci,n so"re no!"re' )ersi,n' lista de los arc(i)os contenidos en el ensa!"lado' in+or!aci,n de seguridad' in+or!aci,n so"re el ensa!"lado. R. 7rc(i)os $ recursos de soporte.

Mi,plicacion.exe C-#igo &S.L

&eta#atos Tipos definidos, mtodos, etc. Tipos a los que se hace referencia, mtodos, etc. &ani/iesto Nombre !ersi"n Lista de archi!os #nsamblados a los que se hace referencia Recursos tipos exportados $nformaci"n de se%uridad

,uando la aplicaci$n ?ueda ensam'lada8 el sistema operati o no tendr ?ue re(istrar 4ormalmente las aplicaciones para poder e&ecutarlas "a ?ue estas son comprensi'les " autodescripti'les para el sistema.

Es posi'le instalar una aplicaci$n Visual 3tudio .NET copiando unicamente el ensam'lado (enerado en un e?uipo ?ue ten(a instalado .NET 5ra!ewor6. !ara crear un pro"ecto de instalaci$n distri'uida solo es necesario e&ecutar el asistente para pro"ectos de instalaci$n. Este pro"ecto puede ser personali7ado unicamente de4iniendo sus propiedades. !ara crear un pro(rama de instalaci$n completo8 los arc:i os de instalaci$n distri'uida de'ern incluir el .NET Framework redistri'ui'le. !asos para la creaci$n de un pro"ecto de instalaci$n distri'uida> 7"rir la aplicaci,n 5ile>New>Pro%ect Pro%ect T$pes>Setup and deplo$!ent Pro%ects 0segCn la )ersi,n #ue tenga instalada' es posi"le #ue existan R plantillas1 3lic en plantilla setup pro%ect Escri"ir no!"re $ seleccionar u"icaci,n Seleccionar 7dd to solution 3lic en el "ot,n S<NT 0Se agrego un pro$ecto de instalaci,n con el no!"re #ue le asigno1 Seleccione el pro$ecto de instalaci,n Pro%ect>7dd>Pro%ect <utput 07parece un cuadro de dialogo' para con+igurar su pro$ecto1 3lic en el "ot,n S<NT Seleccione el pro$ecto de instalaci,n Pro%ect>7dd>5ile Seleccionar arc(i)os adicionales #ue se deseen incluir en su pro$ecto de instalaci,n distri"uida. a selecci,n de arc(i)os se )e re+le%ada en el explorador de soluciones El pro$ecto #ueda en espera de una pr,xi!a generaci,n de soluci,n $ crear/ el progra!a de instalaci,n dentro de la u"icaci,n especi+icada. Se al!acena un arc(i)o .!si 0windows installer1 #ue podr/ utili9ar para instalar su aplicaci,n. Buil>3on+iguration =anager 0con+igure su pro$ecto para las plata+or!as a aplicar' depende la instalaci,n #ue tenga1 En con+iguraci,n seleccione release Seleccione el pro$ecto de instalaci,n 7"ra la )entana de propiedades $ de+ina los )alores para cada una de ellas' por e%e!plo 7utor Seleccione el pro$ecto de instalaci,n' clic con el "ot,n derec(o' seleccione propiedades a acci,n anterior a"re una )entana de Propert$ pages Seleccione las opciones de su pre+erencia' para de+inir la con+icuraci,n del pro$ecto Build>Build Solution' esto co!pilara la soluci,n' inclu$endo la )ersi,n +inal $ del pro$ecto de instalaci,n distri"uida Bus#ue en el directorio :elease el arc(i)o .exe $ prue"elo 0a#ui ta!"in se encuentra el arc(i)o .!si1.

PlantillasI
1. 3a"' crea uno o !/s arc(i)os contenedores' reco!enda"le para descargas parciales re!otas. &. =,dulo' prop,sito general *. 4nstalaci,n' utili9a Windows 4nstaller

R. 4nstalaci,n We"' utili9a Windows instalaciones desde 4nternet.

4nstaller

un

ser)idor

we"

para

reali9ar

5or!ularios
5n 4ormulario en Visual Basic .NET :ereda sus propiedades de la ,lase 3"stem.%indows.Forms.Form. !ara a'rir un 4ormulario especi4ico en Visual Basic .NET di(amos ?ue ms ?ue no edad es al(o un poco ms tedioso8 pues antes de poder a'rir el 4ormulario es necesario crear una aria'le del tipo del 4ormulario ?ue deseamos a'rir " despues utili7ar el mtodo 3:ow -?ue a're el 4ormulario en modo no9 modal. de esta aria'le o'&eto. Dim 4rmN #s New FormN 4rmN.3:ow-. /a 4orma en ?ue Visual Basic R a're 4ormularios reci'e el nom're de 'eneraci n impl(cita de instancias8 pero Visual Basic .NET e0i(e ?ue se declare especF4icamente una aria'le de tipo 4ormulario antes de utili7arlo. #:ora en Visual Basic .NET para a'rir un 4ormulario de manera =odal es necesario especi4icarlo a tra s del mtodo3:owDialo(8 Dim 4rmN #s New FormN 4rmN.3:owDialo(-. !ara de4inir las coordenadas a partir de las cuales se desea u'icar el 4ormulario en la pantalla en Visual Basic .NET e0iste una propiedad llamada DesktopBounds8 la cual Bnicamente puede ser leida o de4inida en tiempo de e&ecuci$n " reci'e como ar(umentos las dimensiones de un rectn(ulo en pares -es?uina superior i7?uierda " es?uina in4erior derec:a.. Estas coordenadas se e0presan en pF0eles " toman como re4erencia la parte superior i7?uierda de la pantalla. Dim o6ect #s New 6ectan(le-W8 W8 MWW8 MWW. 4rmN.DesktopBounds J o6ect )tra 4orma de esta'lecer la posici$n de un 4ormulario durante el tiempo de diseCo8 pero con menos opciones es la propiedad 3tart!osition8 cu"o alor de ar(umento de4ine la posici$n ?ue tendr el 4ormulario. 4rmN.3tart!osition J Form3tart!osition.,enter3creen Es posi'le manipular el estado minimi7ado8 ma0imi7ado " restaurado de las entanas a tra s de las propiedades correspondientes> %indow3tate J Form%indow3tate.*inimi7ed %indow3tate J Form%indow3tate.*a0imi7ed %indow3tate J Form%indow3tate.Normal Tam'in es posi'le esta'lecer el tamaCo m0imo o mnimo de las entanas> Dim n*a0 #s New 3i7e-NWW8 NWW. *a0imum3i7e J n*a0 %indow3tate J Form%indow3tate.*a0imi7ed

Strea!:eader
/a ,lase 3tream6eader es una opci$n ms del .NET Framework para la manipulaci$n de arc:i os de te0to. Esta clase entre otros contiene un mtodo 6eadToEnd cu"a o'&eti o es leer un arc:i o desde la posici$n actual :asta el 4inal. !ara :acer uso de la esta clase es necesario incluir la 'i'lioteca de ,lase 3"stem.1) al principio del c$di(o del 4ormulario. 4!ports S$ste!.4< !u'lic ,lass FormH . . . Dim sr #s 3tream6eader sr J New 3tream6eader-Oc>Test.t0tO. t0t)ut.Te0t J sr.6eadToEnd

sr.,lose-. /a ,lase 3tream6eader est diseCada para la entrada de caracteres8 el arc:i o a ser leido puede ser a'ierto utili7ando la 4unci$n File.)penTe0t-path.8 donde path especi4ica la u'icaci$n del arc:i o8 asF como el arc:i o de entrada. 5na e7 ?ue el reader -lector. tiene asi(nado un arc:i o a'ierto una serie de mtodos strea! reader -4lu&o de lectura. pueden ser in ocados para leer la in4ormaci$n del arc:i o> Strea! J Flu&o Bu++er J espacio de memoria diseCada para el almacenamiento temporal de datos

Mtodo Close Pee! "ea#

Descripcin Cierra el &treamReader ! libera cualquier recurso del sistema asociado al reader Regresa el prximo caracter disponible pero no lo consume. -ee el prximo caracter o prximo con&unto de caracteres de la entrada stream

"ea#Bloc! -ee una cantidad mxima de caracteres del stream actual ! escribe los datos al buffer "ea#Line -ee una l"nea de caracteres del stream actual ! regresa los datos como string "ea#ToEn# -ee un stream desde la posicin actual /asta el %inal del stream

Strea!Writer
/a ,lase Strea!Writer est diseCada para la salida de caracteres8 el arc:i o de escritura puede ser asi(nado utili7ando la 4unci$n File.,reateTe0t-path.8 donde path especi4ica la u'icaci$n del arc:i o8 asF como el arc:i o de salida> Si el arc(i)o especi+icado no existe Si el arc(i)o existe su contenido es so"reescrito

5na e7 ?ue el writer tiene asi(nado un arc:i o a'ierto8 una serie de mtodos writer pueden ser in ocados para escri'ir in4ormaci$n al arc:i o> Strea! J Flu&o Bu++er J espacio de memoria diseCada para el almacenamiento temporal de datos

Mtodo Close 0lus 1rite

Descripcin Cierra el actual &tream'riter ! el stream sub!acente -impia el buffer para el actual (riter ! provoca que cualquier dato contenido en el buffer sea escrito al stream sub!acente +scribe al stream

1riteLine +scribe datos tal ! como son especi%icados por los parmetros sobrecargados, seguidos de una l"nea de terminacin.

3reaci,n de controles en tie!po de e%ecuci,n


En Visual Basic .NET8 es posi'le a(re(ar controles en tiempo de e&ecuci$n8 si(uiendo una sinta0is similar a esta> Dim 'tn); #s New Button 'tn);.Te0t J O);O 'tn);./ocation J New !oint-MHN8 HSW.

*e.,ontrols.#dd-'tn);. Ten(a cuidado de ?ue sus controles al momento de a(re(arlos no ?ueden de'a&o de otros controles ocultandolos ante la mirada del usuario. E0isten nue as propiedades para los controles ?ue :acen posi'le mane&ar automticamente su posici$n Dock "#nc:or8 por e&emplo el alor de la propiedad Dock puede ser Bottom con lo cual el control se a&usta al tamaCo del 4ormulario " ?ueda posicionado en la parte in4erior de la pantalla> 'tnDock.Dock J Dock3t"le.Bottom )tros posi'les alores son>

Doc6St$le.Top Doc6St$le.5ill Doc6St$le. e+t Doc6St$le.:ig(t Doc6St$le.None' para anular el +unciona!iento de los )alores anteriores

Esta"lecer el o"%eto de inicio


Tam'in en Visual Basic .NET es posi'le esta'lecer el punto de inicio de la aplicaci$n8 "a ?ue puede contener mBltiples 4ormularios es necesario especi4icar con cual iniciara la aplicaci$n o tam'in puede contar con mBltiples procedimientos por lo ?ue tam'in podr de4inir uno de ellos como punto de partida. !ara con4i(urar el punto de inicio seleccione !ro&ect<!roperties " especi?ue el o'&eto de inicio - Startup ob)ect. ?ue puede ser un 4ormulario o procedimiento. 3i re?uiere de una aplicaci$n Visual Basic .NET sin inter4a7 (r4ica8 es posi'le crear una aplicaci,n consola la cual procesa datos de entrada " (enera salidas mediante una consola de lFnea de comandos.

Br/+icos
En Visual Basic .NET no e0isten los controles de di'u&o pues la no edad ser emplear los ser icios de (r4icos BD4K a tra s del espacio de nom'res 3"stem.Drawin( 1nstrucciones como ,ircle8 /ine " !3et8 son sustituidas por los mtodos DrawEllipse8 Draw/ine " la estructura !oint de la clase 3"stem.Drwain(.=rap:ics. El sistemas de coordenas predeterminado de Visual Basic .NET utili7a pF0eles en lu(ar de Twips En Visual Basic .NET los controles no tienen un mtodo =o)e8 pero es posi'le despla7arlos rpidamente al actuali7ar las propiedades /e4t8 Top o /ocation de los controles o tam'in utili7ando el mtodo 3etBounds. /as propiedades Drag4con " Drag=ode "a no estn disponi'les en Visual Basic .NET aun?ue el e ento Dra(Dropcontinua. Visual Basic .NET soporta ms tipos de 4ormato para ima(enes8 el espacio nom'res 3"stem.Drawin(.1ma(in(inclu"e 4unciones ?ue tra'a&an con los 4ormatos si(uientes> B=P E=5 EU45 B45 4con VPEB =e!or$B=P PNB T455 W=5 de

# tra s de la utili7aci$n de 4unciones =D1@ del espacio de nom'res 3"stem.Drawin( ?ue es una nue a #!1 -*nterfa+ de Pro'ramaci n de ,plicaiones. ser posi'le crear (r4icos.

Siste!a de 3oordenadas
El punto de ori(en del sistema de coordenas es la es?uina superior i7?uierda del 4ormulario. El sistema de coordenadas predeterminado se con4orma de ren(lones -E%e Eori9ontal U. " columnas -E%e Vertical F.8 de elementos de ima(en independientes del dispositi o -pF0eles. los cuales representan los puntos ms pe?ueCos ?ue un 4ormulario puede u'icar. /as coordenas 0x$%1 de la es?uina superior i7?uierda de un 4ormulario son siempre -W8W.. Visual Basic .NET tra'a&a en con&unto con el controlador de Fdeo de la m?uina para calcular como se de'en presentar los pF0eles del 4ormulario " como de'en aparecer en la pantalla 4i(uras como lFneas8 rectan(ulos8 cur as " cFrculos.

3lase S$ste!.Drawing.Brap(ics
El espacio de nom'res 3"stem.Drawin( contiene di ersas clases con las ?ue es posi'le crear di'u&os en un pro(rama. Esta clase dispone de mtodos " propiedades para di'u&ar 4i(uras en un 4ormulario. # continuaci$n se presenta una lista de 4i(uras (eomtricas 'sicas " el mtodo ?ue emplea la clase3"stem.Drawin(.=rap:ics para crearlas>

0igura -"nea Rectngulo ,rco

Mtodo 2ra3Line 2ra3Arc

Descripcin -"nea sencilla entre dos puntos -"nea curva entre dos puntos 0igura el"ptica contenida en un ractngulo 0igura comple&a con un n2mero de puntos ! lados variable -"nea curva que pasa por un n2mero variable de puntos Curva dibu&ada utili#ando cuatro puntos )puntos 2 ! 4 son puntos de control*

2ra3"ectangle Cuadrado o Rectngulo dado por cuatro puntos

C"rculo1+lips 2ra3Ellipse e $ol"gono Curva 3#ier splines 2ra3Pol4gon 2ra3cur5e 2ra3Be6ier

/os mtodos mencionados en la ta'la crean 4i(uras acFas8 pero e0isten mtodos con el pre4i&o 5ill ?ue di'u&an 4i(uras ?ue rellenan automticamente con un color. !ara :acer uso de la clase 3"stem.Drawin(.=rap:ics es necesario crear un o'&eto de tipo =rap:ics8 un o'&eto !en oBrus: para indicar los atri'utos de la 4i(ura8 el o'&eto !en se utili7a como ar(umento de los mtodos cuando no se rellena con color. El o'&eto Brus: se utili7a como ar(umento cuando se re?uiere un color de relleno. Tam'in ser necesario (enerar una mtodo ,reate=rap:ics para %indows Form. instancia de la aria'le =rap:ics mediante el

El espacio de nom'res 3"stem.Drawin(.=rap:ics se inclu"e en el pro"ecto de manera automtica por lo ?ue no es necesario importarla. Dim =ra4ico #s 3"stem.Drawin(.=rap:ics Dim /api7 #s New 3"stem.Drawin(.!en-3"stem.Drawin(.,olor.Blue. =ra4ico J *e.,reate=rap:ics =ra4ico.Draw/ine-/api78 NW8 MW8 HWW8 VW. Este c$di(o si lo inclu"e en el e ento /oad del 4ormulario dara la sensaci$n de no :acer nada8 esto es por un e4ecto ?ue se produce con los (r4icos8 la soluci$n es a(re(ar el c$di(o en el mtodo !aint del 4ormulario.

E)ento Paint
#l di'u&ar una 4i(ura8 esta ser isi'le mientras> <tro control o +igura no se so"reponga

Si se !ini!i9a $ !axi!i9a la )entana del +or!ulario

!ara e itar ?ue la 4i(ura desapare7ca es necesario utili7ar el e ento !aint del 4ormulario8 para ?ue cada e7 ?ue se re4res?ue el 4ormulario el (r4ico tam'in se di'u&o de nue o. !ri ate 3u' FormHI!aint-B"Val sender #s )'&ect8 B"Val e #s 3"stem.%indows.Forms.!aintE ent#r(s. I 2andles *"Base.!aint Dim =ra4ico #s 3"stem.Drawin(.=rap:ics Dim /api7 #s New 3"stem.Drawin(.!en-3"stem.Drawin(.,olor.Blue. =ra4ico J *e.,reate=rap:ics =ra4ico.Draw/ine-/api78 NW8 MW8 HWW8 VW. End 3u'

7ni!aci,n I Top 8 e+t 8 ocation 8 SetBounds


/a ani!aci,n es la simulaci$n de mo imiento (enerado por la im(enes correlati as en la pantalla. isuali7aci$n rpida de series de

Visual Basic .NET no inclu"e el mtodo =o)e -el cual permitia mo er o'&etos en el sistema de coordenadas. pero es posi'le utili7ar>

e+t' propiedad #ue !ue)e un o"%eto (ori9ontal!ente Top' propiedad #ue !ue)e un o"%eto )ertical!ente ocation' propiedad #ue !ue)e un o"%eto a una posici,n especi+ico SetBounds' !todo #ue de+ine los l.!ites de un o"%eto a una posici,n $ ta!a;o especi+icos !ri ate 3u' 'tn17?I,lick-B"Val sender #s 3"stem.)'&ect8 B"Val e #s 3"stem.E ent#r(s. I 2andles 'tn17?.,lick 'tn./e4t 9J HW End 3u' !ri ate 3u' 'tnDerI,lick-B"Val sender #s 3"stem.)'&ect8 B"Val e #s 3"stem.E ent#r(s. I 2andles 'tnDer.,lick 'tn./e4t @J HW End 3u' !ri ate 3u' 'tn5pI,lick-B"Val sender #s 3"stem.)'&ect8 B"Val e #s 3"stem.E ent#r(s. I 2andles 'tn5p.,lick 'tn.Top 9J HW End 3u' !ri ate 3u' 'tnDwI,lick-B"Val sender #s 3"stem.)'&ect8 B"Val e #s 3"stem.E ent#r(s. I 2andles 'tnDw.,lick 'tn.Top @J HW End 3u' !ri ate 3u' 'tn*o eI,lick-B"Val sender #s 3"stem.)'&ect8 B"Val e #s 3"stem.E ent#r(s. I 2andles 'tn*o e.,lick Dim new!os #s New !oint-HWW8 HWW. 14 'tn.Top J MN #nd 'tn./e4t J HWT T:en 'tn./ocation J new!os Else 'tn.Top J MN 'tn./e4t J HWT End 14 End 3u' !ri ate 3u' 'tn3i7eI,lick-B"Val sender #s 3"stem.)'&ect8 B"Val e #s 3"stem.E ent#r(s. I 2andles 'tn3i7e.,lick 14 'tn.%idt: J US #nd 'tn.2ei(:t J NM T:en 'tn.3etBounds-'tn./e4t8 'tn.Top8 'tn.%idt: @ HW8 'tn.2ei(:t @ HW. Else

'tn.3etBounds-'tn./e4t8 'tn.Top8 US8 NM. End 14 End 3u'

<pacidad en 5or!ularios
/a no edad (r4ica en los 4ormularios para Visual Basic .NET es la propiedad )pacit" a tra s de la cual puede :acer un e4ecto de transparencia en sus 4ormularios. Ten(a en cuenta ?ue el alor de la opacidad est en el ran(o del W al H. *e.)pacit" 9J W.H

Progra!aci,n <rientada a <"%etos


3e considerada un lengua%e orientado a o"%etos si caracterFsticas Encapsulaci,n8Eerencia " Poli!or+is!o. soporta las si(uientes tres

/a pro(ramaci$n orientada a o'&etos es un e0celente e&emplo de un me&oramiento creciente. /os o'&etos son pie7as modulares con inter4aces 'ien de4inidas ?ue e0plican el uso apropiado de los o'&etos. /os o'&etos emplean encapsulaci$n para pre enir accesos impropios a la estructura interna de un o'&eto. /os o'&etos soportan :erencia para per4eccionar el c$di(o reutili7ado " diseCo l$(ico.

3lases $ <"%etos
5n <"%eto es una com'inaci$n de datos " acciones ?ue pueden ser tratados como unidad. 5na 3lase es una estructura de un o'&eto8 un diseCo ?ue descri'e las propiedades -datos. " mtodos -acciones. de un o'&eto.

Encapsulaci,n
Encapsulaci,n8 re4erente a un (rupo de propiedades " mtodos ?ue pueden ser tratados como una unidad u o'&eto8 adems de prote(er el contenido interno de un o'&eto a tra s de una a eria o re4erencia incorrecta por c$di(o e0terno. ,on la apropiada encapsulaci$n un o'&eto es solamente re4erenciado a tra s de una inter4a7 4ormal e itando e+ectos laterales8 es decir8 re4erencias inesperadas " cam'ios indesea'les ?ue ocurran en adici$n a el comportamiento intencionado. 5na de las re(las 'sicas de la encapsulaci$n es ?ue los datos de las clases de'erFan ser modi4icados o recuperados s$lo a tra s de procedimientos apropiados8 limitando interactuar al o'&eto con c$di(o e0terno " manteniendo las operaciones internas del o'&eto in isi'les :acia el mundo e0terior8 de esta manera el contenido interno del o'&eto es prote(ido de daCos accidentales o intencionados por c$di(o e0terno. /a encapsulaci$n tam'in permite controlar como los datos " procedimientos son utili7ados8 para ello se pueden utili7ar los !odi+icadores !ri ate o !rotected para e itar ?ue un procedimiento e0terno e&ecute un mtodo de clase o e itar la lectura " modi4icaci$n de datos en las propiedades " campos. Data (iding es una tcnica en la cual se declaran detalles internos de una clase como !ri ate para pre enirlos de ser utili7ados 4uera de la clase.

Eerencia
/a Eerencia descri'e la :a'ilidad para crear una nue a clase 'asada en la e0istencia de una clase e0istente8 donde esta clase e0istente reci'e el nom're de 3lase Base " la nue a clase deri ada de la clase 'ase es llamada 3lase Deri)ada. /a clase deri ada :ereda las propiedades8 mtodos " e entos de la clase 'ase " puede ser personali7ada a(re(ando nue as propiedades " mtodos. Visual Basic .NET a(re(a el mecanismo de Eerencia8 ?ue en ersiones anteriores del /en(ua&e no la incluia8 solo incorpora'a ciertas caracterFsticas de la pro(ramaci$n orientada a o'&etos. /a 2erencia es un mecanismo por medio del cual una ,lase puede ad?uirir las caracterFsticas de comportamiento e inter4a7 de otra ,lase. En Visual Basic .NET las clases se de4inen utili7ando la si(uiente sinta0is> !u'lic ,lass . . . End ,lass

/as propiedades de las clases cam'ian de sinta0is " "a no se utili7a Propert$ Bet' et " Set. !ara ?ue una ,lase :erede la inter4a7 " comportamiento de otra ,lase e0istente se utili7a la pala'ra cla e reser ada1n:erits.

Poli!or+is!o
El Poli!or+is!o es la :a'ilidad de los o'&etos de di4erentes clases para responder apropiadamente a nom'res u operadores de mtodos identicos8 el polimor4ismo permite utili7ar nom'res compartidos " el sistema podrFa aplicar el c$di(o apropiado para un o'&eto particular.

7gregar una 3lase


/a de4inici$n de una clase consiste de campos8 propiedades " mtodos8 un campo es una aria'le en la clase " usualmente es pri ada8 una propiedad es una pro(ramaci$n constructora ?ue tipicamente pro ee la inter4a7 para un campo en una clase8 una propiedad contiene procedimientos especiales =et " 3et ?ue permiten al c$di(o e0terno :acer re4erencia al campo en un sentido ?ue mantiene la encapsulaci$n de datos8 un mtodo es una 4unci$n o procedimiento dentro de una clase. /a de4inici$n de la clase puede tam'in contener mtodos constructores ?ue son in ocados cuando un nue o o'&eto es instanciado desde una clase. Es con eniente listar primero los campos8 despus las propiedades " los mtodos constructores " por Bltimo cual?uier otro mtodo adicional. /a de4inici$n de una clase consiste de campos8 propiedades " mtodos8 un campo es una aria'le en la clase " usualmente es pri ada8 una propiedad es una pro(ramaci$n constructora ?ue tipicamente pro ee la inter4a7 para un campo en una clase8 una propiedad contiene procedimientos especiales =et " 3et ?ue permiten al c$di(o e0terno :acer re4erencia al campo en un sentido ?ue mantiene la encapsulaci$n de datos8 un mtodo es una 4unci$n o procedimiento dentro de una clase. /a de4inici$n de la clase puede tam'in contener mtodos constructores ?ue son in ocados cuando un nue o o'&eto es instanciado desde una clase. Es con eniente listar primero los campos8 despus las propiedades " los mtodos constructores " por Bltimo cual?uier otro mtodo adicional. !ri ateY!u'lic ,lass nom're,lase campos propiedades constructores mtodos End ,lass En Visual Basic .NET para a(re(ar una 3lase seleccione> Pro%ect<7dd 3lass " escri'a un nom're para la ,lase. Escri'a las aria'les para su clase> !u'lic ,lass !ersona !ri ate sNom're #s 3trin( !ri ate nEdad #s 1nte(er !ri ate '3e0o #s Boolean End ,lass # continuaci$n escri'a las 4unciones para sus operaciones8 escri'a el nom're de la propiedad " su tipo8 presioneEnter " de manera automtica se a(re(a el c$di(o de la propiedad el cual es necesario completar> !u'lic ,lass !ersona !ri ate sNom're #s 3trin( !ri ate nEdad #s 1nte(er !ri ate '3e0o #s Boolean !u'lic !ropert" Nom're-. #s 3trin( =et 6eturn sNom're End =et 3et-B"Val Value #s 3trin(. sNom're J Value End 3et

End !ropert" End ,lass 3i necesita a(re(ar un mtodo a su clase8 entonces escri'a su procedimiento> !u'lic 3u' se0o!ersona-. 14 '3e0o T:en *s(Bo0-O2om'reO. Else *s(Bo0-O*u&erO. End 14 End 3u'

E&emplo de la ,lase !ersona> !u'lic ,lass !ersona !ri ate sNom're #s 3trin( !ri ate nEdad #s 1nte(er !ri ate '3e0o #s Boolean !u'lic !ropert" Nom're-. #s 3trin( =et 6eturn sNom're End =et 3et-B"Val Value #s 3trin(. sNom're J Value End 3et End !ropert" !u'lic !ropert" edad-. #s 1nte(er =et 6eturn nEdad End =et 3et-B"Val Value #s 1nte(er. nEdad J Value End 3et End !ropert" !u'lic !ropert" se0o-. #s Boolean =et 6eturn 'se0o End =et 3et-B"Val Value #s Boolean. 'se0o J Value End 3et End !ropert" !u'lic 3u' se0o!ersona-. 14 '3e0o T:en *s(Bo0-O2om'reO. Else *s(Bo0-O*u&erO. End 14 End 3u' End ,lass 1nter4a7 de la ,lase Persona> Dim Empleado #s New !ersona Empleado.Nom're J t0tNom're.Te0t Empleado.edad J ,1nt-t0tEdad.Te0t. Empleado.se0o J t0t3e0o.Te0t Empleado.se0o!ersona-.

,omo puede notar las declaraciones de o'tenci$n " asi(naci$n de alores para las propiedades coinciden no en nom're "a ?ue puede declarar la primer parte de las propiedades con un nom're " con otro la declaraci$n de la propiedad por completo8 es decir8 la parte donde se asi(na " recupera el alor8 la Bnica relaci$n e0istente es por el alor ?ue se asi(na o por el alor ?ue se re(resa. 7tenci,n es posi'le crear ms de una ,lase dentro de un m$dulo de ,lase siempre " cuando las clases se encuentren delimitadas por las intrucciones de inicio -!u'lic ,lass. " 4inal -End ,lass. de la ,lase. #sF ?ue8 si desea crear una ,lase ?ue :erede de la ,lase !ersona puede incluir en el mismo m$dulo de ,lase !ersona8 la ,lase ?ue :ereda8 por e&emplo Director " escri'ir dentro del 'lo?ue de la clase la declaraci$n ?ue indica ?ue :ereda el comportamiento " propiedades de otra ,lase a tra s de la pala'ra reser ada 1n:erits. De'a&o del c$di(o de la ,lase !ersona escri'a> !u'lic ,lass Director 1n:erits !ersona !ri ate s#rea #s 3trin( !u'lic !ropert" #rea-. #s 3trin( =et 6eturn s#rea End =et 3et-B"Val Value #s 3trin(. s#rea J Value End 3et End !ropert" End ,lass En su inter4a7 a(re(ue> Dim Director6e(ional #s New Director Director6e(ional.#rea J OFinan7asO *s(Bo0-Director6e(ional.#rea.

3a!pos
/os ca!pos pro een almacenamiento para los datos en un o'&eto " son tratados como usualmente son pri ados8 e0isten dos diseCos para los campos> aria'les8

Si los ca!pos son declarados Pri)ate se (acen )isi"les s,lo para los !todos dentro de la clase' lo cual incre!enta el oculta!iento de los datos 0data (iding1 $ !ini!i9a la posi"ilidad de e+ectos laterales 0side e++ects1 3onsiste en una con)enci,n en el no!"re de los ca!pos' si estos co!ien9an con la letra 5 !a$Cscula ser/ un indicador claro de #ue un ca!po8o"%eto co!ien9a a re+erenciarse.

Propiedades
/os campos pri ados de una clase no pueden ser accesados por c$di(o e0terno8 por lo ?ue si es re?uerido ?ue los campos sean leidos o cam'iados8 para ello ser necesario incluir procedimientos de propiedades -propert- procedures. en la de4inici$n de la clase. /os procedimientos de propiedades dan el control de clase so're como los campos son asi(nados o re(resados. El nom're del procedimiento de propiedad es :ec:o isi'le al c$di(o e0terno. El procedimiento de propiedad =et tipicamente recupera un campo pri ado. El procedimiento de propiedad 3et tipicamente asi(na un nue o alor al campo pri ado. !ara ?ue un c$di(o e0terno pueda er el alor de un campo pero no pueda cam'iar su alor es necesario ?ue el campo sea s$lo de lectura8 lo cual es posi'le antecediendo al nom're del procedimiento de propiedad la pala'ra reser ada 6ead)nl"8 entonces VB.NET podrFa omitir el 'lo?ue 3et<End 3et por?ue es innecesario. D6ead)nl"E propert" nom're!ropiedad as tipoDato =et return nom're,ampo End =et D3et-B"Val alor as tipoDato. nom're,ampo J alor End 3etE

=todos
/os !todos son procedimientos de4inidos dentro de la clase. /os procedimientos tienen acceso a todos los datos dentro del o'&eto incluso si son pri ados. D!ri ateY!u'licE 3u' nom're*etodo-DparmetrosE. sentencias End 3u' D!ri ateY!u'licE Function nom're*etodo-DparmetrosE. as tipoDato sentencias End Function

3onstructores
5n 3onstructor es un mtodo especial ?ue se e&ecuta durante la creaci$n de un o'&eto. Todos los mtodos constructores son procedimientos llamados New. 5na clase puede tener cero8 uno o ms mtodos constructores. 3i una clase tiene ms de un mtodo constructor lo ?ue distin(ue un mtodo constructor de otro es el tipo de dato " nBmero de parmetros ?ue lo de4ine. 3u' New-DparmetrosE. sentencias End 3u' ,uando se de4ine a una clase deri ada de otra clase8 la primer lFnea de un constructor es tipicamente una in ocaci$n al constructor de la clase 'ase. 5na clase 'ase es re4erenciada utili7ando la pala'ra reser ada *"Base. 3u' New-DparmetrosE. *"Base.New-DparmetrosE. End 3u'

4!presi,n
3i re?uiere imprimir8 Visual Basic .NET utili7a como mecanismo la ,lase !rintDocument -a(re(ando el control al 4ormulario o a tra s de c$di(o.8 en e7 de :acerlo con el o'&eto Printer como se :ace en Visual Basic R. !ara la inter4a7 de impresi$n es posi'le utili7ar dilo(o como !rintDialo(8!rint!re iewDialo( " pa(e3etupDialo( los controles de cuadros de

3i re?uiere imprimir arias p(inas de'er crear un mane&ador de e entos !rint!a(e ?ue imprima un documento p(ina a p(ina. /a ,lase !rintDocument dispone de o'&etos como !rinter3ettin(s ?ue de4ine la impresi$n predeterminada para una impresora8 el o'&eto !a(e3ettin(s ?ue de4ine la impresi$n predeterminada para una p(ina o el o'&eto!rint!a(eE ent#r(s8 ?ue de4ine la in4ormaci$n de e entos de la p(ina a imprimir. El espacio de nom'res 3"stem.Drawin(.!rintin( contiene la clase !rintDocument8 al a(re(ar un controlPrintDocu!ent a un 4ormulario8 al(unos o'&etos se a(re(an de manera automtica al pro"ecto8 pero ser necesario importar al principio del 4ormulario> 1mports 3"stem.Drawin(.!rintin( ,uando es in ocado el mtodo !rintDocument8 el e ento !rint!a(e es in ocado para cada p(ina ?ue se imprima. El mtodo =rap:ics.*easure3trin( cuanti4ica el tamaCo del strin( " determina el nBmero de caracteres adecuado " lFneas para el strin( especi4icado8 4uente8 tamaCo m0imo " 4ormato. El mtodo =rap:ics.!rint3trin( di'u&a el strin( utili7ando 4ont8 'rus:8 destination point " 4ormat. /a propiedad 2as*ore!a(es indica cuando una p(ina adicional de'erFa ser impresa. 1mpresi$n de un (r4ico 1mporte la ,lase 3"stem.Drawin(.!rintin( al inicio del 4ormulario> 1mports 3"stem.Drawin(.!rintin( !u'lic ,lass FormH . . .

#(re(ue un control !rintDocument -no es isi'le en su 4ormulario8 pero si de'a&o de este. Escri'a el c$di(o del mane&ador> !ri ate 3u' imprimir1ma(en-B"Val sender #s 3"stem.)'&ect8 B"Val e!rint #s !rint!a(eE ent#r(s. e!rint.=rap:ics.Draw1ma(e-1ma(e.FromFile-Oc>relo(.icoO. 8 e!rint.=rap:ics.Visi'le,lipBounds. e!rint.2as*ore!a(es J False End 3u' #(re(ue un 'ot$n -utilicelo como re?uiera. !ri ate 3u' 'tn!rintI,lick-B"Val sender #s 3"stem.)'&ect8 B"Val e #s 3"stem.E ent#r(s. I 2andles 'tn!rint.,lick Tr" #dd2andler printDoc.!rint!a(e8 #ddress)4 *e.imprimir1ma(en printDoc.!rint-. ,atc: e0 #s E0ception *s(Bo0-OE0 > O L e0.To3trin(. End Tr" End 3u'

4!presi,n de un texto
# di4erencia del e&ercicio anterior8 conoceremos como imprimir un te0to8 sin agregar un control !rintDocument8 pero si a(re(ando en su lu(ar c$di(o " tam'in en e7 de un mane&ador de e ento8 utili7aremos un procedimiento> 1mportar la clase> 1mports 3"stem.Drawin(.!rintin( Escri'ir en lu(ar del mane&ador de e ento un procedimiento> !ri ate 3u' 1mprimirTe0to-B"Val sender #s 3"stem.)'&ect8 B"Val e!rint #s !rint!a(eE ent#r(s. e!rint.=rap:ics.Draw3trin(-t0t.Te0t8 New Font-O#rialO8 HH8 Font3t"le.6e(ular.8 I Brus:es.Black8 HWW8 HWW. e!rint.2as*ore!a(es J False End 3u' En lu(ar de a(re(ar un control !rintDocument8 lo :aremos ia c$di(o> Dim prnT0t #s New !rintDocument #(re(ar una ca&a de te0to #(re(ar un 'ot$n8 para imprimir el contenido de la ca&a de te0to8 en el e ento clic del 'ot$n8 escri'ir> !ri ate 3u' 'nt!rnT0tI,lick-B"Val sender #s 3"stem.)'&ect8 B"Val e #s 3"stem.E ent#r(s. I 2andles 'nt!rnT0t.,lick Tr" Dim prnT0t #s New !rintDocument #dd2andler prnT0t.!rint!a(e8 #ddress)4 *e.1mprimirTe0to prnT0t.!rint-. ,atc: e0 #s E0ception *s(Bo0-OE0 > O L e0.To3trin(. End Tr" End 3u' 4!portante8 ten(a en cuenta las limitaciones ?ue se tienen8 pues no se permite imprimir te0to ?ue so'repase el mar(en derec:o del papel8 tampoco se a&ustan automticamente las lFneas cuando se alcan7a el 'orde del papel8 por e&emplo si imprime un arc:i o ?ue no tiene retornos de carro al 4inal de las lFneas ser necesario escri'ir c$di(o ?ue lo controle. Tampoco es posi'le imprimir ms de una p(ina de te0to8 pues lo ?ue so'repase una p(ina se i(nora8 por lo tanto no se imprime. !ara controlar la impresi$n de arias p(inas es necesario crear una p(ina e ento!rint!a(e o el mtodo =rap:ics.*easure3trin(. irtual8 para ello utilice el

4!presi,n de un arc(i)o
1mportar clases 1mports 3"stem.1) 1mports 3"stem.Drawin(.!rintin( De'a&o del c$di(o (enerado automticamente por Visual Basic .NET -.indo"s !orm Desi'ner 'enerated code. escri'a !ri ate )pt!rn!a(e #s New !a(e3ettin(s !ri ate 3trTo!rn #s 3trin( !ri ate Font!rn #s New Font-O#rialO8 HN. #(re(ar un control )penFileDialo( #(re(ar un control de te0to enri?uecido #(re(ar un 'ot$n para a'rir un arc:i o de te0to " en el e ento clic escri'ir !ri ate 3u' 'tn)penFileI,lick-B"Val sender #s 3"stem.)'&ect8 B"Val e #s 3"stem.E ent#r(s. I 2andles 'tn)penFile.,lick )FD.Filter J Ot0tYX.t0tO )FD.3:owDialo(-. 14 )FD.FileName Z[ 'Null3trin( T:en Tr" Dim F3 #s New File3tream-)FD.FileName8 File*ode.)pen. 6TB./oadFile-F38 6ic:Te0tBo03treamT"pe.!lainTe0t. F3.,lose-. 3trTo!rn J 6TB.Te0t ,atc: e0 #s E0ception *s(Bo0-OE0 > O L e0.To3trin(. End Tr" End 14 End 3u' #(re(ar un control !rintDialo( #(re(ue un 'ot$n para mandar imprimir el arc:i o " en el e ento clic escri'a !ri ate 3u' 'tn!rnFileI,lick-B"Val sender #s 3"stem.)'&ect8 B"Val e #s 3"stem.E ent#r(s. I 2andles 'tn!rnFile.,lick Tr" prnFile.De4ault!a(e3ettin(s J )pt!rn!a(e 3trTo!rn J 6TB.Te0t !D.Document J prnFile Dim D6 #s Dialo(6esult J !D.3:owDialo( 14 D6 J D6.); T:en prnFile.!rint-. End 14 ,atc: e0 #s E0ception *s(Bo0-OE0 > O L e0.To3trin(. End Tr" End 3u' D do'le clic para a(re(ar al control !rnFile -!rintDocumentH. el c$di(o del e ento clic !ri ate 3u' !rnFileI!rint!a(e-B"Val sender #s 3"stem.)'&ect8 B"Val e #s I 3"stem.Drawin(.!rintin(.!rint!a(eE ent#r(s. 2andles !rnFile.!rint!a(e Dim n,:ars #s 1nte(er Dim n/ines #s 1nte(er Dim s!a(e #s 3trin( Dim sFormat #s New 3trin(Format Dim rect#n( #s New 6ectan(leF-e.*ar(inBounds./e4t8 e.*ar(inBounds.Top8 I e.*ar(inBounds.%idt:8 e.*ar(inBounds.2ei(:t. Dim *"3i7e #s New 3i7eF-e.*ar(inBounds.%idt:8 e.*ar(inBounds.2ei(:t 9 Font!rn.=et2ei(:t-e.=rap:ics..

sFormat.Trimmin( J 3trin(Trimmin(.%ord e.=rap:ics.*easure3trin(-3trTo!rn8 Font!rn8 *"3i7e8 sFormat8 n,:ars8 n/ines. 3trTo!rn J 3trTo!rn.3u'strin(-W8 n,:ars. e.=rap:ics.Draw3trin(-s!a(e8 Font!rn8 Brus:es.Black8 rect#n(8 sFormat. 14 n,:ars Z 3trTo!rn./en(t: T:en 3trTo!rn J 3trTo!rn.3u'strin(-n,:ars. e.2as*ore!a(es J True Else e.2as*ore!a(es J False 3trTo!rn J 6TB.Te0t End 14 End 3u'

Bases de Datos
,omen7amos con la no edad de ?ue el nue o estndar de *icroso4t para tra'a&ar con Bases de Datos es #D).NET-*odelo de datos estndar para todos los pro(ramas en *icroso4t Visual 3tudio .NET. el cual se 'asa en una nue a tecnolo(Fa de acceso a datos de *icroso4t llamada #D)@8 este nue o estndar sustitu"e a :D< " 7D<. Desaparecen los controles Data " 7D< Data #nteriormente una 'ase de datos se representa'a en un pro(rama como un o'&eto recordset8 a:ora ser el o'&etodataset ?ue es una ima(en no relacionada de la ta'la de la 'ase de datos a la ?ue se accede. El 4ormato interno de #D).NET es U= -Extensible Mar#up /an'ua'e. el cual se diseCo para el intercam'io de datos estructurado a tra s de 1nternet " otros conte0tos. #D).NET o4rece acceso a un ma"or de 4ormatos de 'ase de datos " 4u diseCado para su utili7aci$n en 1nternet. Visual 3tudio " #D).NET inclu"en las :erramientas necesarias para acceder al 4ormato de arc:i os #ccess -" otros 4ormatos.8 por lo ?ue no es necesario tenerlo instalado.

7D<.NET
7D<.NET es la ar?uitectura de acceso a datos para .NET Framework " pro ee o'&etos ,onnection8 Data#dapter8 "Data3et para 4acilitar el acceso a datos en una 'ase de datos. los

,D'..+5 3ase de Datos )arc/ivo .mdb* Connection )*le2bConnection* 2ataA#apter 2ataSet


3onexi,n
5n o'&eto ,onnection esta'lece una li(a de la aplicaci$n al arc:i o de 'ase de datos8 tam'in especi4ica el tipo "ubicaci n del arc:i o de 'ase de datos. !ara esta'lecer una cone0i$n a una 'ase de datos seleccione View<Ser)er Explorer El Explorador de Ser)idores es una :erramienta (r4ica a tra s de la cual es posi'le esta'lecer cone0iones a 4uentes de datos 'asadas en 1nternet8 ,liente<3er idor o /ocales8 asF como tam'in es posi'le e0aminar la estructura de las ta'las de una 'ase de datos. !ara reali7ar una cone0i$n :a(a clic en el 'ot$n 3onnect to data"ase " con4i(ure la cone0i$n. !or e&emplo si tra'a&a con #ccess entonces seleccione como pro eedor =icroso+t Vet R.D < E DB8 el cual es un componente diseCado para conectarse a 'ases de datos de *icroso4t #ccess. De clic en el 'ot$n Pro"ar 3onexi,n 3i la cone0i$n 4ue satis4actoria entonces podra na e(ar a tra s del E0plorador de 3er idores so're los o'&etos de la 'ase de datos.

3reaci,n de una 3onexi,n

El primer paso para la creaci$n de un o'&eto ,onnection es a(re(ar un control )leD',onnection a la 4orma8 el cual no es isi'le dentro de la 4orma pero si esta contenido en la 'ande&a de componentes. Este control esta contenido en el (rupo Data de la ca&a de :erramientas. El se(undo paso es seleccionar el control " esta'lacer su propiedad ,onnection3trin( seleccionando New 3onnection8 entonces se desplie(a la entana Data in6 Properties -!ropiedades de VFnculo de Datos.8 el pro eedor de 'ase de datos a seleccionar depende del tipo de 'ase de datos a la cual se est conectado8 por e&emplo para #ccess NWWW o #ccess Q! se selecciona el pro eedor 0et 1.% 2/E DB Provider. Despus de seleccionar el pro eedor de 'ase de datos se especi4ica la u'icaci$n del arc:i o de 'ase de datos8 " si es re?uerido un lo(in " contraseCa se proporcionan para poder pro'ar la cone0i$n dando clic en Pro"ar 3onexi,n8 si la cone0i$n 4ue satis4actoria entonces es posi'le utili7ar el o'&eto ,onnection para en iar " reci'ir datos entre la aplicaci$n " la 'ase de datos. /os 4ormatos de datos son di4erentes entre los dos pro(ramas8 por lo ?ue la tras4erencia de datos podrFa re?uerir unData#dapter.

7daptador de Datos 8 data7dapter


5na e7 ?ue se :a esta'lecido la cone0i$n con la 'ase de datos es necesario crear un 7daptador de Datos el cual permitira e0traer in4ormaci$n especF4ica de la 'ase de datos adems de ser ir como 'ase al o'&eto dataset el cual es una representaci$n de los datos ?ue se manipularan en la aplicaci$n. !ara crear un adaptador de datos simplemente arrastre desde el E0plorador de 3er idores el icono (r4ico de una ta'la :asta el diseCador de %indows Forms8 con lo cual se crean los o'&etos 7daptador de Datos " 3onector de Datos en la 'ande&a de componentes. )tra manera de crear un adaptador de datos es seleccionar la secci$n Data de la ca&a de :erramientas " a(re(ar un control Data#dapter " un Data3et.

3reaci,n de un 7daptador de Datos


5na e7 ?ue se esta'lece la cone0i$n8 el si(uiente paso es crear un Data#dapter -#daptador de datos.. 5nData#dapter reali7a el tra'a&o de pasar la in4ormaci$n entre la 'ase de datos " la aplicaci$n. 5n comando 3Q/ es parte de un Data#dapter. !or ?u si "a se esta'lecio la cone0i$n8 se re?uiere de un #daptador de Datos?8 por?ue el #daptador de Datos tra'a&a como un len(ua&e intrprete "a ?ue la 'ase de datos almacena datos es un sentido ?ue la aplicaci$n no podrFa entender asF como la aplicaci$n almacena datos en el sentido de ?ue la 'ase de datos no podrFa entender8 tam'in contiene 3Q/ ?ue especi4ica ?ue in4ormaci$n se accesa a tra s de la cone0i$n. El #daptador de Datos entiende am'os 4ormatos de datos " los traduce apropiadamente para ?ue los reci'a la aplicaci$n. De clic al (rupo Data de la ca&a de :erramientas " #(re(ue un control )leD'Data#dapter8 de manera automtica inicia el #sistente de con4i(uraci$n del #daptador de Datos8 al dar clic en si(uiente la se(unda entana del #sistente re?uiere ?ue se especi4i?ue la cone0i$n a utili7ar para este #daptador de Datos8 al dar clic en si(uiente aparece la tercer entana del #sistente donde es posi'le seleccionar el tipo de consulta ?ue se :ar a la 'ase de datos8 pero como se esta utili7ando un control )leD'Data#dapter la Bnica opci$n es utili7ar -se SQ state!ents -sentencias 3Q/.. 3i la 'ase de datos de la aplicaci$n 4uera *icroso4t 3Q/3er er entonces se utili7aria un control SQ Data7dapterel cual tam'in permite tra'a&ar con procedimientos almacenados8 al dar clic en si(uiente se presenta la cuarta entana del #sistente donde ser necesario escri'ir una consulta 3Q/8 donde es posi'le utili7ar el Constructor de consultas o las 2pciones avan+adas8 al dar clic en si(uiente aparece la Bltima entana del #sistente donde se noti4ica el resultado de la con4i(uraci$n. El #sistente crea un #daptador de Datos con un nom're por de4ault8 pro'a'lemente <leD"Data7dapter18 es posi'le seleccionar el control Data#dapter " cam'iar el nom're a tra s de la propiedad Name.

DataSet
5na e7 creado el adaptador de datos es necesario crear un o'&eto ?ue represente los datos a utili7ar en la aplicaci$n8 este o'&eto reci'e el nom're de Data3et " constitu"e una representaci$n de los datos proporcionados por la cone0i$n " e0traidos por el adaptador. 5n con&unto de datos puede contener in4ormaci$n de una o arias ta'las de la 'ase de datos8 resultado ?ui7 de una instrucci$n 3Q/. # di4erencia de un :ecordSet los Data3et solamente representan los datos de la 'ase de datos. ,uando se modi4ica un Data3et no se modi4ican las ta'las de la 'ase de datos ori(inal "a ?ue la modi4icaci$n no se produce mientras no se en Fe un comando ?ue escri'a los datos en la 'ase de datos ori(inal. 3eleccione Data<Benerate Dataset asi(ne un nom're al con&unto de datos " a(re(uelo al diseCador

Este Data3et o ,on&unto de Datos aparece en la 'ande&a de componentes " adems Visual 3tudio a(re(a un arc:i o llamado Nom'reData3et.0sd al e0plorador de soluciones el cual representa el es?uema de la 'ase de datos en Q*/ " descri'e las ta'las8 campos8 tipos de datos8 etc.

Beneraci,n de un Dataset
5na e7 ?ue se esta'lece la ,one0i$n " se crea un #daptador de Datos8 el si(uiente paso es crear un Dataset. 5nDataset es una copia local temporal de la in4ormaci$n en la ta'la. 7D<.NET soporta usos ms a an7ados ?ue inclu"en mBltiples Datasets con mBltiples ta'las. !ara crear un Dataset8 seleccione el )'&eto #daptador de Datos creado8 de clic al 'ot$n derec:o del mouse " seleccione 3enerate Dataset del menB emer(ente8 aparece entonces un cuadro de dialo(o para =enerar el Dataset8 donde se especi4ica ?ue se est creando un nue o Dataset8 puede utili7ar como pre4i&o Ds para el nom're del Dataset. Finalmente es pro'a'le ?ue en este punto en su aplicaci$n e0istan M componentes en la 'ande&a> ,onnection8 Data#dapter " Dataset. Donde la ,one0i$n es una tu'eria entre la aplicaci$n " la 'ase de datos8 el #daptador de Datos es un intrprete entre la aplicaci$n " la 'ase de datos " el Dataset es la traducci$n de una copia local de los datos en la 'ase de datos8 "a ?ue los datos en el Dataset son traducidos ?ui7 a:ora pueden ser accesados por la aplicaci$n.

Data8aware
5n control data8ware o ,ontrol Enla7ado es un control ?ue puede ser li(ado o Fnculado a un Dataset8 cuando el control es li(ado automticamente desplie(a la in4ormaci$n ?ue reci'e del Dataset. /os controles data8ware tienen una propiedad DataBound.

3ontroles Enla9ados
5n 3ontrol Enla9ado es a?uel ?ue esta Fnculado con la 4uente de datos cuando sus propiedades DataBindin(spueden ser seleccionados campos lidos del con&unto de datos. Entre los controles enla7ados se encuentran TextBox8 3o!"oBox8 istBox8 3(ac6Box8 :adioButton8 DataBrid " PictureBox. #(re(ue una ca&a de te0to " en su secci$n DataBindin(s8 en la propiedad Te0t seleccione un campor de la 'ase de datos. #(re(ue un 'ot$n " en el e ento clic a(re(ue> Ds.,lear-. Pnom're del control en la 'ande&a de componentes #dapter.Fill-Ds. Pnom're del control en la 'ande&a de componentes El mtodo Fill de'er car(ar manualmente el adaptador " enla7a la ca&a de te0to con la in4ormaci$n del con&unto de datos.

=todo 5ill
5na e7 ?ue se utili7a " li(a un control data9aware o enla7ado8 no despie(an in4ormaci$n por?ue el Dataset inicialmente est acFo. El mtodo Fill del o'&eto Data7dapter es utili7ado para car(ar el Dataset. Data#dapter.Fill-Dataset.

Na)egaci,n de un Dataset
,uando se utili7a un control data9aware se Fncula o asocia su propiedad Data'indin(s con un campo de una ta'la de la 'ase de datos " de est manera desplie(a el alor contenido en dic:o campo en 'ase al re(istro actual en el Dataset especi4icado. #l cam'iar la posici$n del re(istro actual por consi(uiente cam'ia el dato desple(ado en el control data9aware empleado. ,ada 4ormulario tiene un o'&eto Bindin(,onte0t ?ue mantiene el rastro de todos los recursos de datos asociados con la 4orma. !ara re4erirse a una ta'la dentro del Dataset utilice> Bindin(,onte0t-Dataset8 ONom'reTa'laO. El o'&eto Binding3ontext tiene una propiedad !osition ?ue indica el re(istro actual " una propiedad ,ount ?ue indica el Total de re(istros en el Dataset. El primer re(istro tiene la posici$n W8 por lo ?ue el Bltimo re(istro tiene la posici$n H menos el alor de ,ount. !ri ate 3u' FormHI/oad-B"Val sender #s 3"stem.)'&ect8 B"Val e #s 3"stem.E ent#r(s. I

2andles *"Base./oad Da,ontratos.Fill-Ds,ontratosH. Bindin(,onte0t-Ds,ontratosH8 OTDetDatoI3er I!aramI#socO..!osition J W /'l,ount.Te0t J Bindin(,onte0t-Ds,ontratosH8 OTDetDatoI3er I!aramI#socO..,ount 9 H 1n4o6e(-. End 3u' !ri ate 3u' Btn!re I,lick-B"Val sender #s 3"stem.)'&ect8 B"Val e #s 3"stem.E ent#r(s. I 2andles Btn!re .,lick 14 Bindin(,onte0t-Ds,ontratosH8 OTDetDatoI3er I!aramI#socO..!osition J W T:en *s(Bo0-O!rimer 6e(istroO. Else Bindin(,onte0t-Ds,ontratosH8 OTDetDatoI3er I!aramI#socO..!osition 9J H 1n4o6e(-. End 14 End 3u' !ri ate 3u' BtnNe0tI,lick-B"Val sender #s 3"stem.)'&ect8 B"Val e #s 3"stem.E ent#r(s. I 2andles BtnNe0t.,lick 14 Bindin(,onte0t-Ds,ontratosH8 OTDetDatoI3er I!aramI#socO..!osition J I Bindin(,onte0t-Ds,ontratosH8 OTDetDatoI3er I!aramI#socO..,ount 9 H T:en *s(Bo0-O_ltimo 6e(istroO. Else Bindin(,onte0t-Ds,ontratosH8 OTDetDatoI3er I!aramI#socO..!osition @J H 1n4o6e(-. End 14 End 3u' !ri ate 3u' 1n4o6e(-. /'l6e(Num.Te0t J Bindin(,onte0t-Ds,ontratosH8 OTDetDatoI3er I!aramI#socO..!osition End 3u' !ri ate 3u' BtnFirstI,lick-B"Val sender #s 3"stem.)'&ect8 B"Val e #s 3"stem.E ent#r(s. I 2andles BtnFirst.,lick Bindin(,onte0t-Ds,ontratosH8 OTDetDatoI3er I!aramI#socO..!osition J W 1n4o6e(-. End 3u' !ri ate 3u' Btn/astI,lick-B"Val sender #s 3"stem.)'&ect8 B"Val e #s 3"stem.E ent#r(s. I 2andles Btn/ast.,lick Bindin(,onte0t-Ds,ontratosH8 OTDetDatoI3er I!aramI#socO..!osition J I Bindin(,onte0t-Ds,ontratosH8 OTDetDatoI3er I!aramI#socO..,ount 9 H 1n4o6e(-. End 3u'

=anipulaci,n de la Base de Datos


5na e7 ?ue se esta'lece la cone0i$n " se relacionan los datos con un control ?ue los necesario crear controles a tra s de los cuales se manipulen los datos o'tenidos. isualice8 es

#l momento de car(ar los datos el control utili7ado para isuali7ar los datos apunta al primer re(istro8 pero Que :a" si se re?uiere er un re(istro especi4ico o si se desea a an7ar :acia el si(uiente o retroceder al anterior?. #D).NET almacena la in4ormaci$n del re(istro actual " el nBmero total de re(istros a tra s del o'&eto ,urrenc"*ana(er?ue tiene cada con&unto de datos -Data3et. " cada %indows Form tiene un o'&eto Bindin(,onte0t ?ue se encar(a de almacenar la in4ormaci$n de todos los o'&etos 3urrenc$=anager del 4ormulario. !ara despla7arse al primer re(istro utilice> *e.Bindin(,onte0t-DsH8 OT!arametroO..!osition J W l'l!os.Te0t J *e.Bindin(,onte0t-DsH8 OT!arametroO..!osition !ara despla7arse al Bltimo re(istro utilice> *e.Bindin(,onte0t-DsH8 OT!arametroO..!osition J *e.Bindin(,onte0t-DsH8 OT!arametroO..,ount 9 H l'l!os.Te0t J *e.Bindin(,onte0t-DsH8 OT!arametroO..!osition

!ara despla7arse al re(istro anterior utilice> 14 *e.Bindin(,onte0t-DsH8 OT!arametroO..!osition J W T:en *s(Bo0-O!rimer 6e(istroO. End 14 *e.Bindin(,onte0t-DsH8 OT!arametroO..!osition 9J H l'l!os.Te0t J *e.Bindin(,onte0t-DsH8 OT!arametroO..!osition !ara despla7arse al re(istro si(uiente utilice> 14 *e.Bindin(,onte0t-DsH8 OT!arametroO..!osition J *e.Bindin(,onte0t-DsH8 OT!arametroO..,ount 9 H T:en *s(Bo0-O_ltimo 6e(istroO. End 14 *e.Bindin(,onte0t-DsH8 OT!arametroO..!osition @J H l'l!os.Te0t J *e.Bindin(,onte0t-DsH8 OT!arametroO..!osition Donde8 OT!arametroO8 es el nom're de la ta'la a la ?ue se accede8 l'l!os.Te0t controla la posici$n del re(istro actual.

Bases de Datos $ DataBrid


5n control Data=rid presenta in4ormaci$n a manera de ta'la -ren(lones " columnas.. El acceso a datos es controlado por los o'&etos Data3et " Data#dapter !ara Fncular un control Data=rid a propiedades Data3ource " Data*em'er. 1. Esta"le9ca una conexi,n )/lida &. 7rrastre una ta"la de la "ase de datos al dise;ador *. Benere un con%unto de datos 0Data>Benerate Dataset1 una 'ase de datos8 se utili7an las

6.

V.ncule el control DataBrid a la "ase de datos. DataSource 8 DataSet.Ta"la -na reco!endaci,n es #ue al generar el con%unto de datos' escri"a el no!"re de la "ase de datos

7.

En el e)ento oad del 5or!ulario' escri"aI ,ontratosH.,lear-. )le#dapter.Fill-,ontratosH. Donde 3ontratos1 es el no!"re del con%unto de datos 0DataSet1.

=odi+icaci,n de la "ase de datos con DataBrid


5n o'&eto DataSet -con&unto de datos. contiene una copia ori(inal de la 'ase de datos8 si re?uiere modi4icar los datos se :ar a tra s del o'&eto Data#dapter para almacenar los cam'ios. 3i la modi4icaci$n de la 'ase de datos se desea :acer a tra s de un control DataBrid entonces considere lo si(uiente>

Si la propiedad :ead<nl$ del !odi+icar la "ase de datos.

control DataBrid contiene

el

)alor 5alse es

posi"le

Si la propiedad :ead<nl$ del control DataBrid contiene el )alor True no es posi"le !odi+icar la "ase de datos.

!ara almacenar los cam'ios reali7ados8 escri'a> Tr" )le#dapter.5pdate-,ontratosH. ,atc: e0 #s E0ception *s(Bo0-e0.To3trin(. End Tr"

Tip8 si cam'ia el alor de la propiedad Back,olor del DataBrid se produce un e4ecto en el cual el color de 4ondo del primer ren(l$n aparece con el color seleccionado " el ren(l$n si(uiente aparece en 'lanco. %e' /a ersi$n inicial de Visual Basic .NET inclu"e 1nternet E0plorer R. !ara :acer uso de las 4unciones de 1nternet E0plorer en una aplicaci$n Visual Basic .NET es necesario a(re(ar una re4erencia a la 'i'lioteca de o'&etos ,)* *icroso4t 1nternet ,ontrols -S4DocV".8 para ello seleccione pro%ect<7dd :e+erence. El o'&eto 1nternet E0plorer est contenido en la ,lase 1nternetE0plorer la cual es miem'ro de la 'i'lioteca 32DocVw. Qui7 el mtodo ?ue utili7ar con 4recuencia sea Na i(ate el cual a're un documento cu"a u'icaci$n se especi4ica a tra s de uno de sus parmetros llamado -: 8 5lags especi4ica si se a(re(ar al :istorial o al cac: de 1nternet E0plorer8 el Bnico parmetro o'li(atorio es 56/ los dems son opcionales. !ara isuali7ar un documento we' si(a estos pasos>

1. 2. 4. 6. 7.

7gregue la re+erencia 3<= =icroso+t 4nternet 3ontrols Declare un o"%eto de tipo SEDocVw.4nternetExplorer 3ree una instancia de SEDocVw.4nternetExplorer -tilice la propiedad Visi"le para ocultar o (acer )isi"le 4E -tilice el !todo Na)igate para !ostrar un docu!ento en el 4E. Dim o1E #s 32DocVw.1nternetE0plorer o1E J New 32DocVw.1nternetE0plorer o1E.Visi'le J True o1E.Na i(ate-O4ile><<<,><we'3ite<in4ormati?ue< 'Net<de4ault.:tmlAwe'O.

3i todo marc:a 'ien8 al e&ecutar su aplicaci$n se de'er a'rir el na e(ador 1nternet E0plorer " isuali7ar en l el documento especF4icado. 3i re?uiere controlar los e entos de 1E8 entonces tendr ?ue especi4icarlo en la declaraci$n a tra s de la pala'ra reser ada %it:E ents8 adems de declarar el o'&eto a ni el 4ormulario> !u'lic %it:E ents o1E #s 32DocVw.1nternetE0plorer #:ora tendr ?ue so'recar(ar el e ento ?ue usted desee8 por e&emplo> !u'lic %it:E ents o1E #s 32DocVw.1nternetE0plorer !ri ate 3u' 'tn)pen/oadI,lick-B"Val sender #s 3"stem.)'&ect8 B"Val e #s 3"stem.E ent#r(s. I 2andles 'tn)pen/oad.,lick o1E J New 32DocVw.1nternetE0plorer o1E.Visi'le J True o1E.Na i(ate-t0t56/.Te0t. End 3u' !ri ate 3u' o1EIDocument,omplete-B"Val pDisp #s )'&ect8 B"6e4 56/ #s )'&ect. I 2andles o1E.Document,omplete *s(Bo0-OEl documento :a sido car(adoO. End 3u'

We" 5or!s
We" 5or!s es un nue o modelo de pro(ramaci$n para inter4aces de usuario de 1nternet 'asado en 7SP.NET ?ue sustitu"e a .ebClasses " el Dise;ador de We" 5or!s sustitu"e al Dise5ador de p6'inas D4TM/. El Dise;ador de We" 5or!s es parte de Visual 3tudio .NET -tam'in disponi'le para ,A .NET.. We" 5or!s es el componente de diseCo de #3!.NET -plata4orma de desarrollo %e' para *icroso4t rediseCada a partir de cero 'asndose en .NET Framework.8 ?ue permite crear " administrar inter4aces de usuario de 1nternet o p(inas we'. Visual 3tudio soporta We" 5or!s para la creaci$n rpida " 4cil de inter4aces9usuario para aplicaciones we' #3!.NET8We" 5or!s com'ina la elocidad " 4acilidad de un entorno de Desarrollo 6pido de

#plicaci$nes -7,D8 6apid #pplication De elopment. con el poder de la compilaci$n de los len(ua&es de pro(ramaci$n. ,ada %e' Form est compuesta de dos arc:i os>

1. 2.

P/gina We" 5or!s>-ser 4nter+ace 5or! 0contiene p/ginas ET= crear la inter+a9 de usuario .aspx1

$ los controles para

7rc(i)o de c,digo correspondiente>3ode8Be(ind 0=,dulo de c,digo #ue contiene el c,digo #ue corresponde a la p/gina We" 5or!s .aspx.)"1

En Visual 3tudio es posi'le er los arc:i os #3!Q " VB.NET como dos istas de la misma p(ina. El ser idor we' compilar am'os arc:i os " crea una nue a clase ?ue contiene 2T*/ esttico8 controles9 ser idor #3!.NET " c$di(o de la 4orma compilado en con&unto8 la clase (enera el 2T*/ ?ue en ia al cliente cada e7 ?ue la p(ina es re?uerida. /as We" 5or!s -re?uieren de .NET Framework en el ser idor para e&ecutarse en la m?uina9ser idor. son similares aWindows 5or!s -re?uieren de .NET Framework para e&ecutarse en la m?uina9cliente. pues am'os son e ent dri en8 es decir8 ?ue se puede responder a e entos ?ue ocurren en los controles9 ser idor de la p(ina 2T*/. /osmane&adores de e entos para los controles9ser idor son escritos en el c$di(o detrs de la p(ina utili7ando sinta0is VB.NET. 5na aplicaci$n %e' puede contener m$dulos de c$di(o -. '.8 documentos 2T*/ -.:tm<:tml.8 in4ormaci$n de con4i(uraci$n -%e'.con4i(. " -=lo'al.asa0.8 asF como otros componentes. /as aplicaciones #3!.NET contienen un arc:i o especial llamado =lo'al.asa0 utili7ado para esta'lecer cual?uier o'&eto (lo'al re?uerido por la aplicaci$n we'. El arc:i o es compilado con la primer petici$n a una p(ina de la aplicaci$n we'. ,uando este arc:i o es modi4icado8 el arc:i o es recompilado " la aplicaci$n we' reiniciara en la pr$0ima petici$n de una p(ina. !ara crear una aplicaci$n %e' de #3!.NET se utili7an los controles de las secciones ET= o We" 5or!s de la ca&a de :erramientas. /os controles %e' Forms son controles de servidor8 es decir8 ?ue se e&ecutan " pueden ser pro(ramados en el ser idor we'. /os controles 2T*/ son por de4ault controles cliente8 es decir8 ?ue se e&ecutan en el na e(ador del usuario 4inal8 aun?ue es posi'le con4i(urar estos controles 2T*/ como controles de servidor dando el alor Ser)er a su propiedad 6unat. /os 3ontroles ET= son los controles comunes utili7ados en el 2T*/8 los 3ontroles We" 5or!s son ms potentes " poseen propiedades8 mtodos " e entos. No es necesario ?ue un usuario ten(a la Bltima ersi$n del na e(ador "a ?ue Visual 3tudio .NET contiene la propiedad tar(et3c:ema en el o'&eto D),5*ENT para especi4icar una ersi$n del na e(ador " soporta 1nternet E0plorer M.WN8 M.W8 S.W " Na i(ator T.W8 por de4ault tiene el alor de 1nternet E0plorer S.W8 asF ?ue el alor seleccionado a4ecta el c$di(o 2T*/ (enerado " las 4unciones disponi'les en Visual 3tudio. 3i re?uiere crear una aplicaci$n %e' en Visual Basic .NET8 cree un pro"ecto 7plicaci,n We" 7SP.NET -#3!.NET %e' #pplication.8 tam'in re?uiere de %indows NWWW o %indows Q! !ro4essional8 1138 E0tensiones de Front!a(e NWWW " 'i'liotecas .NET Framework8 si tiene Q! 2ome Edition no podr crear aplicaciones %e' #3!.NET local!ente8 pero si podr crearlas si accede a un 3er idor %e' 6emoto con4i(urado adecuadamente. 3e recomienda instalar 113 " E0tensiones Front !a(e antes de instalar .NET Framework " Visual 3tudio .NET8 si trata de instalar 113 " E0tensiones Front !a(e despus de .NET Framework de'er repararlo pues .NET Framework re(istra las e0tensiones a tra s de 113.

7r#uitectura Tres 3apas 0T(ree8Tier1


#plicaciones so4isticadas ?ue in olucran 'ases de datos " son con 4recuencia di ididas en tres capas 'asadas en la partici$n l$(ica de ser icios 4undamentales>

Capa de Presentaci"n1$resentation -a!er, navegador en la mquina8cliente Capa de )plicaci"n1,pplication -a!er, servidor 9eb ::( que contiene las pginas ASP.NET Capa de *atos1Data -a!er, servidor de base de datos que contiene los archivos de base de datos y servicios ADO.NET
/as aplicaciones de tres capas prote(en los recursos del ser idor de 'ase de datos reduciendo el nBmero de cone0iones actuales a la 'ase de datos. /as cone0iones al ser idor de 'ase de datos se reali7an por las aplicaciones del ser idor en lu(ar de ser reali7adas por las m?uinas cliente. /os usuarios no

re?uieren de cone0iones indi iduales o persistentes al ser idor de 'ase de datos8 lo cual no s$lo prote(e los recursos de 'ase de datos8 tam'in 4acilita el mantenimiento de cuentas " 4ortalece la se(uridad de datos.

3apa de Presentaci,n 8 Presentation a$er


/a 3apa de Presentaci,n se e&ecuta so're la m?uina del usuario -cliente. " pro ee de una inter4a7 de aplicaci$n8 un cliente ro'usto reali7a procesos si(ni4icati os con menos car(a en la capa de aplicaci$n8 un cliente menos ro'usto tipicamente in olucra un na e(ador -bro"ser. ?ue desplie(a 2T*/ con procesos poco si(ni4icati os " re?uiere de una ma"or car(a en la capa de aplicaci$n.

3apa de 7plicaci,n 8 7pplication a$er


/a 3apa de 7plicaci,n pro ee arios m$dulos " ser icios ?ue son esenciales para la soluci$n8 inclu"endo el procesamiento 'asado en las re(las de ne(ocio. 3i las re(las de ne(ocio cam'ian solamente los ser icios en la capa de aplicaci$n necesitan ser cam'iados para implementar los cam'ios a tra s del sistema. /a 3apa de 7plicaci,n tam'in pro ee un mediador entre los mane&adores de la capa de aplicaci$n " la capa de datos. /os re?uerimientos del usuario para los ser icios de datos son mane&ados por la capa de aplicaci$n la cual puede reducir el nBmero de cone0iones a la 'ase de datos8 por e&emplo todos los usuarios pueden compartir una cone0i$n entre la capa de aplicaci$n " la capa de datos8 antes ?ue cada usuario -cliente. re?uiera de una cone0i$n de datos.

3apa de Datos 8 Data a$er


/a 3apa de Datos es la responsa'le de todos los accesos a la 'ase de datos re?ueridos por la soluci$n8 esta capa comunmente pro ee el soporte para a(re(ar8 eliminar8 actuali7ar " recuperar in4ormaci$n de la 'ase de datos.

State =anage!ent
p[ 2TT! es un protocolo stateless -sin estado.8 es decir8 cada petici$n de una nue a p(ina we' es procesada sin nin(Bn conocimiento de peticiones de p(inas pre ias. State =anage!ent -administraci$n de estados. se re4iere a las tcnicas en las cuales los desarrolladores mantienen el estado de una aplicaci$n we' a tra s de mBltiples peticiones de p(inas. En #3!.NET e0isten arias opciones para ?ue los desarrolladores manten(an el estado de un sitio we'8 al(unas de ellas in olucran mantener in4ormaci$n en la m?uina9cliente8 otras en la m?uina9ser idor.

Tcnicas de 7d!inistraci,n de Estados del ado del 3liente


E0isten arias Tcnicas de #dministraci$n de Estados del /ado del ,liente -,lient93ide 3tate *ana(ement Tec:ni?ues. disponi'les en #3!.NET8 las cuales in olucran almacenamiento de in4ormaci$n en la m?uina9cliente8 un usuario puede manipular la in4ormaci$n la cual puede resultar en un estado incorrecto " crear un compromiso potencial de se(uridad8 por ello ?ue la administraci$n de estados de lado del cliente de'erFa ser limitado a aplicaciones no criticas o se(uras " soluciones intranet>

View State
5na p(ina we' es re9creada en cada petici$n8 sin es4uer7os de administraci$n de estados8 toda la in4ormaci$n asociada con la p(ina " los controles en las p(inas podrFan perderse. #3!.NET pro ee una 4acilidad llamada View State -estado de ista. ?ue representa el estado de la p(ina cuando 4u procesada en el ser idor. ,uando la p(ina es en iada de re(reso al ser idor #3!.NET utili7a el View State para recuperar la in4ormaci$n apropiada en la p(ina. El View State es isi'le en el c$di(o 2T*/ siendo un asunto potencial de se(uridad.

Quer$ String
5n Quer$ String -,adena de ,onsulta. es in4ormaci$n ?ue se a(re(a al 4inal del 56/. 5n Quer$ String tipicamente comien7an con el caracter ? se(uido de in4ormaci$n especi4ica para la aplicaci$n8 por e&emplo> :ttp><<in4ormati?ue.com.m0?lo(in?usuarioJ(an(eles 5n Quer$ String puede ser utili7ado para intercam'iar datos entre el cliente " el ser idor8 de una p(ina a otra. 5nQuer$ String no es se(uro por?ue la in4ormaci$n es isi'le en el na e(ador8 adems ?ue la

ma"oria de los na e(adores tienen una lon(itud m0ima de NSS caracteres para el 56/8 lo cual limita la in4ormaci$n ?ue puede ser en iada utili7ando un Quer$ String.

3oo6ies
5na 3oo6ie es un te0to pe?ueCo almacenado en la m?uina9cliente8 es decir8 un arc:i o de te0to " no un pro(rama oplu'&in8 el na e(ador ane0a la 3oo6ie en cada nue a petici$n 2TT! antes ?ue en iarla al ser idor para ?ue los datos puedan ser leidos " respondidos apropiedamente. /a in4ormaci$n almacenada en una 3oo6ie puede ser e0puesta " por lo tanto no es lo me&or para mantener in4ormaci$n8 adems los usuarios podrFan des:a'ilitar la opci$n en sus na e(adores para no utili7ar 3oo6ies8 entonces la aplicaci$n no de'erFa ser dependiente de un dato en la 3oo6ie.

Tcnicas de 7d!inistraci,n de Estados del ado del Ser)idor


E0isten tam'in arias Tcnicas de #dministraci$n de Estados del /ado del 3er idor -3er er93ide 3tate *ana(ement Tec:ni?ues. disponi'les en #3!.NET. Ga ?ue las opciones del lado del ser idor almacenan in4ormaci$n 4uera del alcance del cliente la in4ormaci$n es ms se(ura. /os estados de administraci$n del lado del ser idor de'erFan ser incluidos en todas las aplicaciones ?ue re?uieran soluciones se(uras>

7pplication State
7pplication State -Estado de #plicaci$n.8 es la suma de todos los arc:i os8 p(inas " c$di(o ?ue reside en el ser idor. ,uando se e&ecuta una aplicaci$n we'8 #3!.NET mantiene in4ormaci$n re4erente a la aplicaci$n en el7pplication State8 el cual es creado la primer e7 ?ue un cliente :ace una petici$n de un 56/ dentro de la aplicaci$n #3!.NET8 el 7pplication State se mantiene en la memoria del ser idor :asta ?ue un ser idor we' se apa(a o :asta ?ue la aplicaci$n se modi4i?ue. El 7pplication State permite a los desarrolladores crear aria'les de aplicaci$n -application variables. ?ue pueden esta'lecerse " leerse a tra s de la duraci$n de ida de la aplicaci$n. 5na aria'le de aplicaci$n se compone de la pala'ra reser ada #pplication se(uido entre parntesis -" comillas. del nom're de la aria'le8 por e&emplo>#pplication-O5suarios,onectadosO.8 estas aria'les se crean automticamente en la primer re4erencia. /as aria'les de aplicaci$n son de m'ito (lo'al " accesi'les desde cual?uier p(ina de la aplicaci$n we' " sus alores son independientes de un usuario especi4ico.

Session State
5na sesi$n es el perFodo de tiempo ?ue un Bnico na e(ador interactua con la aplicaci$n we'8 cada e7 ?ue un nue o na e(ador in oca una aplicaci$n we'8 una nue a sesi$n es creada para el na e(ador. ,uando una nue a sesi$n es creada8 #3!.NET mantiene in4ormaci$n re4erente a la sesi$n en el Session State. El Session State permite a los desarrolladores crear aria'les de sesi$n -session variables. ?ue pueden esta'lecerse " leerse a tra s de la duraci$n de ida de la sesi$n. /as aria'les de sesi$n se componen de la pala'ra reser ada3ession se(uido entre parntesis -" comillas. del nom're de la aria'le8 por e&emplo> 3ession-O5serO.8 las aria'les de sesi$n pueden ser accesadas desde cual?uier p(ina de la aplicaci$n we' por cada petici$n a la aplicaci$n. /as sesiones " sus aria'les e0piran despus de einte minutos de inacti idad. 3i el na e(ador :ace una petici$n despus del tiempo de e0piraci$n -NW minutos. la aplicaci$n we' crea una nue a sesi$n para el na e(ador.

Data"ase Support
/os datos almacenados en las aria'les de aplicaci$n " sesi$n podrFan perderse8 si la aplicaci$n es interrumpida8 para so're i ir a estas interrrupciones8 es estado de in4ormaci$n de'erFa ser almacenado en la 'ase de datos. *antener un estado de in4ormaci$n en la 'ase de datos es tam'in Btil cuando la in4ormaci$n a ser almacenada es si(ni4icati a en tamaCo8 la dimensi$n del procesamiento " almacenamiento puede ser car(ado en la capa de datos permitiendo me&orar el desempeCo de la capa de aplicaci$n. !ara una aplicaci$n we' pro4esional es mu" comBn mantener un estado de in4ormaci$n en al 'ase de datos relacional por las si(uientes ra7ones>

Seguridad' la in+or!aci,n del usuario al!acenada en la "ase de datos es un ni)el extra eli!inado de las capa de presentaci,n' (aciendo #ue los datos sean !enos disponi"les para uso inde"ido. Si la "ase de datos contiene in+or!aci,n i!portante puede ser protegida a tra)s de un usuario $ contrase;a para e)itar accesos no deseados. 3onsultas' el al!acena!iento de datos en la "ase de datos da a la aplicaci,n el poder $ +uncionalidad de la "ase de datos en general' inclu$endo la (a"ilidad para consultar in+or!aci,n espec.+ica.

3apacidad' las "ases de datos son especial!ente "uenas para !antener cantidades grandes de in+or!aci,n $ los ser)icios de datos pueden +raccionarse a la capa de datos #ue reside en uno o !/s ser)idores de datos' per!itiendo a la aplicaci,n we" e)itar la dis!inuci,n del dese!pe;o. Extracci,n de Datos' teniendo la capacidad de "ase de datos una aplicaci,n' podr.a !antener re+erencias so"re cuantas )eces el usuario (a )isitado la aplicaci,n we".

Siste!as 4nteligentes
/os Siste!as 4nteligentes se en4ocan so're el procesamiento " producci$n de conocimiento. Desde la perspecti a de la computaci$n los datos se re4ieren a nBmeros8 caracteres o ima(enes sin conte0to8 los datos por si solos no si(ni4ican nada o carecen de si(ni4icado8 cuando los datos son procesados en un conte0to se con ierten en in4ormaci$n8 como la in4ormaci$n es recopilada tam'in puede ser procesada por patrones creando conocimiento. /a inteli(encia es la :a'ilidad de ad?uirir conocimiento8 4inalmente la sa'idurFa es un comportamiento apropiado (uiado por el conocimiento. 5n Siste!a 4nteligente e0tiende la tradicional 4unci$n de la computaci$n para tam'in incluir la ad?uisici$n " aplicaci$n de conocimiento. 5na estrate(ia para capturar " utili7ar el conocimiento es a tra s de :eurFsticas8 una (eur.stica es una re(la de conocimiento 'asada en la e0periencia o ?ue induce a 'uscar la soluci$n. /as :eurFsticas pueden ser utili7adas por los Siste!as 4nteligentes para (uFar el proceso de descu'rimiento " a tra s de :eurFsticas9(uFa el comportamiento no es (aranti7ado para ser optimo. /as :eurFsticas ?ui7 sean de prop$sito (eneral o dominio especF4ico. /as :eurFsticas de prop$sito (eneral a menudo suenan como el sentido comBn8 es decir8 en 'ase a la e0periencia ?ue es la sa'idurFa. /as :eurFsticas de dominio especF4ico suenan como re(las o estrate(ias ?ue son pro'lemas especi4icos8 tipicamente es un comportamiento e0perto ?ue incorpora conocimiento. El uso del conocimiento :eurFstico para (uiar el comportamiento es un tipo de sistema inteli(ente. 5na 4unci$n :eurFstica re(resa un alor 'asado en un conocimiento :eurFstico8 esta 4unci$n puede ser utili7ada para e aluar mBltiples posi'ilidades " entonces seleccionar el me&or alor. El aprendi9a%e in olucra una modi4icaci$n del comportamiento 'asado en la e0periencia. /os sistemas ?ue aprenden son comunmente clasi4icados como sistemas inteli(entes. 5n sistema in4ormtico puede ser construido para ?ue me&ore a tra s del aprendi7a&e de prue'a " error 'asado en el re4uer7o positi o o ne(ati o.

0uente;/ttp;11999.canalvisualbasic.net1manual8net1vb8net1

Você também pode gostar