Está en la página 1de 28
% Ri ; ears) eb wore Formularios Wan g N°1 DE =n ers Wea eee Rea “heed eed a PAU Mai bir MT ND a OHO HA ° aS UL aC Te USS p51) NOE sens i A Seguinos en: € redusers.com (srcscs-" g : www,youtube.com/redusersvideos. Weve Desarrollo de un explorador de archivos En esta practica aplicaremos los diferentes conocimientos obtenidos sobre las herramientas de programacién. A continuacién, iniciaremos el desarrollo de ‘una aplicacién para Windows, un explorador de archivos que nos permita inspeccionar los directorios y archivos de muestra PC, visuali- zat sus propicdades y permitir su cjecuciéa. ‘Trabajaremos con Visual Basic NET y, a la vez, en C#, El objetivo de esta seccion es poder aplicar en un caso concreto todo lo que hemos aprendido hasta ahora. Objetivo de desarrollo La finalidad de este proyecto es armar un explo- sador de archivos similar a Windows Explorer. Para hacerlo, es preciso saber qué elementos de- bemos mostrar y utilizar durante el desarrollo. ‘También tenemos que hacer un relevamiento acerca de qué funciones incorporar cn el programa para que éste sea efectivo. La apli- cacidn que crearemos mosttars los recursos denominados unidades en una computadora. as unidades contienen carpetas y archivos, y estén identificadas con una letra, para dife- rrenciarse entre si Czar funciones que petmitan optimizas el cédigo de la aplicacién, reutilizarlo y no tener necesidad de repetitlo, Armar un formulario contenedor de los componentes que visualizarin los recursos de la computadora. Petmitir miiltiples opciones para la visuali- zacién de los archivos y earpetas, de modo que el usuario pueda personalizar la aplica- cidn a su gusto y no tenga que adaprarse a un estindar impuesto por nosotros como progeamadores. Controlar cambios que ocurran en la computadora, los cuales pueden modifi- car 0 incorporar recursos, y hacer que éstos puedan visualizarse en auestea aplicacién. Estudiar In posibilidad de expandi el funcionamiento de nuestra aplicacién mediante sentencias y comandos que en- riquezcan el accionar de nuestro softwa- re, y permitan depurar y controlar erro~ res que puedan ocurrir en él. Es muy importante www: redasersprem lumsblogspetico + Analizar los objetives que queremos cubrir con nuestra aplicacion, + Analizar los eventos que deben ocurtir en nuestra aplicacién, que mostrarin conteni- dos de los recursos y realizarin operacio- ‘nes con ellos. acerca de qué funciones incorporar en el programa para que éste sea efectivo. Manos a la obra este cu Para comenzar, crearemos un proyecto nue- también par: de comparar vo del tipo Aplicacién para Windows, cuyo las diferencias entre ambos lengu nombre seri WinExplorer. Debemos « La interfaz de usuario se diseia en cual fen cuenta que este ejemplo sera realizado quiera de las dos hertamientas de desarrollo utilizando Visual Basic NET, pero en las pricticamente de la misma manera. Una ver, paginas y en cl sitio Web correspondiente a iniciado el proyecto, t Tabla 5 | Componentes de la aplicacién WinExplor aremos algunos 122 LA INTERFAZ DE USUARIO LA PODREMOS REALIZAR UTILIZANDO EL ENTORNO DE VISUAL BASIC . NET O C#; YA QUE AMBAS PERMITIRAN OBTENER EL MISMO RESULTADO FINAL. | cambios en las propiedades del formulario Form], que se crea automdticamente. A continuacién, agregamos a frmExplorer los meniis barras de herramientas que contendré la aplicacién. Estos controles se ubican en la caja de herramientas de la apli- cacién, dentro de la solapa Meniis y barras dc herramicntas. Se llaman ‘ToolStripContai ner (cuyo nombre cambiaremos por Tool- StripContainerCtl) y MeauStrip (su nombre seri MenuStripCt) Una vez que ubicamos ambos controles, va- mos a crear las opciones del memi. Como ve mos en pantalla, es sencillo: basta con ir ar mando la estructura del menti 2 medida que lo escribimos. Creamos los memtis y sus subme- iis asociados o, cambiaremos algunas propiedades. Esto puede observarse en la Fi- gura 023 y en la Tabla 6, 1s opciones del menti Ver nos permitirin cambiar la vista de los archivos tal como lo ha ce el Explorador de Windows al utlizar un FIGURA 022 | Seleceién del tipo de proyecto, Soe FIGURA 023 | Creacién del mend de fa aplicacion. eee Valor ion ee ia Wokxplorer Seleccionar uno a gusto © eargar el que viene adjunto al cédigo fuente en la Web de 123 124 Para proporcionar un acceso rapido a los comandos mas comunes, crearemos una barra de herramientas, utilizando el control denominado ToolStrip. control Listview. La propiedad Tag se usara como clave para unificar el cédigo. Para asignar imagenes a los elementos del me- nnd, conviene tecuttir a ellas como recursos en. la aplicacién, Esto nos permitiri manipular di- chas imagenes desde distintos lugares de la aplicacion, Para alma genes, desde la ventana Explorador de solucio. nes seleccionamos el icono de la barra de he rramientas denominado Propiedades; aparece Tabla 7 | M ar los recursos de imé- u de la aplicacién y bai tuna pestata de propiedades de la aplicacion, En la solapa Recursos agregamos las imige- nes necesarias utilizando la opeién Imagen/Agregar Recurso. ILuego indicamos el formato de imagen que queremos agregar (JPG, PNG, ICO, BMP, GIF). Al finalizar el procedimiento, se nos solicitard guardar el ar- chivo de recursos, que quedara junto al resto de los que componen nuestro proyecto. Para asignar las imigenes correspondientes a los elementos del ment, simplemente, desple- gamos el control MenuStrip, y en cada uno de los submentis que llevan imagenes, hace- mos un clic con el botdn derecho del mouse y seleccionamos Establecer imagen. Para proporcionar un acceso rapido a los eo- mandos mas comunes, vamos a crear una ba- rra de herramientas. Utiizamos un control de- nominado ToolStrip; lo ubicamos debajo del meni principal y agregamos los element mencionados en la seccién 1 de la Tabla Una vez finalizada la cteacién del ment de herramientas contextual, asignamos las imagenes correspon- dientes a los distintos item de la misma mane- ra en que lo hicimos con el control MenuStrip. “También necesitamos agregar a la aplicacién una barra de estado, que permitiri ver en cada momento la ruta completa del archivo selec- cionado o el path de la carpeta, si no existe un archivo scleccionado. Pata hacerlo, agregamos ‘un control denominado StarusSerip en la parte inferior del form y generamos un elemento Lla- mado LabelStatus, al que cambiaremos las si- guientes propiedades: + Name: ToolStripStarusIblDescripeion + Text: WinExplorer + Spring: True + TextAlign: MiddleLeft Con esto, tendremos lista la estructura de me- niis, batra de hertamientas y barra de estado. Directorios y archivos A continuacién, vamos a crear la interfaz en donde se verin los directorios, las unidades El control SplitContainer permite dividir la pantalla en dos paneles horizontales con la ventaja de poder redimensionar su ancho proporcionalmente en tiempo de ejecucién. de disco y los archivos en forma jerarquica. Pata hacerlo, necesitamos una estructura de 4rbol para directorios y unidades de disco; el control adecuado en este caso es TreeView. ‘También precisamos agregar una lista para ver los archivos que hay en los directorios, que permita cambiar su forma de visualiza- cién. El control SplitContainer nos permiti- 4 dividir la pantalla en dos paneles verticales y ubicar los controles en 4, con la FIGURA 024 | Interfax final de menis, barra de herramientas y barra de estado. wy Be Mensbipct Tooltip Le SttastipC FIGURAS 025 | Interfaz visual de WinExplorer casi termina ventaja de poder redimensionar su ancho proporcionalmente en tiempo de cjecucién. Entonces, como primer paso, agregamos el control SplitContainer al centro del formu- lario. Veremos en él dos pancles Tibres: en el Panell, el de la izquierda, agregamos el con- trol TreeView; y en el Panel2 nos el rr control ListView. En ambos casos cambia- mos su propiedad Dock a Fill. Acto segu do, cambiamos el nombre del control Tree View a TreeViewCtl, y a ListView le pone- mos ListViewCil. Para ver las diferentes car petas y unidades en el control TreeView ne Maer ers a a erat Pere rere Pay Drive tents farere) GridLines eesets ee fae! cant ree cesitamos algunos iconos que permitan dife- renciar las unidades de disco, las carpetas es- peciales y las comunes. Primero arrastramos tun control Imagel-ist, al cual le cambiamos el nombre de img'Iree y le asignamos las ima genes utilizando la propiedad Images. En la ventana que se presenta, asignamos una ima- gen para cada uno de los siguicntes clemen- tos y cambiamos su propiedad Name segiin muestra el sector 1 de la Tabla 8. Una vez incorporadas las imagenes, asignamos, el control Imagel ist al control ‘TreeView: Para esto, seleccionamos el TreeView y cambiamos el valor de su propiedad I scList = imgTree. En el control ListView mostraremos los ar- chivos y algunas de sus propiedades. Necesi taremos una imagen para cada archivo (por d, en este caso utilizaremos una simplici para cualquier tipo). En este ejemplo vamos ausar dos control imageL ist: uno para los iconos de 16 pixeles y otro para los de 32 pi xeles, Denominamos a cada uno imgl6 € img32, respectivamente, y signamos una nica imagen (la misma en el tamaito corres- pondiente a cada ImageL.ist) con su propie dad Name en File. pated Sr ee ec) ened Senn ket rr Ty Pe ee as eres ry eee ae eee ened re eet an nT Perio Dewi Penne Una vez que las cargamos, cambiamos las propiedades en el ListView septin se observa en el sector 2 de la Tabla 8 Queda ain por erear las columnas que mostes ran la informacién extendida de los archivos, Seleecionamos la propiedad Columns en la ventana cottespondicnte y generamos las si guientes modificando estas propiedades: + Columnal: Name:ColNombre, TextNom bre, Width:100 * Columna2: Name:ColEstension, Text Es: tension * Columaa3: Name:ColModificado, Text:Mo- dificado, * Columan4: Name:ColTamafio, Text:Tamato ‘También necesitamos pre algo importante en nuestra aplicaciéa: las computadora tuales suclen estar conceradas en red para compartir recursos 5 eventualmente, conec- tamos a cllas dispositivos externos como: pendrives, reproductores de MP3 y MP4, y teas. Fstos dispositivos suelen crear nuevas unidades de disco cemporales en la PC, con el fin de poder intercambiat archivos desde y hacia ellos, Para que WinExplorer detecte es ros cambios de unidades, agregaremos un control Timer, que generar, de m: wera auto mitica, un evento cada cierto periodo de tiempo, Esto lo utilizaremos para actualizar las unidades de disco. Entonces, agregamos un control ‘Timer al formulario y cambiamo: s propiedades “xLe Interval! a, 5000.(5 se gundos). Pars oP segindo-panto utiizambs uun menti contextual, que proporcionaré las Name a ‘lime opciones de Ejecutar y Propiedades, y seri asignado al ListView en su propiedad Con textMent., Los elementos del menti contex- tual deben tener la propiedad Tag con Ejecu- tar y Propiedades, respectivamente. dees El control Timer genera, de manera automatica, un evento cada cierto periodo de tiempo. En este caso, lo utilizaremos para actualizar las unidades de disco. Mend contextual Para acceder a las propiedades de un archivo seleccionado, se requiere otro formulario, de modo que agregamos uno nuevo y Te pone mos como nombre femPropiedades. iste tiene un conjunto de contrates Label que rios controles Checkbox para sus attibutos. tran la informacion de un archivo, y va~ No entraremos en detalle aqui respecto al di- fio de Ia interfar, ya que es sencilla y varia- ri dependiendo de los aiributos que quera mos observar dentro del mem. Lo tinico que debemos tener en cuenta es que debe pro. porcionar una propiedad llamada Archivo Uel tipo System.10.FileInfo. Esta propie dad sera la que se ocupe de brindar la infor macidn para visualizar. © El cédigo completo Ter eae tiae Race cece ect par ee cae CnC itd eer Pe Corea is ee ee Ne oficial de este eC Ona ake os eee Cis eee 27 El evento Shown solo se produce la primera vez que se muestra un formulario; no se genera al minimizarlo, restaurarlo o dibujarlo otra vez. Haciendo que la aplicacién funcione Llegé Ia hora de escribir el eédigo con el que Winlxplorer cobras vida. Comencemos por poner cédigo al formulario frmPropiedades, ya que es bastante seneillo, En el evento Shown de frmPropiedades mostramos las, propiedades del archiva (tales como nombre, tamafo y algunos de sus atributos), y en el evento clic del botén salimos del form. El evento Shown sélo se produce la primera vez que se muestra un formulario; no se genera al minimizarlo, maximizarlo, restaurarlo, ocultar- o, mostratlo, o invalidarlo y dibujarlo otra vex. Fl cédigo que analizamos a continuacién es el correspondiente a VBNET y Cit. Lo mas im- portante de la siguiente seccién es poder vi- sualizar y comprender las similitudes y diferen- cias entre ambos lenguajes. El cédigo en distintos objetos En principio declaramos un objeto _Archivo, del tipo IO.FileInfo (namespace que permite tema). Le asignamos una propiedad por la cual se obticne informacién del archivo, y otra pro- piedad de salida por la cual se envia Ia infor- macién al control que la solicite, realizar operaciomesisoheehis archivds desis rs ei void bt VBNET “c6digo correspondiente a FrnPropiedades Decleraciones Private Archive As 10.Filernto Public Property Archive() As I0.FileInfo et Return _Arehive End Get ‘Sot(By¥al value As 10.Filernto) Archive = value Ene set End Property cH private Systen.t0,Fitetnfo _Archivo; public Systen,10.FileInto Archivo 4 get { retuen Archivo: J set { Archivo = value; } » A continuacién, vemos el cédigo en VBNET y C# que corresponde al botén Aceptar. Este cédigo es el que nos permite cerrar la ventana de propiedades: VBNET “céaigo correspondiente a1 botén Acoptar_click Private Sub btnaces -GLick(Byal sender ‘As Syston. Object, ByVal 0 At System.EventArgs) Handles btnAcoptar.click ue.close() Ena sup c# rar lick(objct - lOgspot.com.ar Seta » En el evento Shown ingresamos el cédigo correspondiente pata que los controles Label en frmPropiedades muestren la informacién correspondiente al archivo seleccionado. Cabe notar que declaramos una variable del tipo Double, denominada tamaiio, que contendra el correspondiente al archivo. Dado que, por ejemplo, un archive de 1 Kb equivale a 1024 bytes, utilizaremos Ja funcion matematica de redondeo Math.Round. Veamos cémo hacer esto en ambos lenguajes: VBNET Private Sub fraPropiedades_shoun(ByVal sender As Object, ByVal © AS System.EventArgs) Handles Me. Shown ‘txtHlonbre.Text = Archivo.Name Ablbirectoriovalue.text = Archive.Directoryla Dim Tanafo As Double ‘Tawafo = Math-Round(Archivo.Length / 1024, 0) If Tamaio <1 Then {p1Tananovalu faxt = Archivo. = bytes" E1se bl¢readovalue.Toxt = Archivo. Creationrine. Tostring billod:ticadovalue.Text = Archivo.LaswiriteTine.Tostring blAccesovalue.text = Archivo.LastAccessTine ehkSoloLectura..checket Archivo.attributes And 430. Fileattributes.Readonly chkSistema.Checked = Archivo. Attributes And 10.Fileattributes.systen b aKahanaKs ‘chkOculto. Checked = Archive.Attributes ‘And T0.Fileattributes.Midden End Sub cH priv f¢ void fraPropiedades_shown (object sender, EventArgs 6) t ‘extllonbre. Text = Archivo ane; iblbirestoriovalue.Text = ‘Archivo.Directorytane; double Tanafo; ‘Tanaso = Wath.Round( (double) (Arehiva.Length / 1028), 0); Af (Tamano <1) 4 bLTanahovalue,Text = Archive-Length ablTanafoValue.Text = Tanafo + * Ka" ? blcresdovalue.Text = ‘Archivo. CreationTine. ToString() ; {bllledsficadoValue.Text = Archivo.LastvriteTine. Tostring(}; AblAecesoValue.Text Archivo. LastheceseT! Tostringt)5 A ({ Arehive.attributes & Syston. 10. Fileattributes.Readdnly) Syston. I0.Fileattributes.RosdOnly) { enksoloLectura.checked = true; } Af ((Archivo.attributes: & systen.10.Fileattributes.Systen) == ‘systen.10.Fileattributes.systen) ( ‘systen.10. Fileattrabutes. Hidden) Systen.10.Fileattributes.ttidden) ( El corazén de esta aplicacién son los métodos CargarArbol y SeleccionarNodo. Formulario principal Bl comzén de la apticacién son los métodos CargarArbol y SeleccionarNodo. El primero ¢s amado en el evento Load del formulatio, y carga inicialmente el érbol con las unidades de disco y las carpetas especiales. No carga las sub- catpetas de cada uno: esto se hace “a demand”, a medida que es necesario para agilizar la aplica- «idan, y lo hacemos en el método Seleecionar- Node, que ocurte al seleceionat un item del bol. A continuacién, veremos el céxligo del mé- todo Cargar Arbol; este cédigo es para VBNE como dijimos al principio de la prictica: ‘carganos itens on el arbol Private Sub Cargararbol() Die oMlodo As Treellode Die ochild As Treeliode Treevienct1.wodes.ciean() “carganos IPC ‘oNodo = TreeVienctl Nodes. Add(KeylTPC,, ML Por) ovodo.Inagekey ‘Noda SelectedtaageKey ‘onodo.Tag = "MPC" smipor cargans 108 discos disponibles aaa a EO EIST Ta ee. Www.reduse cous» WWW Pmelinasa leeaee Rregsceerys Pian. sicsen feet meson lien sonuts.tan = Str moreeeery rae ochild. tnagekey = “orive™ ohild. Selectedinagekey = “Drive” ochild = Nothing toxt “Gargamos Eseritorio ‘otleda = lew Treetiods ‘olledo.Tag = lly Conputer -Filesysten ‘Specialirectories.Desktop ‘onlodo. Text = “Eseritorso” ‘olledo.SelectedimageKey = “Desktop” ‘oliodo. Teagekey = “Desktop” ‘TreeViewCtl.Nodes. Ad (oNodo} “Cargamos Wis Docunentos ‘otiodo = tow Treotiode ‘ovledo.Tag ~ My.Conputer Filesysten ‘Specialirectories.tyDocunents ‘oliodo.Text = "wis Docurentos” ‘otiodo..Selectedimagexey = “tyDocuments” oNleda. Tea 1y = *MyDocumants” ‘TresView’t] Nodes. Add (oNodo) ‘cargamos nis imdgenes ‘olledo = low Treotiode ‘olledo.Tag = ly.Conputer .Filesysten. ‘speeiaLbirectories.tyPictures ‘oNiodo.Text = “lie Inagenes" ‘olledo .SelectedTnageKey = “tlyPicturos* ‘oviodo. Teagekey = “MyPictures” ‘TreeviewctL.Nodes.Ada(oNiodo} “cargamos i misice ‘otiodo = Hew Treotioge ‘oWiodo.Tag * ly.Conputer.Filesysi ‘Sspecialbirectories.mywusic Modo Text = ii, prem kigespet.com.ar tied. 1 “TresVaewotL.Nodas Ad (otodo) sgeKey = “Uylusic™ end sub EL METODO SELECCIONARNODO ES COMPLEJO, YA QUE TIENE UNA DOBLE FUNCIONALIDAD: VERIFICAR SI EXISTEN SUBDIRECTORIOS PARA EL NODO SELECCIONADOY,A LA VEZ, MOSTRAR LOS ARCHIVOS DE ESA CARPETA EN EL CONTROL LISTVIEW. Como vemos en el cédigo, primero elimina. ‘si os aitinto a ai po vonos si tiene mos cualquier item que exista anteriormente cargadas las subcarpetas dentro del control TzceView y cargamos los If @.Node Nodes count = 0 Then nodos a mano, Lo importante aqui es asignar Dim ochild he Teoetiode la clave correcta a estos nodos desde el prin- Din subroiders As string() cipio, para poder obtenetlos ego y, a su ty ver, utilizar la propiedad Tag de cada ele- SubFolders * 10.Direotery. mento para almacenar el path 0 ruta comple- Getoirectories(e.Node.Tag) to, que permita una fécil localizacién cuando catch ex AS 10. r0Exception Jo necesitemos. La asignacién de las imége- MessageBox. shou("La unidad de nes se realiza indicando sus nombres, y se disco * & e.Node.Tag & * no esté cotresponden con los asignados en el control Gisponible.*, we.Text, Ue ImageL ist e imgTree. BoxButtons.Ok, UessageBoxlcon. El método SeleccionarNodo es un poco mis exclanation) complejo, ya que tiene una doble funcionali- exit Sub dad: verificar si existen subditectorios para el atch ox As odo seleccionado y cargarlos si es necesatio, a Unauthorszedkecesstxception Ja vez que debe mostrar los archivos de esa MessageBox. Show(“Ud. no tiene 208 carpeta en el control ListView: Parte del eédigo suficientes permisos para acceder del método SeleccionarNodo es el siguiente: este recurso.", We.Toxt, NessagesoxButtons.OK, Private Sub Seleccionartiode(ayval @ As Messagesoxicon Exclamation) Syston. Windows. Foras.TreevieneventArge) Exit sup ‘al seleccionar un nodo mostranos su ruta Gatch ex As Exception ‘ToolstripstatusibDescripcion.Text = MessageBox. Show(ex.ttessage, e.Node.Tag Ne.Text, MessageBoxButtons.OK, Nessagesoxtcon..xclamation) reduserspi¢inium.blogspot.co “tonememos en cuenta carpetas especiales ‘si no tiene hijos, cargam subearpets “como MIPC que solo contiene las ‘recorco las subcarpetas y las cargo unidades de disco For Each oFolder As String In If e.Node.Tag <> “Po” Then SubFoteers, contig = Hew Treetioae tidad ha cambiado y recargamos los nodos ochild.Tag = oFolder de MiPC. A continuacidn, vemos el cédigo oontia.Text correspondiente: 10.Path.etFilenanewithout Extension(oFelder) ochitd. Inagekey = “Folderciose ochtld.electedinageney = FolderClosed” Node Nodes Add (oChL14) ocnile = nothing Next fend 1 Private Sub Tinerct1_Tiok(Byval senaer as object, ByVal © As syston.cventargs) Handles Timerct1.Tick ‘imerot1 stop) “verifico que 1s cantidad de drives haya cambiado antes de actualizar Dim ollodo As Treetiode ‘lied = TreeViewCt] .Nodes.Find (keyusPC, False) (0) If 10.privernfo.Getorives.Length <> ‘olledo.Nodes.Count Then “A continuacién, una vez cargadas las subearpe Listview los archivos del directorio hnostranos en el control seleccionade ‘cani6. Recarganos oNodo.Nodes Clear () ‘earganos los discos disponibles For Each obrive As 10.Drivernto In Eng sud Lo primero que hacemos es mostrar la ruta de la carpeta en la barra de estado; Inego, de- terminamos si el nodo es MiPC 0 uno dife- rente, ya que sabemos que sus subcarperas, cen realidad, son las unidades de disco y éstas son actualizadas con el control ‘Timer. Si es alguna otra, verificamos si ya hemos cargado sus subcarpetas; de no ser asi, lo hacemos. Finalmente, cargamos en el control listview los archivos de la carpeta seleccionada. Fiste €s uno de los lugares en donde utilizamos la propiedad Tag del nodo, en Ia que hemos macenado la ruta completa de la carpeta en disco, También realizamos algunos controles de ertores, como pueden set unidades de a aT disco no preparadas o falta de permiso para TeeoviewtventArgs(otloce)) visualizar el contenido de ee ea, WwWiredtiserspremium.blogspot.com.ar 10,riveInfo.Getorives Din ochild As TreeNiode ocnitd = ovlodo.Nodes. Add oDrive.RootDirectory. FullNane, obrive.RootDirectory. Fulinane) oonitd.tag = obrive.RootDirectory.FullName child. tmageksy = “orive” ochild.selectedimagekey = “Drive” ochild = Nothing Next TresViexttl.Selectedliode = oiedo Timoroe.start() Actualizando archivos Para actualizar las unidades de disco en el : End Sub evento Tick del ‘Timer, verificamos si la can- Lo importante en esta rutina es detener el fan cionamiento del control Timer antes de real var la recarga, ya que, dadas las circunstancas, podria volver a generarse el evento y tener una llamada reentrante a él, Después de efectuar la recarga, iniciamos otra vez el control Timer. Cambio de visualizacion El control ListView tiene la capacidad de cam- boar su vista y, pata eso, creamos los memis y Jos botones del control toolbar. Al realizar elie cen cualquiera de ellos, se llama al método CambiarVista, que, ademis, actualiza el esta- do del resto de los item de los ments. Propiedades y ejecucin de un archivo BI menti contextual que agregamos sive para visualizar las propiedades del archivo selec- cionado, Al hacer clic en esa opeién del me- rn, se lama al método VerPropiedades, Otros eventos También hemos codificado diferentes even- tos del control TreeView para modifiear el icono de la carpeta (abierta 0 cetrada) y el FIGURA 026 | Ast veremos nuestra apleacién funcionando en Windows. Es importante que exista una rutina que detenga el funcionamiento del control Timer antes de realizar la recarga, ya que podria volver a generarse el evento y tener una llamada reentrante a él. evento Load del Form, asignando de manera dinimica los manejadores de eventos a los elementos del menti y a la barra de herra- mientas, para ver las diferencias de sintaxis entre VBNET y C#. Los invitamos a estu- diar el eddigo completo de la aplicacién y a realizar algunas de las mejoras propuestas: + Permitir operaciones de Copiar, Costar y Pe- ‘gar archivos, Tabla 9 | Namespace System.|O 134 + Visualizar en el Li ‘View tanto las carpetas como los archivos, tal como lo hace el Ex- plorador de Windows real. + Mostrar los iconos en los archivos de acuer do con el programa asociado, + Crear, eliminar y modificar carpetas y archivos. Expandir la funcionalidad de la aplicacién A lo largortde ents eecclén, hemiserist las funciones y la sintaxis bisica en C# y VBNET para crear un explorador de archi vos de Windows con los elementos basicos para su funcionamiento, Podemos investigar tun poco més sobte sintaxis en el lenguaje que ‘nos guste o en ambos, para podet expandit la funcionalidad de WinExplorer al incoxporarle acciones como las siguientes: copiar, mover y elimina archivos (enviindolos a la Pape- lera), crear nuevas carpetas, mover y copiar carpetas con subcarperas y archivos inclui dos, visualizar en cada archivo el icono co rrespondiente a su extensién definide en Windows, y otras funcionalidades mas que neralmente se in- se nos ocurran, ¥ qu cluycn en este tipo de aplicaciones. En la Tabla 8, veremos ademés una serie de co- mandos destinados a realizar algunas de es tas sugerencias que permitinin potenciar atin més nuestra aplicacién WinExplorer. de dos que permitirin expandir la funcionali dad. Los invitamos a proba Estas son alg 1s funciones 0 méto: y mejorar asi este sistema El primer repaso A continuacién haremos un repaso general de los puntos mas importantes de cada una de las herramientas que vimos hasta ahora. Esta seccion tiene por objetivo repasar aque- llos conceptos que se- ran evaluados en el examen de certifica- cién de Microsoft. Ve- remos primero una sintesis de los concep- tos mas importantes. Luego, repasaremos al- gunas preguntas del examen.Al final, encon- traremos ejercicios practicos que nos ayu- daran a fijar los con- ceptos aprendidos. La programacién y los lenguajes © La programacion se enfoca en el desarrollo de soluciones basa- das en software o programas informaticos de computadoras Estos progtamas se sustentan en un conjunto de instrucciones gqne una computadora pueda interpretar y ejecutar, © Los programas se esctiben en un lenguaje de programacién. El Tenguaje de programacién es “un idioma” utilizado para contro Jar cl comportamiento de una computadora a través de reglas, sintacticas y seminticas que definen su estructura y cl significa- do de cada uno de sus elementos. Este lenguaje permite a un. programador especificar qué datos serin controlados, operados y almacenados en una computadora, El programador © Un programador, bisicamente, es una persona que se dedica a escribir programas para computadoras, © El programador es el encargado de implementar algoritmos que tesuelvan problemas operativos o mejoren Ia productividad en tuna empresa, mediante uno o varios lenguajes de programacién, que puedan ser cntendidos por la computadora, La plataforma .NET Microsoft NET es una plataforma de desartollo y ejecucién de aplicaciones. Sus caracteristicas principales son: © Las aplicaciones se ¢jecutan en un entoro aislado del sistema, de- ‘fominado runtime, lo cual lo hace flexible, seguro y portable. © Fist4 100% orientado a objetos. ‘© Permite el desarrollo de software complejo y robusta. www. redusergpreninhrproyspotco © Se integra ficilmente con las aplicaciones generadas en versio- nes anteriores de Visual Studio, como COM. ‘© Permite integrar aplicaciones de otras plataformas y sistemas ope- sativos implementando estindares como XML, SOAP y WSDL. 135 136 Elementos de la plataforma .NET @ NET Framework oR @ BCL. @ Lenguajes de progeamacién y compiladores ‘© Herramientas y documenracién El modelo de ejecucién El modelo de desarrollo se basa en dos etapas: © La escritura del cédigo fuente, © La compilacién del assembly o ejecutable, Es- te genera un cédigo intermedio © MSIL, que luego dediva la ejecucién a CLR (Common Lam. _ guage Rumtine), encargado de teaducie el cddigo al lenguaje maquina para que pueda ser ejecu- tado, Fsto se conoce como compilacisn JIT. Principales lenguajes ‘© Visual Basic NET es la evolucién de VB 6.0, Fue rescrito por completo para hacerlo total- mente orientado a objetos. Mantiene gran par- te de su sintaxis similar a la de su antecesor. © C# es un nuevo lenguaje disciiado, especifi- camente, para la plataforma NET: Su sinta- sis es similar a las de C y Java. Principales sentencias © SENTENCIA IF: Repeesenta la estructura de seleccin mis simple en cualauice lenguaje de programacién NET. Permite ejecutar una porcidin de cédigo si es que se cumple deter minada condicién. Se puede combinar con else para eecutar ona porcidn de eédigo en ‘caso de que no se cumpla la sentencia if, C#. Se puede denominar como un caso gene- ralizado de Ta sentencia if, pero en vex de eje- curar una porcién de cédigo dependiendo de tuna condicién logica, select ease divide Ta eje- cucién en un grupo de casos dlisjuntos. @ SENTENCIA FOR: Permite ejecutar un blo- que de cédigo una cantidad determinada y fija de veces. Con la palabra Step, podemos indi- car el paso © valor en el cual se incrementa cl contador de cada iretacién, @ SENTENCIA WHILE: Permite ejecutar un bloque de cédigo repetidas veces mientras se cumpla una condicion logica. En Visual Ba- sic NET el bloque de ejecucion se cierta con la palabra cave loop. Procedimientos o funciones Pata optimizat el desarrollo de nuesttos pro- gramas y no tener que repetir un cédigo que pueda ser rentilizable, podemos crear proce- dimientos 0 funciones que lo almacenen, Al momento de tener que usatlo otra vez, s6lo tendremos que lamar al procedimiento © funcidn que lo contiene, Clases y objetos “Las clases son abstracciones de objetos de la rea lidad que se quieren modelat. Los objetos son instancias particulares de las clases; cada uno pertenece a tina clase (agrupados pot propieda- des comunes), pero tiene identidad propia. Las lases son definidas por un nombre, y en su interior agrupan métodos y propiedades. Conceptos sobre bases de datos ‘Una base de datos es un conjunto de informa- cin organizada que esta almacenada en algan soporte no volitil, y que se puede consultar, administear y actualizar a través de un sistema mii Aysver.cim.ar te permite realizar operaciones como agregar, ‘modificar, borrar, consultar, cruzar, crear, ad- ministrar la seguridad y efectuar backup, entre ‘ottas, Las bases de datos més utilizadas en in- formdtica son las retacionales, Preguntas de ejemplo 1 | (Qué es NET? Regent cocrecat NET csr patafoema de eeu intrmedi, A. NET cs un sistema Las aplicaciones son cjecutadas a tra- Opesatiro,qiveichaye ‘és de tn componente de softwnte Jenguajes de programacién y —_Tamado emtorno de eeu, que se entornos de desarrollo. ‘encarga de manejar el ciclo de vida de B. Es.un sistema operative silgierapicaciin NET, desde wo compuesto por una interfaz. inicio hasta eu finaizacon gtifica, un paquete de oficina, , tun programa de conexién a 3 | Otras ventajas Internet y un navegador Web, _ conocidas de NET son: €. NET es una plataforma . de desarrollo compuesta por A. Esti compuesto por un un entorno de ejecucién, tinico lenguaje de bibliotecas de funcionalidad —_Programacién, que permite (Class Library), lenguajes de aprenderlo y no complicarse programacién, compiladores, con diversas alternativas, herramientas de desarrollo y -B._ Petmite desarrollar s6lo- fas de arquitectura. aplicaciones para servidotes, ds 1o cual facilita su uso desde Respuesta correcta G:.NET es una talquier computadora Matters qeenbbadiioms pk conectada aun servidor de Cicione srvicineyconceptos yu, eA. 0 Servidor de Tnrernet. tn cnjunta permiten el dearollay €-Provee de un modelo Ja ejecuciéin de aplicaciones, tinico de programaci cualquier tipo de aplicaciSn y 2)| Las caracteristicasde tispositive de hardware: Se “NET son: integra Eicilmente con la plataforma Microsoft y con aplicaciones desarrolladas en otras plataformas. A. Bsuna plataforma que, simplemente, contintia en su version a Visual Studio 6, runteniendy lag aniaanas Respuesta correcta C: NET fe dise- caracteristicas que ély s6lo___ ado par proveer de un nico mede- optimizada para Windows XP___ 10 de programacién para todo tipo de B. Es una plataforma de aplicaciones (Windows, de consol, ejecucidn intermedia, 100% We meviles, et) y para evlguier orientada a objetos, con dlspositvo de hardware (PC, Pocket soporte multilenguaje y que PG teéfonosecuaresineigentes petmiee desaretlio de ambi Hamados smartphones, wer aque desarrolladhs en ors plata- formas de software, sistemas operat- vos 0 lengusjes de programacion,res- petando estindsres coma XML, HTTP, SOAR, WSDL. y UDI. 4 | (Como esta compuesta la plataforma de ejecucién intermedia? A. Blentorne Microsoft NET contiene un entorno de desarrollo compuesto por: Tenguajes de programacién, librerias de funcionalidad y entornos de ejecucién. ‘Todo esto integra una aplicacié (NET que corre sobre el sistema operativo de la familia Windows B. El entorno NET esti compuesto por librerias DLL. y archivos BAT, que se ‘encargan de hacer funcionar los ejecutables s6lo para corret aplicaciones bajo Windows y DOS. C.Elentorno NET dispone de ejecutables que liaman a otros ejecutables para mejorar el funcionamiento del sistema operativo y los paquetes de oficina, Fstos funcionan ‘inicamente sobre la plataforma Linus. Respuesta corrcta A: Se ubia entre dd sistema y las aplicaciones con las que imernetan los usuarios. Agrspa aplicaciones de misiZARZON JEN IIB EM a bn bisgepot.cor €.Es un sistema operativointeractot ueererr linen con Fpericie’a roempbnae splicaciones desrralladss en plhtafor- Windows XP « incluye as aterores como objets COM. gana herrea pata NEE se integra ficmente eon aph- ogramacion de esertorio, cAdone eros en ots pla B formas Microsoft, y también con ‘Visual Basic NET, C¥,J# y Visual © ++ NET. También lo acompaaa el Framework NET, que dispone de los ‘conteoes y fianciones necesari para desarrollar ls aplicaciones, 137 138 Ejercicios con lenguajes de programacion Visual Basic .NET EJERCICIO |: Realizar una aplicacién Win- dows que permita inchuir dos ntimeros en distin- tas cajas de texto y, a la vez, dé la posibilidad de tealizat las operaciones bisicas de suma, resta, multiplicaciOn y divisidn enite ellos. El resultado, debe mostrarse en una etiqueta, y a través de un botda, debe poder copiarse en el Portapapeles de Windows. Para este cjercicio debemos agre gar el uso del método ClipBoard(), que permi- te acceder al Poxtapapeles de Windows, EJERCICIO 2: Realizar una aplicaciOn de con- sola que nos solicite: nombre y fecha de naci- micnto, ya través de este tiltima dato, nos diga qué edad tenemos ¥ los dias que levamos vivi- dos. Incorporaremos el método DateDifi), que permite realizar operaciones entre un rango de fechas u horas y devolver el resultado. Visual C # EJERCICIO 1: Crear una aplicacién de consola que contenga una clase denominada Monedas, en la que se almacene, en el tipo de variable Délar, el cambio en pesos; yen Para Délar asignamos un valor de $ 3.20 y para Euro, de § 4.25. Bl programa debe pregun- tarnos de cuintos pesos disponemos para otra variable Buro, el cambio en pe: comprar monedas extranjeras, y debe darnos ¢l importe que podamos comprar en euros y en dolates, EJERCICIO 2: Modificar el Hjercicio 1 para que indique, mediante un mensaje en pantalla, que sila compra de enros 0 délares da un te- sultado menor a 100, no es posible realizar la operacién, debido a que el mfnimo para venta de monedas exteanjeras es de 10 unidades Ejercicios con bases de datos SQL Server 2005 A continuaci6n, haremos ejerticios pricticos en SQL Server Management Studio 2005 so- bre la base de datos Northwind, Si no dispo- rnemos de esta base de datos, podremos des cangatla desde el sitio web de este curso: http:/ /desarrolladot.redusers.com. la base de datos Nosth- wind, modifiear la tabla Customers para que contenga un campo denominado Alternati- veContactName de longitud 30, y un cam- po Comments con la maxima longitad per- mitida de texto. EJERCICIO 2: Realizar una consulta de selec- cidn de la tabla Employees, donde el campo Tite cenga el valor Sales Representative’, or- denado por el campo LastName en forma descendente, Mostar los resultados ea pantalla en formato Texto. EJERCICIO 3: Realizar dha consulta de a twalizacion de la tabla Employees, donde el campo Title tenga el valor ‘Sales Represene tative’. Cambiar dicho valor por ‘Represen- tante de ventas’. Deberemos utiliza la sen- tencia UPDATE pari este propésito cere CAN a Introduccion a la programacién Web Contenidos Practicamente con el nacimiento de Internet nace lo que conocemos como programacion Web. Desde entonces, se inicié la pelea por llevar los sistemas de escritorio a la gran Red de redes. En este capitulo, realizaremos una introduccién a los conceptos fundamentales. Temas tratados Introduccién al desarrollo Web Introduccién a ASPNET Los formularios Web Los controles Web Jusarspramium.».logspet.comsar ASP.NET Analizaremos cada una de las caracteristicas del desarrollo de aplicaciones Web a través del entorno Microsoft .NET. cién al desarrollo Web © 3 i] Modelo cliente-servidor HTML y XHTML Lenguajes de cliente y lenguajes de servidor Repasaremos aquellos conceptos fundamentales que hacen a la programacién de aplicaciones para la Web. Probleméticas en el desarrollo Web (5) Introduccién a ASP.NET En este capitulo, nos introduciremos en el > :Qué es ASPNET? mundo del desarrollo de aplicaciones Web a > Problemas que resuelve través del entorno Microsoft NET. > Requerimientos ® Formularios Web Aprenderemos a trabajar con formularios,uno > Conceptos fundamentales de los elementos caracteristicos de la > Eventos programacién de sitios Web. > Ciclo de vida (>) Leroi Tene) (MAL) Haremos una introduecién a estos objetos y Controles simples luego profundizaremos en cada uno de ellos, Controles de lista Controles de accién Controles de ingreso indicando sus propiedades y posibles usos. vvvy (>) Tella fox ms oDe Cold locoy) En cada seccién de este capitulo, encontraremos > Ejemplos ejemplos practicos para comenzar a probar cada. > Casos reales uno de los conceptos aprendidos > Consejos de los expertos Desarrollo de aplicaciones Web Nos introducimos en el mundo de la programacién Web. Primero conoceremos cuales son sus principales caracteristicas. El desarrollo de aplicaciones Web consiste en la creacién de programas que residen en. un servidor Web y que pueden ser utilizados en forma de paginas Web desde un navega- dor de Internet. Fstos emplean distintas tec- nologias basadas en Internet para procesar los datos tequetidos por el o los usuarios que estin utilizando el sistema, Algunas de ellas son: PHP, ASP, CGL-BIN, ColdFusion y Jsp; cada una precisa software del lado del servi- dor para analizar el cédigo y generar la pigi- na pedida. Dichas tecnologfas se combinan en el setvidor con otros servicios que permi- ten acceder a bases de datos y, asi, poder ar- mar un sitio altamente funcional y rico en in formacién, sin tener que lidiar a cada mo- mento con él para actualizar las paginas que lo componen. El usuario que accede al sitio que dispone de paginas programadas con alguna de estas tec- nologias siempre veri, a través de su navega- dor, piginas estaticas. Estas son armadas so- bre la base de Ia informacién enviada 0 soli- citada por el usuario, y el resultado es de- ‘vuelto por el servidor al usuario en forma de una pagina similar a las HTML. Esquema de funcionamiento de paginas Web f-” Disposteivo Handheld HTTP oar www.redu ‘elefono Servidor Wed FIGURA 00) | Ejemplo del esquema de funcionamiento de una pagina Web. im.biogspot.co 141 Algunos ejemplos clisicos de aplicaciones Web que utilizamos a diario son: periddicos, foros de informacién, home banking (banca electednica), y otros. Cada uno esti compues- to por una aplicacién que se encarga de pro- cesar el contenido de la base de datos; per- mit el alta, baja y modificacién de informa- ciGn; y brindar la posibilidad de generar pigi- ras Web que nos permitan hacer las consul tas correspondientes, Los actores fundamentales en el desarrollo de aplicaciones Web son el cliente y el servidor. Esquema de programacién Web con textos FIGURA 002 | Esquema de programacién Web con paginas dindmicas. 142 EL DESARROLLO DE APLICACIONES WEB CONSISTE EN LA CREACION DE PROGRAMAS QUE RESIDEN EN UN SERVIDOR WEB Y QUE PUEDEN SER UTILIZADOS EN FORMA DE PAGINAS WEB DESDE UN NAVEGADOR DE INTERNET. Ta comunicacién entre el servidor y el cliente se realiza mediante el protocolo HTTP, Un cliente solicita una pagina Web al servidor, que Ja busca dentro de su base de almacenamiento y la entrega al cliente, Fste visualiza la pagina recibida utilizando una aplicacion Uamada na- -vegador. Internet Explorer y Firefox son los programas de este tipo més usados. El navega- dor reside en Ia maquina del cliente y s6lo in- terpreta H''ML, Para agregar ligiea en las pi ginas Web, se han creado numetosos lenguajes de desarrollo del lado del servidor, mediante los cuales podemos modificar el contenido de las paginas pedidas en funcidn de determina- dos parimetros, De esta manera, las paginas ya no son entregadas directamente por el serv dor, sino que antes son analizadas por software que se ejecura junto al servidor Web, llamado servidor de aplicaciones. Los navegadores pueden ejecurar cédigo en la maquina clientes el ejemplo mas es JavaScript, Fl eddigo cliente se ejecuta en el contesto del navegador, dentro de la ma- quina del cliente. De esa manera, modifica el contcHiAs UTA pibinit CE Carded eB que tealizar nuevas peticiones al servidor Web, Desafortunadamente, los navegadores no interpretan el HTML de la misma mane- 1, y tampoco lo hacen con el e6digo cliente (cl cddigo escrito en JavaScript, por ejem- plo). Un desarrollador tiene que enfrentarse a diario con problemas que incluyen distintos conocido ) meard €lusuaiio comenza servidores Web, diferentes versiones de los servidores de aplicaciones, diversas versiones de los navegadores y distintos navegadores Las posibilidades son muchas, y esto significa un gran problema para los programadores. De a poco, gracias al esfuerzo que hacen las empresas para implementar los estindares y alas innovaciones tecnolégicas, nos acerca- mos a modelos de desatrollo en los cuales estas cuestiones tienden a desaparecer. Modelo cliente-servidor En un principio, dijimos que los dos actores mds importantes en el desarrollo de aplicacio- nes Web eran el cliente y el setvidor, Veamos este tema con in poco mis de profundidad. Un. usuario se conecta @ un sitio utilizando un na- vegadot. Escribe la diteccién tinica de la prigi- na y da la orden de ejecucién, En exe instante, el servidor donde reside la pagina recibe la pe- ticidn, procesa el pedido y entrega la pagina en cuestién, Ambos, el cliente y el servidor, “charlan” en HTTP, Cuando la pagina esta lis- tn, es descargada por el cliente, y en ese mo~ Reb HD Ge! ‘macién que la integra Este modelo se conoce como modelo clien- te-servidor. Las razones de su nombre son obvias, ya que est determinado por los prin cipales actores que forman parte de él El servidor es una o varias PCs que contienen software para atender peticiones en HTTP, 143, syd en Los servidores de este tipo se conocen como servidores Web, El eliente puede ser cualquier computador que ejecuta un sistema operative y; sobre él, un navegador. El modelo cliente- servidor puede extenderse a otros tipos de clientes, como dispositivos méviles, o incluso. a otros servidores. Existen muchas aplicacio- nes que “sirven” a otros servidore sariamente utilizamos el término referimnos a una persona; debe ser en como el gue inicia el pedido. De la misma manera, el servidor es quien re- cibe el pedido y lo entrega. Debemos acos- tumbrarnos a pensar estos términos sélo en el contexto indicado. Actualmente, es posible FIGURA 003 | Desde ‘cualquier navegador web, podremos acceder al codigo fuente de ‘cualquier sitio. En as paginas siguientes de este curso veremos fen detalle qué funcién ‘cumple cada uno de estos elementos. poner un servidor Web dentro de un chip muy pequetio. ¥ también podemos ejecutar cliente y servidor en la misma maquina, algo gue los desarrolladores solemos hacer. Puede ser que un dispositive mévil tenga una diree- , cuente con un servidor Web y de esa manera, las peticiones de los | modelo cliente-servidor no impli ca la existencia de sdlo dos elementos; en. fo a la fisi- ocasiones, las “capas” pueden ser vati modelo se refiere a la igica” y ca, Fisicamente, cl servidor puede estar tructurado como una solucién de cluster que contiene muchos equipos comportindose como uno solo; las variaciones son diversas. PARA AGREGAR LOGICA EN LAS PAGINAS WEB SE HAN CREADO NUMEROSOS LENGUAJES DE DESARROLLO DEL LADO DEL SERVIDOR, MEDIANTE LOS CUALES PODEMOS MODIFICAR EL CONTENIDO DE LAS PAGINAS PEDIDAS EN FUNCION DE DETERMINADOS PARAMETROS. ee) Etsiehs) cena INTENSIVOS Los temas mas importantes del universo de la tecnologia desarrollados con la mayor profundidad y con un desplieque visual de alto impacto: Explicaciones tedricas, procedimientos paso a paso, videotutoriales, infografias y muchos recursos mas. ee ee eee ety BIR eke melu see seas Men eas eae aise Unie merie she PR LCR ACL CIS Iai me TRC » 25Fasciculos Curso para dominar las principales herramientas del paquete Adobe ree eae eS Te See ee eee eeu ae i Eee eee ee a Geese Moree as eye ee eee nee mca eect eae lad Bele) ere en ec See ea CO ea ca Puce Ee ay EM es a oe EUS RO RUT be Ler m omceara _ fe usershop@redusers.com © +54 (011) 4110-8700 @® usershop.redusers.com.ar Se ene CP] % Ri ; ears) eb wore Formularios Wan

También podría gustarte