Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Una Aplicacion en 3 Capas
Una Aplicacion en 3 Capas
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 ?
http://www.desarrolladoras.com - info@desarrolladoras.com
Temas a tratar....
si llegamos a tiempo!
DataSet tipados
Donde almacenamos la cadena de conexin
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
Negocio
Reglas y Entidades
Datos
DAAB
Usuario
Aplicacin
Repositorio de Datos
http://www.desarrolladoras.com - info@desarrolladoras.com
Capas
Cliente
Entidades
Clases bases y sus heredades que definen los objetos a utilizar en la aplicacin: Cliente, Proveedor, Factura, etc.
Tipo de proyecto
Aplicacin para Windows Biblioteca de Clases Biblioteca de Clases Datos Biblioteca de Clases Existente
http://www.desarrolladoras.com - info@desarrolladoras.com
ALU
DATOS
Cliente
Proyecto
Capa
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
http://www.desarrolladoras.com - info@desarrolladoras.com
http://www.desarrolladoras.com - info@desarrolladoras.com
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
y..... LISTO!!!!!
http://www.desarrolladoras.com - info@desarrolladoras.com
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
Para facilitarnos...
LA VIDA!
http://www.desarrolladoras.com - info@desarrolladoras.com
http://www.desarrolladoras.com - info@desarrolladoras.com
TCliente
Nombre del Campo Nombre Direccion Saldo Clave Sucursal Tipo del Campo varchar varchar decimal varbinary smallint
La tabla ser
dstCliente.TCliente
http://www.desarrolladoras.com - info@desarrolladoras.com
ComboBox1.DataSource = dstCliente.TCliente
donde antes escribamos
txtnombre.Text = dstCliente.TCliente(n).Nombre
http://www.desarrolladoras.com - info@desarrolladoras.com
http://www.desarrolladoras.com - info@desarrolladoras.com
ALUMNOS
http://www.desarrolladoras.com - info@desarrolladoras.com
http://www.desarrolladoras.com - info@desarrolladoras.com
</appSettings>
http://www.desarrolladoras.com - info@desarrolladoras.com
http://www.desarrolladoras.com - info@desarrolladoras.com
http://www.desarrolladoras.com - info@desarrolladoras.com
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
Borrar
GuardarValor
http://www.desarrolladoras.com - info@desarrolladoras.com
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
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
http://www.desarrolladoras.com - info@desarrolladoras.com
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
http://www.desarrolladoras.com - info@desarrolladoras.com
http://www.desarrolladoras.com - info@desarrolladoras.com
http://www.desarrolladoras.com - info@desarrolladoras.com
http://www.desarrolladoras.com - info@desarrolladoras.com
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
#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
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
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!
http://www.desarrolladoras.com - info@desarrolladoras.com
http://www.desarrolladoras.com - info@desarrolladoras.com
7. Colocar otro control Panel dentro del primer Panel y cambiar su propiedad Dock a Fill
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
http://www.desarrolladoras.com - info@desarrolladoras.com
ImageList
Propiedades
http://www.desarrolladoras.com - info@desarrolladoras.com
TreeView
Propiedades
http://www.desarrolladoras.com - info@desarrolladoras.com
http://www.desarrolladoras.com - info@desarrolladoras.com
TreeView
Mtodos
http://www.desarrolladoras.com - info@desarrolladoras.com
http://www.desarrolladoras.com - info@desarrolladoras.com
http://www.desarrolladoras.com - info@desarrolladoras.com
ListView
Propiedades
http://www.desarrolladoras.com - info@desarrolladoras.com
ListView
Eventos
http://www.desarrolladoras.com - info@desarrolladoras.com
Splitter
Eventos
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
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