Está en la página 1de 83

Desarrollo de una aplicacin en tres capas con interfase Cliente Windows, uso de Data Access A.

Blocks, DataSets tipados y ...

http://www.desarrolladoras.com - info@desarrolladoras.com

otras yerbas
Inspirada en la Aplicacin Pachacamac de Daniel Seara. Gracias Daniel por ensearnos tanto!

En el da de la Tradicin
nos darn un mate al menos ?

por Vilma Hinterwimmer


vilmahinter@desarrolladoras.com

http://www.desarrolladoras.com - info@desarrolladoras.com

Temas a tratar....

si llegamos a tiempo!

Identificando las capas y los proyectos Creando la solucin y los proyectos

DataSet tipados
Donde almacenamos la cadena de conexin

Usando el Data Access Application Blocks

http://www.desarrolladoras.com - info@desarrolladoras.com

.mas temas
La Clase Entidad y sus derivadas

Herencia de Formularios Armado de un formulario tipo Outlook Express Principales propiedades, mtodos y eventos de algunos controles

http://www.desarrolladoras.com - info@desarrolladoras.com

La Aplicacin

http://www.desarrolladoras.com - info@desarrolladoras.com

Identificando las capas


Cliente
Web o Windows

Negocio
Reglas y Entidades

Datos
DAAB

Usuario

Aplicacin

Repositorio de Datos

http://www.desarrolladoras.com - info@desarrolladoras.com

Capas
Cliente

Interfaz grfica con el Usuario, puede ser Web o Windows


Negocio Reglas de negocio
Clases cuyos mtodos implementan las reglas de negocio globales

Entidades

Clases bases y sus heredades que definen los objetos a utilizar en la aplicacin: Cliente, Proveedor, Factura, etc.

Datos Acceso a repositorios de Datos directo o a travs del DAAB


http://www.desarrolladoras.com - info@desarrolladoras.com

Creando la solucin y los proyectos


Creamos una Solucin en blanco Agregamos los Proyectos:

Nombre del proyecto


Alumnos AluNegocio AluDatos Cliente Negocio AluGlobal Data Access Application Block

Tipo de proyecto
Aplicacin para Windows Biblioteca de Clases Biblioteca de Clases Datos Biblioteca de Clases Existente

http://www.desarrolladoras.com - info@desarrolladoras.com

Relacin entre las capas y los proyectos


APLICACION Cliente Negocio Datos

ALU Negocio NEGOCIO

ALU
DATOS

ALUMNOS ALU GLOBAL


DAAB

Cliente

Proyecto

Capa

Referencias entre proyectos

http://www.desarrolladoras.com - info@desarrolladoras.com

Capa de Datos
http://www.desarrolladoras.com - info@desarrolladoras.com

DataSets tipados
La difcil tarea de crear DataSets tipados en tan solo 4 Pasos...

http://www.desarrolladoras.com - info@desarrolladoras.com

1. Agregar un Archivo DataSet.xsd al proyecto

http://www.desarrolladoras.com - info@desarrolladoras.com

2. Agregar una conexin a datos en el Explorador de Servidores

http://www.desarrolladoras.com - info@desarrolladoras.com

Dos pasos mas para llegar a tener...

Un DataSet Tipado!

http://www.desarrolladoras.com - info@desarrolladoras.com

3. Agregar la definicin de la tabla al DataSet tipado ( drag and drop arrastrar y soltar )

http://www.desarrolladoras.com - info@desarrolladoras.com

4. Generar la clase (Generar conjunto de datos)

y..... LISTO!!!!!
http://www.desarrolladoras.com - info@desarrolladoras.com

Este es nuestro DataSet tipado

Un archivo .vb que contiene una clase... la escribi Visual Studio por nosotros... y ahora la podemos usar....
http://www.desarrolladoras.com - info@desarrolladoras.com

y... Para que sirve un Dataset Tipado?

Para facilitarnos...

LA VIDA!
http://www.desarrolladoras.com - info@desarrolladoras.com

Escribiendo cdigo con un DataSet tipado

http://www.desarrolladoras.com - info@desarrolladoras.com

La definicin del dataset ahora ser


Tabla o Procedimiento Almacenado

Dim dstCliente As New dsCliente

TCliente
Nombre del Campo Nombre Direccion Saldo Clave Sucursal Tipo del Campo varchar varchar decimal varbinary smallint

La tabla ser

dstCliente.TCliente

A los campos de la fila n los llamamos:

dstCliente.TCliente(n).Nombre dstCliente.TCliente(n).Direccion dstCliente.TCliente(n).Saldo dstCliente.TCliente(n).Clave dstCliente.TCliente(n).Sucursal

http://www.desarrolladoras.com - info@desarrolladoras.com

donde antes escribamos

ComboBox1.DataSource = dstCliente.Tables( _ TCliente)


ahora podemos a escribir..

ComboBox1.DataSource = dstCliente.TCliente
donde antes escribamos

txtnombre.Text = dstCliente.Tables( _ TCliente).Rows(n).Item(0).ToString


ahora podemos a escribir..

txtnombre.Text = dstCliente.TCliente(n).Nombre
http://www.desarrolladoras.com - info@desarrolladoras.com

Donde guardamos la cadena de conexin?

http://www.desarrolladoras.com - info@desarrolladoras.com

Almacenaremos la cadena de conexin en el archivo de configuracin de la Aplicacin


A que proyecto lo agregamos?
Al proyecto...

ALUMNOS
http://www.desarrolladoras.com - info@desarrolladoras.com

Agregamos un archivo App.Config al Proyecto Alumnos (Capa Cliente)

http://www.desarrolladoras.com - info@desarrolladoras.com

Agregamos la clave y el valor de la cadena de conexin al archivo de configuracin

<appSettings> <add key=StrConn value="server=MiServidor;database=DB ;trusted_connection=true"/>

</appSettings>

http://www.desarrolladoras.com - info@desarrolladoras.com

As se ver en el Visual Studio nuestro archivo de configuracin

Habra que encriptar la cadena de configuracin para guardarla en el Archivo de Configuracin.


Lo dejaremos para el prximo evento...

http://www.desarrolladoras.com - info@desarrolladoras.com

Accedemos al valor desde el cdigo

Dim strconn as String = _ Configuration.ConfigurationSettings.AppSettings( _ StrConn")

http://www.desarrolladoras.com - info@desarrolladoras.com

Data Access Application Blocks

http://www.desarrolladoras.com - info@desarrolladoras.com

La clase y los mtodos principales


Clase SqlHelper
Mtodos
ExecuteReader
ExecuteNonQuery ExecuteDataset FillDataset
http://www.desarrolladoras.com - info@desarrolladoras.com

ExecuteReader
Devuelve un SQLDataReader con el cual accedemos a las filas ExecuteReader(ByVal connectionString As String, _ ByVal commandType As CommandType, _ ByVal commandText As String, _ ByVal ParamArray commandParameters() As SqlParameter)

ExecuteNonQuery
Devuelve el numero de filas afectadas ExecuteNonQuery(ByVal connectionString As String, _ ByVal commandType As CommandType, ByVal commandText As String, _ ByVal ParamArray commandParameters() As SqlParameter)

http://www.desarrolladoras.com - info@desarrolladoras.com

ExecuteDataset
Devuelve un DataSet

ExecuteDataset(ByVal connectionString As String, _ ByVal commandType As CommandType, _ ByVal commandText As String, _ ByVal ParamArray commandParameters() As SqlParameter)

FillDataset
Llena de datos un DataSet que le pasamos como argumento, no devuelve ningn valor

FillDataset(connectionString As String, commandType As CommandType, _ commandText As String, _ dataSet As DataSet, _ tableNames() As String, _ ByVal ParamArray commandParameters() As SqlParameter)
http://www.desarrolladoras.com - info@desarrolladoras.com

Ejemplos
ExecuteReader
Imports Microsoft.ApplicationBlocks.Data.SqlHelper

...

Dim drCat1 As SqlDataReader drCat1 = SqlHelper.ExecuteReader( strconn, _ CommandType.StoredProcedure, _ "GetProductsByCategory", _ New SqlParameter("@CategoryID", 1)) ... drCat1.Close()

http://www.desarrolladoras.com - info@desarrolladoras.com

Ejemplos
ExecuteNonQuery
Imports Microsoft.ApplicationBlocks.Data.SqlHelper

Public Shared Function GrabarCliente(ByVal cliente As String) _ as Integer Dim Params(0) As SqlParameter Params(0) = New SqlParameter("@NomCliente", _ SqlDbType.VarChar, 50) Params(0).Value = cliente Return ExecuteNonQuery( strconn, _ CommandType.StoredProcedure, _ Clientes_Insert", Params) End Function

http://www.desarrolladoras.com - info@desarrolladoras.com

Ejemplos
ExecuteDataset

Imports Microsoft.ApplicationBlocks.Data.SqlHelper Public Shared Function LeerTodos( ) As DataSet Return ExecuteDataset( strconn,CommandType.StoredProcedure, _ Clientes_GetAll) End Function

http://www.desarrolladoras.com - info@desarrolladoras.com

Ejemplos
FillDataset

Imports Microsoft.ApplicationBlocks.Data.SqlHelper

Public Shared Function LeerTodos( ByVal ds as Dataset ) _ As DataSet Dim strTabla() As String = {Parametros_GetAll"} FillDataset( strconn, CommandType.StoredProcedure, _ "Parametros_GetAll", ds, strTabla) Return ds End Function

http://www.desarrolladoras.com - info@desarrolladoras.com

Pausa

Mate Break
http://www.desarrolladoras.com - info@desarrolladoras.com

Escribiendo el cdigo de la Capa de Datos


1. Agregamos una clase al proyecto AluDatos. 2. Esta clase va a tener varios mtodos compartidos para las distintas operaciones que necesitemos hacer sobre la Base de Datos. TraerDataSet Actualizar

Borrar
GuardarValor

http://www.desarrolladoras.com - info@desarrolladoras.com

Escribiendo el cdigo de la Capa de Datos


Public Class CGrlDatos Shared ConnAlu As String = _ Configuration.ConfigurationSettings.AppSettings("ConnALU")

Public Shared Function TraerDataset( _ ByVal entidad As String) As DataSet Try Return ExecuteDataset(ConnAlu, _ CommandType.StoredProcedure, entidad & "_GetAll") Catch ex As Exception Throw ex End Try End Function
... End Class
http://www.desarrolladoras.com - info@desarrolladoras.com

Capa Negocio

http://www.desarrolladoras.com - info@desarrolladoras.com

Escribiendo el cdigo de la Capa Negocio


1.Agregamos una Clase CEntidad al proyecto AluNegocio. 2.Va a ser la Clase base de la cual vamos a heredar para crear mas fcilmente las dems. 3.Esta Clase va a estar compuesta por: Declaracin de Variables Un constructor Propiedades Mtodos

http://www.desarrolladoras.com - info@desarrolladoras.com

Clase CEntidad
Public Class CEntidad Declaracin de Variables Constructores Propiedades Metodos End Class

http://www.desarrolladoras.com - info@desarrolladoras.com

Clase CEntidad Variables


#Region "Declaracin de Variables Friend mNomEnt As String Friend mId As Integer Protected Friend mDatos As DataRow Protected Friend mTDatos As DataSet #End Region

http://www.desarrolladoras.com - info@desarrolladoras.com

Clase CEntidad Constructor


#Region "Constructores" Sub New(ByVal NombreEntidad As String) mNomEnt = NombreEntidad End Sub #End Region

http://www.desarrolladoras.com - info@desarrolladoras.com

C l a s e C E n t i d a d

#Region "Propiedades"
Public Overridable Property Id() As Integer Get Return mId End Get Set(ByVal Value As Integer) Try mId = Value CGrlDatos.TraerDataset(mTDatos, mNomEnt, mId) If mTDatos.Tables(0).Rows.Count > 0 Then mDatos = mTDatos.Tables(0).Rows(0) Else mDatos = mTDatos.Tables(0).NewRow mTDatos.Tables(0).Rows.Add(mDatos) End If Catch ex As Exception Throw ex End Try End Set End Property #End Region

P r o p i e d a d e s

http://www.desarrolladoras.com - info@desarrolladoras.com

Clase CEntidad Mtodos


Public Overridable Function TraerTodos() As DataSet Try Return CGrlDatos.TraerDataset(New DataSet, _ mNomEnt, mNomEnt & "_GetAll") Catch ex As Exception Throw ex End Try End Function Public Overridable Function TraerLista() As DataSet Try Return CGrlDatos.TraerDataset(New DataSet, _ mNomEnt, mNomEnt & "_GetList") Catch ex As Exception Throw ex End Try End Function

http://www.desarrolladoras.com - info@desarrolladoras.com

Clase CEntidad Mtodos


Public Overridable Function TraerUno() As DataSet Try Return CGrlDatos.TraerDataset(New DataSet, _ mNomEnt & "_GetByNro" & _ mNomEnt.PadLeft(3), Me.Id) Catch ex As Exception Throw ex End Try End Function

http://www.desarrolladoras.com - info@desarrolladoras.com

Clase CEntidad Mtodos


Public Overridable Sub Actualizar() Try Dim DatosUno() As Object = _ mTDatos.Tables(0).Rows(0).ItemArray() If Me.Id <> -1 Then CGrlDatos.Actualizar(mDatos, mNomEnt & "_Update") Else CGrlDatos.ActualizarSal(mDatos, mNomEnt & "_Insert") Me.Id = DatosUno(0) End If Catch ex As Exception Throw ex End Try End Sub

http://www.desarrolladoras.com - info@desarrolladoras.com

Clase CEntidad Mtodos


Public Overridable Function Eliminar(ByVal Id As Integer, _ ByVal nomparam As Array) As Integer Try Return CGrlDatos.Borrar(nomparam, _ mNomEnt & "_Delete", Id) Catch ex As Exception Throw ex End Try End Function

http://www.desarrolladoras.com - info@desarrolladoras.com

Escribiendo el cdigo de la Capa Negocio


1. Agregamos una Clase por cada entidad que necesitemos, en este caso Alumnos, Curso, Asignaturas, Localidades, Paises, etc... al proyecto AluNegocio.

2. Estas Clases van a heredar de la Clase base CEntidad


3. Cada una de estas Clases va a estar compuesta por: Declaracin de Variables

Un constructor
Propiedades Mtodos

http://www.desarrolladoras.com - info@desarrolladoras.com

Clase CPais
Public Class CPais Inherits ALU.AluNegocio.CEntidad Declaracin de Variables Constructores

Propiedades
Actualizacin End Class

http://www.desarrolladoras.com - info@desarrolladoras.com

Clase CPais Variables


#Region "Declaracin de Variables
Protected Friend mTodosDatos As New dsPaises Private Pais As dsPaises.PaisesRow

#End Region

http://www.desarrolladoras.com - info@desarrolladoras.com

#Region "Constructores"

C l a s e
C P a i s

Sub New(ByVal value As Integer) MyBase.New("Paises") Try MyBase.mId = value mTodosDatos.Clear() CGrlDatos.TraerDataset(mTodosDatos, mNomEnt, value) If mTodosDatos.Tables(0).Rows.Count = 0 Then Pais = mTodosDatos.Paises.NewPaisesRow Pais.PaiNroPai = -1 Pais.PaiDesc = "" Else Pais = mTodosDatos.Paises.Rows(0) End If MyBase.mTDatos = mTodosDatos MyBase.mDatos = Pais Catch ex As Exception Throw ex End Try End Sub #End Region http://www.desarrolladoras.com - info@desarrolladoras.com

C o n s t r u c t o r

C l a s e C P i a s

#Region "Propiedades"

Public Overrides Property Id() As Integer Get Return MyBase.mId End Get Set(ByVal Value As Integer) MyBase.mId = Value End Set End Property Public Property Desc() As String Get Return Pais.PaiDesc End Get Set(ByVal Value As String) Pais.PaiDesc = Value End Set End Property
#End Region

P r o p i e d a d e s

http://www.desarrolladoras.com - info@desarrolladoras.com

Clase CPais Mtodos


#Region "Actualizacin" Public Overrides Sub Actualizar() Try If Me.Id > 0 Then CGrlDatos.Actualizar(Pais, Me.mNomEnt & "_Update") Else mId = CGrlDatos.ActualizarSal(Pais, _ Me.mNomEnt & "_Insert") End If Catch ex As Exception Throw ex End Try End Sub #End Region

http://www.desarrolladoras.com - info@desarrolladoras.com

Capa Cliente

http://www.desarrolladoras.com - info@desarrolladoras.com

Herencia de Formularios

http://www.desarrolladoras.com - info@desarrolladoras.com

Formulario Base
Creamos un Formulario del cual van a heredar la mayora de los
Formularios de nuestra Aplicacin Colocamos P este Formulario en el Proyecto AluGlobal para poder hacer referencia a l desde el Proyecto Alumnos y cualquier otro Proyecto que u agreguemos en la capa Cliente.

b l i Agregamos a este Formulario todas las cosas que se van a repetir en cformularios. Icono del Sistema, Nombre de la Empresa, etc... todos los C Generamos la solucin para que se genere el Assembly y as poder l heredarlo a s s
http://www.desarrolladoras.com - info@desarrolladoras.com

Formulario Heredado
Agregamos un Formulario que va a heredar todas las caractersticas de nuestro Formulario Base

http://www.desarrolladoras.com - info@desarrolladoras.com

Formulario Heredado
Tambin podramos haber elegido Formulario Heredado del cuadro de dilogo Agregar Nuevo Elemento

Elegimos el Formulario del cual vamos a heredar

http://www.desarrolladoras.com - info@desarrolladoras.com

Formulario Heredado
Ya tenemos nuestro Formulario Heredado Todo lo que agregamos en el Formulario Base va a estar en todos los formularios heredados del mismo. Ahora nos dedicamos a agregarle a los Formularios heredados los controles particulares del mismos sin tener que preocuparnos que las cosas generales queden en distinto formato en los distintos formularios de la aplicacin.

No tendremos que volver a agregar estos controles y este cdigo nunca mas!

Todos van a ser iguales!


http://www.desarrolladoras.com - info@desarrolladoras.com

Armado de un Formulario estilo Outlook Express

http://www.desarrolladoras.com - info@desarrolladoras.com

Formulario estilo Outlook Express

Es fcil!!! Son slo 10 pasos


http://www.desarrolladoras.com - info@desarrolladoras.com

Formulario estilo Outlook Express


1. Colocar en el Formulario todos los controles que vayan pegados sobre sus bordes. ToolBar, StatusBar, etc... 2. Colocar un control Panel y cambiar su propiedad Dock a Left 3. Colocar un control Splitter en el Formulario y cambiar su propiedad Dock a Left 4. Colocar un control ListView en el Formulario y cambiar su propiedad Dock a Fill

http://www.desarrolladoras.com - info@desarrolladoras.com

Formulario estilo Outlook Express


5. Colocar un control Panel dentro del primer Panel y cambiar su propiedad Dock a Top 6. Colocar un control Splitter dentro del primer Panel y cambiar su propiedad Dock a Top

7. Colocar otro control Panel dentro del primer Panel y cambiar su propiedad Dock a Fill

Slo faltan 3 pasos mas...


http://www.desarrolladoras.com - info@desarrolladoras.com

Formulario estilo Outlook Express


8. Dentro de cada uno de los dos ltimos Panel que colocamos, colocar un control Button y cambiar su propiedad Dock a Top 9. Colocar un control TreeView dentro de cada uno de los 2 ltimos Panel y cambiar su propiedad Dock a Fill

10. Colocar 2 controles ImageList en el formulario

Listo!!!
Ahora slo falta escribir un poquito para llenar de datos los controles y para que adems funcionen...
http://www.desarrolladoras.com - info@desarrolladoras.com

Principales

Propiedades, Mtodos y Eventos


de algunos Controles

http://www.desarrolladoras.com - info@desarrolladoras.com

Principales Propiedades, Mtodos y Eventos de algunos controles

ImageList
Propiedades

Images: Coleccin de imgenes, aqu se cargan los


Iconos

ImageSize: Cambiando esta propiedad podemos hacer


que los Iconos se vean mas chicos o mas grandes

http://www.desarrolladoras.com - info@desarrolladoras.com

Principales Propiedades, Mtodos y Eventos de algunos controles

TreeView
Propiedades

ImageList: Asignar el nombre del ImageList del cual se


van a tomar los Iconos a mostrar

ItemHeight: Altura de cada nodo

http://www.desarrolladoras.com - info@desarrolladoras.com

Principales Propiedades, Mtodos y Eventos de algunos controles TreeView


Propiedades

Nodes: Coleccin de nodos, creamos los nodos, le


asignamos el texto a mostrar y el ndice de icono. Tambin podemos hacer esto por cdigo

SelectedNode: Nodo seleccionado en un instante dado

http://www.desarrolladoras.com - info@desarrolladoras.com

Principales Propiedades, Mtodos y Eventos de algunos controles

TreeView
Mtodos

GetNodeAt: Devuelve el nodo, si existe, que se


encuentra en el lugar donde se hizo click en base a las coordenadas x e y

ExpandAll: Expande todos los nodos del rbol

http://www.desarrolladoras.com - info@desarrolladoras.com

Principales Propiedades, Mtodos y Eventos de algunos controles TreeView


Eventos

AfterSelected: Se produce luego de seleccionar un


nuevo nodo

MouseDown: Se produce al presionar cualquier botn


del mouse. Lo utilizamos para saber si hizo click sobre un nodo o no y para cambiar de nodo seleccionado apretando cualquier botn del mouse

http://www.desarrolladoras.com - info@desarrolladoras.com

Principales Propiedades, Mtodos y Eventos de algunos controles ListView


Propiedades

LargeImageList: Asignar el nombre del ImageList del


cual se van a tomar los Iconos a mostrar de tamao grande

SmallImageList: Asignar el nombre del ImageList del


cual se van a tomar los Iconos a mostrar de tamao pequeo

http://www.desarrolladoras.com - info@desarrolladoras.com

Principales Propiedades, Mtodos y Eventos de algunos controles

ListView
Propiedades

View: Estilo de Vista en la que se muestra el ListView


SelectedItems: Coleccin de elementos seleccionados
en el control en un instante dado

http://www.desarrolladoras.com - info@desarrolladoras.com

Principales Propiedades, Mtodos y Eventos de algunos controles

ListView
Eventos

SelectedIndexChanged: Se produce al cambiar el


elemento seleccionado

http://www.desarrolladoras.com - info@desarrolladoras.com

Principales Propiedades, Mtodos y Eventos de algunos controles

Splitter
Eventos

SplitterMoved: Se produce al arrastrar el Splitter

http://www.desarrolladoras.com - info@desarrolladoras.com

Links tiles:
Universidad.Net: http://www.microsoft.com/spanish/msdn/comunidad/uni.net/ Sitio de Microsoft dedicado a .Net Windows Forms: http://www.windowsforms.net Data Access Aplication Blocks: http://msdn.microsoft.com/library/en-us/dnbda/html/daabrm.asp?frame=true http://www.gotdotnet.com/Workspaces/Workspace.aspx?id=c20d12b0af52-402b-9b7c-aaeb21d1f431 Desarrollador Cinco Estrellas: http://www.microsoft.com/spanish/msdn/comunidad/dce/default.asp

PanoramaBox: http://www.panoramabox.com/

http://www.desarrolladoras.com - info@desarrolladoras.com

http://www.desarrolladoras.com - info@desarrolladoras.com

Muchas Gracias

desarrolladoras
www.desarrolladoras.com

http://www.desarrolladoras.com - info@desarrolladoras.com

Clases Instanciadas versus Clases Compartidas

http://www.desarrolladoras.com - info@desarrolladoras.com

Clases Compartidas
1. Las clases NO pueden ser compartidas. Sus mtodos, propiedades y variables SI pueden serlo 2. Para que un Mtodo, Propiedad y/o Variable sean compartidos debemos calificarlos con la palabra reservada SHARED 3. Un Mtodo, Propiedad y/o Variable compartidos pueden ser usados en cualquier parte del cdigo sin necesidad de crear un nuevo objeto, haciendo referencia al mismo a travs del nombre de la clase. Ej: MiClase.MiMetodo()

http://www.desarrolladoras.com - info@desarrolladoras.com

Clases Compartidas
Public Class MiClase Public Shared MiVariable As String Public Shared Sub MiMetodo() MiVariable = "Hola Mundo" End Sub Public Class OtraClase End Class Public Sub OtroMetodo() MiClase.MiVariable = "Hola Gente" MiClase.MiMetodo() End Sub End Class
http://www.desarrolladoras.com - info@desarrolladoras.com

Clases Instanciadas
1. Las clases tal cual las definimos normalmente sern instanciadas mientras NO le agreguemos a algunos de sus miembros el calificativo SHARED (Algunos miembros podrn ser SHARED y a los mismos los podremos invocar a travs del nombre de la Clase) 2. Para acceder a sus miembros, Mtodos, Propiedades y/o Variables deberemos crear un objeto de esa Clase. Crearemos una nueva instancia. 3. Los Mtodos, Propiedades y/o Variables de estas clases pueden ser usados en cualquier parte del cdigo a travs de la variable de objeto creada a partir de esta clase.

http://www.desarrolladoras.com - info@desarrolladoras.com

Clases Instanciadas
Public Class MiClase Public MiVariable As String Public Sub MiMetodo() MiVariable = "Hola Mundo" End Sub Public Class OtraClase End Class Public Sub OtroMetodo() Dim obj As MiClase = New MiClase obj.MiVariable = "Hola Gente" obj.MiMetodo() End Sub

End Class
http://www.desarrolladoras.com - info@desarrolladoras.com

También podría gustarte