SlideShare una empresa de Scribd logo
1 de 13
DLL’s<br />Una definición más profunda de .NET<br />1072515531495La mejor forma de comprender cómo funciona .NET es analizar las numerosas capas en las que se divide .NET Framework. Veamos la siguiente figura:<br />No te asustes con lo que vas a leer aquí, es obligatorio que lo veamos por encima, al terminar el tema, vuelve a leer esto y veras que sencillo era.<br />Como hemos comentado antes .NET Framework constituye la base sobre la que se asienta .NET. Para nosotros es la pieza fundamental de esta nueva tecnología y es la que nos va a proporcionar las herramientas y servicios que necesitaremos en nuestros desarrollos. Podemos agrupar en tres bloques el conjunto de herramientas y servicios:<br />El runtime de lenguaje común o entorno de ejecución común (CLR)<br />Biblioteca de clases base de la plataforma .NET (.NET Framework Base Classes)<br />Motor de generación de la interfaz para crear formularios e interfaces de usuario.<br />Estas son tres de las capas del esquema anterior. Simplemente esa jerarquía me dice que en el nivel mas alto están los lenguajes que vamos a utilizar en nuestro desarrollo con .NET que pueden ser varios (en nuestro caso Visual Basic). Luego traduce esas instrucciones al estándar .NET para poder trabajar con esas instrucciones de una forma independiente al lenguaje con que se escribieron. El siguiente paso es la generación de formularios para Windows o web (ASP). Luego el enlace con bases de datos si las hay. Por fin llegamos a todos los objetos disponibles y por último el runtime de lenguaje común (CLR) que es el que va a ejecutar la aplicación. Veamos ahora más técnicamente de abajo hacia arriba:<br />1. Runtime del lenguaje común<br />El runtime del lenguaje común es la primera capa que pertenece a .NET Framework. Esta capa es la responsable de los servicios básicos de .NET, tales como la administración de memoria, la recolección de los elementos no utilizados, el control estructurado de excepciones y del subprocesamiento múltiple. Si .NET se transporta a otras arquitecturas que no estén basadas en Windows el primer paso sería escribir un runtime  del lenguaje para el nuevo equipo. El CLR tiene estas características:<br />Proporciona mejoras para el programador que antes tenía que elaborar<br />Administra el código en tiempo de ejecución: carga en memoria, liberación de memoria, ...<br />Gestiona la seguridad del código ejecutado<br />Abre posibilidades a otros fabricantes para incorporar sus lenguajes<br />Facilita la distribución e instalación de aplicaciones. Elimina los temibles conflictos de DLL's y versiones de ellas<br />Es la interfaz entre nuestro código y el sistema operativo, de ahí que si mañana Microsoft hace un CLR en lugar de para Windows, para Macintosh se puedan ejecutar nuestras aplicaciones .NET en este sistema.<br />2. Biblioteca de clases<br />La biblioteca de clases base (BCL) es la parte de .NET Framework que define todos los tipos de datos básicos, tales como System.Object (raíz de la jerarquía de objetos .NET), tipos numéricos y de fechas, tipo string, matrices y colecciones. La BCL contiene también clases que administrarán las características centrales de .NET: entrada/salida de archivos , subprocesamiento, serialización y seguridad. La forma en la que los tipos se implementan en la BCL siguen las especificaciones llamadas Common Type System (CTS). Por ejemplo, estas especificaciones dicta la forma en la que un tipo .NET expone campos, propiedades, métodos y sucesos, también cómo un tipo puede heredar otro tipo... <br />Tranquilo... a lo largo del curso veremos estas clases y por fuerza trabajaremos con ellas porque todo en .NET son clases: desde un gráfico, un botón o nuestro programa.<br />3. Capa de datos<br />La capa de datos y XML contienen las clases .NET que trabajan con bases de datos y con XML. Anteriormente el soporte XML era una compatibilidad proporcionada por un componente externo. En .NET vemos cómo está integrado en su mismo núcleo. Podemos decir que XML es el formato que utiliza .NET para almacenar cualquier tipo de información. La parte de datos es la que se conoce como ADO.NET y es el equivalente en .NET a la tecnología ActiveX Data Object (ADO), ampliamente conocida por los programadores de Visual Basic, Intranets, ...<br />Nota para los conocedores de ADO: Aunque su nombre es muy parecido a ADO.NET son muy diferentes. ADO cubre prácticamente todas las técnicas de bases de datos disponibles (incluyendo cursores del lado del cliente y del servidor, conjuntos de datos desconectados y actualizaciones en diferido). ADO.NET está centrado principalmente en los conjuntos de resultados desconectados (llamados DataSets) Este objeto es mucho mas potente que el objeto ADO Recordset y puede almacenar datos provenientes de varias tablas, relaciones entre diferentes tablas de datos y puede importar y exportar datos en XML.<br />4. Capa de formularios y ASP<br />Las dos capas siguientes son ASP.NET y Windows Forms. Aquí se sitúan todas las clases que podremos utilizar para generar las páginas web en el primer caso y las ventanas estándares o formularios en las aplicaciones de Windows en el segundo caso.<br />Nota ASP.NET es la parte de .NET encargada del desarrollo en web. Una evolución muy ampliada de las páginas ASP y comprende los web forms y los servicios web XML. No lo veremos en este curso pero el salto a desarrollar en Web es muy sencillo...<br />Aunque estén en el mismo nivel las tecnologías son muy distintas. Web Forms se ejecuta en el servidor y produce HTML y es la base de las conocidas Intranets donde estas páginas devuelven otras páginas web con conjuntos de resultados u otros datos. Windows Forms se ejecuta en el cliente, un equipo Windows. <br />La  biblioteca de clases de .NET Framework está formada por una colección de ensamblados (o Assembly), cada uno de los cuales comprende una o más DLL. Veamos que esto de un quot;
ensambladoquot;
...<br />Un ensamblado consiste en un conjunto de tipos y recursos reunidos para formar la unidad mas elemental de código que puede ejecutar el entorno .NET Framework. Estos ensamblados son los elementos con los que construiremos una aplicación: una aplicación .NET se compone de varios ensamblados. Podemos llamar también a un ensamblado como una DLL lógica (recordamos que una DLL es una biblioteca de enlaces dinámicos). Decimos lógica porque se trata de una lista de ficheros que se referencian en tiempo de ejecución pero que no se compilan para producir un fichero físico, a diferencia de las DLL's tradicionales. Un ensamblado va mucho más allá ya que puede contener otros recursos además de clases como imágenes, ...<br />5. Capas de CLS y lenguajes<br />Donde están las especificaciones de los lenguajes y su sincronización con el entorno .NET<br />2891790-12065Empezaremos con el siguiente Ejemplo:            Jojojojo<br />Paso 1: Debemos contar con un modelo relacional, y orientarlo a este caso, esto le será proporcionado por su asesor. (Script de Base de Datos SQL Server SysInventario), pero antes deberá crear una carpeta en el escritorio, llamado: MANTENIMIENTO  y dentro de el 2 Sub Carpetas: DLL y FORMULARIOS<br />Paso 2: Adicionalmente Crear los Siguientes Procedimientos Almacenados en SQL:<br />Create Procedure SpGrabar_Foto@Parametro   Varchar(50),@Fot         Image,@Id          Varchar(10)As    IF @Parametro='RAM' Update RAM Set Imagen=@Fot Where RamId=@Id    IF @Parametro='PROCESADOR' Update PROCESADOR Set Imagen=@Fot Where ProcesadorID=@Id    IF @Parametro='DISCO_HDOP' Update DISCO_HDOP Set Imagen=@Fot Where DiscoID=@Id    IF @Parametro='TARJETA' Update TARJETA Set Imagen=@Fot Where TarjetaID=@Id    IF @Parametro='FUENTE' Update FUENTE Set Imagen=@Fot Where FuenteID=@Id    IF @Parametro='FLOPPY' Update FLOPPY Set Imagen=@Fot Where FloppyID=@Id    IF @Parametro='XCASE' Update XCASE Set Imagen=@Fot Where CaseID=@Id    IF @Parametro='MAINBOARD' Update MAINBOARD Set Imagen=@Fot Where MainBoardID=@Id    IF @Parametro='IMPRESORA' Update IMPRESORA Set Imagen=@Fot Where ImpresoraID=@Id    IF @Parametro='MOUSE' Update MOUSE Set Imagen=@Fot Where MouseID=@Id    IF @Parametro='TECLADO' Update TECLADO Set Imagen=@Fot Where TecladoID=@Id    IF @Parametro='MONITOR' Update MONITOR Set Imagen=@Fot Where MonitorID=@Id    IF @Parametro='EMPLEADO' Update EMPLEADO Set FotoImg=@Fot Where EmpleadoID=@Id    IF @Parametro='MARCA' Update MARCA Set Imagen=@Fot Where MarcaID=@IdGoCREATE PROCEDURE Sp_Generador@Param VARCHAR(50),@CodGen VARCHAR(10) OUTPUTAS    DECLARE @ULT INT,@CEROS INT    IF @Param IN ('RAM','PROCESADOR','DISCO_HDOP','TARJETA','CPU',                  'FUENTE','MAINBOARD','IMPRESORA','EMPLEADO','XCASE')    Begin        SELECT @Ult=ULTIMO+1 FROM GENERADOR WHERE Parametro=@Param        SET @CEROS=9 - LEN(CONVERT(VARCHAR,@Ult))SET @CodGen=LEFT(@Param,1)+REPLICATE('0',@CEROS)+CONVERT(VARCHAR,@Ult)    End    IF @Param IN ('MONITOR','TECLADO')    Begin        SELECT @Ult=ULTIMO+1 FROM GENERADOR WHERE Parametro=@Param        SET @CEROS=8 - LEN(CONVERT(VARCHAR,@Ult))SET @CodGen=LEFT(@Param,1)+REPLICATE('0',@CEROS)+CONVERT(VARCHAR,@Ult)    End    IF @Param IN ('MARCA')    Begin        SELECT @Ult=ULTIMO+1 FROM GENERADOR WHERE Parametro=@Param        SET @CEROS=7 - LEN(CONVERT(VARCHAR,@Ult))SET @CodGen=LEFT(@Param,1)+REPLICATE('0',@CEROS)+CONVERT(VARCHAR,@Ult)    End    IF @Param IN ('MOUSE')    Begin        SELECT @Ult=ULTIMO+1 FROM GENERADOR WHERE Parametro=@Param        SET @CEROS=6 - LEN(CONVERT(VARCHAR,@Ult))SET @CodGen=LEFT(@Param,1)+REPLICATE('0',@CEROS)+CONVERT(VARCHAR,@Ult)    End    UPDATE Generador SET Ultimo=@Ult WHERE Parametro=@ParamGoCreate Procedure SpListadoRamAs   Select * From RAMGo<br />-3810377825Paso 3: Ahora ingresemos a Visual Basic NET, y crearemos un proyecto orientado a Bibliotecas de Clase, llamado DLL_MAN1, así como se muestra en la Imagen:<br />Cuando Aceptemos, observaremos el siguiente entorno:<br />-38103810<br />Propiedad: Nombre de Archivo: DLL_MantenimientoY cambiara el nombre de la clase por igualAquí debemos cambiar el nombre de la Clase por: DLL_Mantenimiento, y deberá quedar de la siguiente manera:<br />5664835-90170Grabe el Proyecto DLL  en la carpeta DLL del paso 1 haciendo clic en el botón Guardar Todo:<br />-381014605<br />Finalice el proceso haciendo clic en Guardar.<br />Paso 4:  Empecemos a Programar dicha biblioteca, agregando el siguiente espacio:<br />Imports System.Data.SqlClient<br />Defina las siguientes variables a nivel de clase:<br />Crear Las Siguientes FuncionesPublic Shared Function AplicarCadenaConexion() As SqlConnection      Dim SconnectionString As String =                          (quot;
Server=LocalHost;Uid=SA;Password=123;Database=SysInventarioquot;
)      Return New SqlConnection(SconnectionString)End Function    Public Function ListadoRAM() As DataTable        Try            Dim DaListadoRAM As New SqlDataAdapter            Dim DsListado As New DataSet            DaListadoRAM.SelectCommand = New SqlCommand            With DaListadoRAM.SelectCommand                .Connection = AplicarCadenaConexion()                .CommandType = CommandType.StoredProcedure                .CommandText = quot;
SpListadoRamquot;
            End With            DaListadoRAM.Fill(DsListado, quot;
ListaRamquot;
)            Return DsListado.Tables(quot;
ListaRamquot;
)        Catch ex As Exception            MsgBox(ex.Message)        End Try    End Function    Public Function DeleteRam(ByVal Rid As String) As Integer        Try            Dim Dat As New ClsDatos            Dim Conexion As SqlConnection = AplicarCadenaConexion()            Dim CadenaUpdate As String = quot;
UPDATE Ram Set Estado=0 Where RamID=@Ridxquot;
            Conexion.Open()            Dim CMD As New SqlCommand(CadenaUpdate, Conexion)            With CMD.Parameters                .AddWithValue(quot;
@Ridxquot;
, Rid)            End With            CMD.ExecuteNonQuery()            Conexion.Close()            MsgBox(quot;
Dato InHabilitado Corectamentequot;
, MsgBoxStyle.Information)            Return 0        Catch ex As Exception            MsgBox(ex.Message)            Return 1        End Try    End Function<br />    Public Function SelectRam(ByVal Rid As String) As ClsDatos        Dim Dat As New ClsDatos        Dim DrRam As SqlDataReader        Dim Conexion As SqlConnection = AplicarCadenaConexion()        Dim CadenaSelect As String        CadenaSelect = quot;
Select RamID,Modelo,MarcaID,Serie,Tipo,Capacidad, quot;
 _             & quot;
VelocBus,Imagen,Imagensitio,Estado quot;
 _             & quot;
From RAM Where RamID=@Ridquot;
        Conexion.Open()        Dim CmdRam As New SqlCommand(CadenaSelect, Conexion)        CmdRam.Parameters.AddWithValue(quot;
@Ridquot;
, Rid)        DrRam = CmdRam.ExecuteReader        If DrRam.Read Then            Dat.Rid = DrRam(quot;
RamIDquot;
).ToString            Dat.Mode = DrRam(quot;
Modeloquot;
).ToString            Dat.MarcId = DrRam(quot;
MarcaIdquot;
).ToString            Dat.Ser = DrRam(quot;
Seriequot;
).ToString            Dat.Tip = DrRam(quot;
Tipoquot;
).ToString            Dat.Capac = DrRam(quot;
Capacidadquot;
).ToString            Dat.Veloc = DrRam(quot;
VelocBusquot;
).ToString            Dat.Img = DrRam(quot;
Imagenquot;
).ToString            Dat.ImgSitio = DrRam(quot;
ImagenSitioquot;
).ToString            Dat.Est = DrRam(quot;
Estadoquot;
).ToString        End If        Return Dat        Conexion.Close()    End FunctionCrear el Siguiente ProcedimientoPublic Sub InsertUpdateRam(ByVal Dat As ClsDatos)   Try        Select Case Dat.Condicion        Case quot;
Iquot;
            Dim Conexion As SqlConnection = AplicarCadenaConexion()            Dim CadenaInsert As String = quot;
Insert Into RAM(RamId,Modelo,MarcaId,quot;
 + _            quot;
Serie,Tipo,Capacidad,VelocBus,Imagen,ImagenSitio,Estado) quot;
 + _            quot;
Values (@Rid,@Model,@MarId,@Ser,@Tip,@Cap,@Veloc,NULL,NULL,@Est)quot;
            Conexion.Open()            Dim CMD As New SqlCommand(CadenaInsert, Conexion)            With CMD.Parameters              .AddWithValue(quot;
@Ridquot;
, Dat.Rid)              .AddWithValue(quot;
@Modelquot;
, Dat.Mode)              .AddWithValue(quot;
@MarIdquot;
, Dat.MarcId)              .AddWithValue(quot;
@Serquot;
, Dat.Ser)              .AddWithValue(quot;
@Tipquot;
, Dat.Tip)              .AddWithValue(quot;
@Capquot;
, Dat.Capac)              .AddWithValue(quot;
@Velocquot;
, Dat.Veloc)              '.AddWithValue(quot;
@Img1quot;
, Dat.Img)              '.AddWithValue(quot;
@Img2quot;
, Dat.ImgSitio)              .AddWithValue(quot;
@Estquot;
, Dat.Est)            End With            CMD.ExecuteNonQuery()            Conexion.Close()            MsgBox(quot;
Datos almacenados Correctamentequot;
, MsgBoxStyle.Information)        Case quot;
Uquot;
            Dim Conexion As SqlConnection = AplicarCadenaConexion()            Dim CadenaUpdate As String = quot;
UPDATE Ram Set Modelo=@Model,MarcaId=@MarId,quot;
 + _            quot;
Serie=@Ser,Tipo=@Tip,Capacidad=@Cap,VelocBus=@Veloc,Imagen=NULL,quot;
 + _            quot;
ImagenSitio=NULL,Estado=@Est Where RamID=@Ridquot;
            Conexion.Open()            Dim CMD As New SqlCommand(CadenaUpdate, Conexion)            With CMD.Parameters               .AddWithValue(quot;
@Ridquot;
, Dat.Rid)               .AddWithValue(quot;
@Modelquot;
, Dat.Mode)               .AddWithValue(quot;
@MarIdquot;
, Dat.MarcId)               .AddWithValue(quot;
@Serquot;
, Dat.Ser)               .AddWithValue(quot;
@Tipquot;
, Dat.Tip)               .AddWithValue(quot;
@Capquot;
, Dat.Capac)               .AddWithValue(quot;
@Velocquot;
, Dat.Veloc)               '.AddWithValue(quot;
@Img1quot;
, Dat.Img)                   '.AddWithValue(quot;
@Img2quot;
, Dat.ImgSitio)                   .AddWithValue(quot;
@Estquot;
, Dat.Est)              End With              CMD.ExecuteNonQuery()              Conexion.Close()              MsgBox(quot;
Datos Actualizados Corectamentequot;
, MsgBoxStyle.Information)           End Select   Catch ex As Exception            MsgBox(ex.Message)   End TryEnd Sub<br />Paso 5: En el mismo proyecto agregar una nueva Clase con el nombre: CLSDATOS y este contendrá el siguiente código:<br />Public Class ClsDatos    Public Condicion As String    Public Rid As String    Public Mode As String    Public MarcId As String    Public Ser As String    Public Tip As String    Public Capac As String    Public Veloc As String    Public Img As String    Public ImgSitio As String    Public Est As IntegerEnd Class<br />Seleccione Generar DLL_Man1, y luego espero unos segundos, para que genere nuestra DLL.Paso 6: Ahora después de culminar el 5to paso, proceda a generar la DLL, es decir nuestro archivo soporte que contendrá encriptado todo nuestro código basado en clases.<br />Para verificar que nuestra DLL esta creada, debemos buscarla en la carpeta RELEASE, de nuestro proyecto, esta estará dentro de la carpeta BIN <br />-3810-2540<br />-3810538480Después de verificar la creación de nuestra DLL, procederemos a crear un nuevo proyecto basado en Aplicación para Windows (Visual Basic NET).  El Nombre de Nuestro Proyecto Nuevo: SYSINVENTARIO<br />Cuando nuestro proyecto este creado, debemos agregar nuestra DLL (DLL_Man1) a nuestro proyecto, realice la siguiente operación: PROYECTO - > AGREGAR REFERENCIA<br />967740-5715<br />Lo cual nos lleva a la siguiente ventana: aquí debemos seleccionar la pestaña EXAMINAR, luego buscamos nuestra DLL en la carpeta RELEASE de nuestro proyecto anterior, la seleccionamos y aceptamos, con esto nuestra DLL formara parte de nuestro proyecto, así podremos usar el código encriptado que se encuentra en su interior.<br />52959085725<br />1291590898525Aquí esta nuestra DLL, agregada como referencia.Ahora verifiquemos que nuestra DLL esta agregada a nuestro proyecto, esto dependerá única y exclusivamente de nuestro EXPLORADOR DE SOLUCIONES, esta ventanita muestra por defecto solo los componentes creados por el usuario, y de forma reservada oculta algunos componentes, en la parte superior de esta ventanita existe algunos iconos, hagamos clic en el icono “MOSTRAR TODOS LOS ARCHIVOS”, tiene la siguiente forma:<br />53340125730<br />Ahora Diseñemos Nuestro Formulario:<br />-381019050<br />Luego Diseñar el Siguiente Formulario, usando los controles ya definidos.<br />Este formulario llevara el nombre: FrmRam, el cual estará compuesto por los siguientes objetos: 7 cajas de textos (Sin cambiar nombre), 2 combos (Sin Cambiar nombre) y 5 botones comandos (BtnGrabar, BtnActualizar, BrnConsultar, BtnEliminar, BtnListado). Un DatagridView (DtgRAM) y un control Picturebox1 (Sin cambiar nombre)<br />Ahora procederemos a programar el formulario.<br />Agregar EL siguiente Espacio referencia de SQL ServerImports System.Data.SqlClient    Dim ObjRefMante As New Dll_Man1.Dll_Mantenimiento    Dim ObjRefCaptura As New Dll_Man1.ClsDatos    Dim DsEntorno As New DataSet    Dim Cn As New                SqlConnection(quot;
Server=LocalHost;Uid=Sa;Password=123;Database=SysInventarioquot;
)    Dim DaMarca As New SqlDataAdapter(quot;
Select * From Marcaquot;
, Cn)Form Load        DaMarca.Fill(DsEntorno, quot;
Marcaquot;
)        ComboBox1.DataSource = DsEntorno.Tables(quot;
Marcaquot;
)        ComboBox1.DisplayMember = quot;
DesMarcaquot;
        ComboBox1.ValueMember = quot;
MarcaIDquot;
        ComboBox2.Items.Add(quot;
Habilitadoquot;
)        ComboBox2.Items.Add(quot;
InHabilitadoquot;
)BtnGrabar (Click) Try   If MessageBox.Show(quot;
Desea Grabarquot;
, quot;
Seleccione Su Opcionquot;
, MessageBoxButtons.YesNo,                             MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes Then                Dim CmdEjecutar As New SqlCommand(quot;
Sp_Generadorquot;
, Cn)                Dim PrmParametro As New SqlParameter                Cn.Open()                With CmdEjecutar                    .CommandType = CommandType.StoredProcedure                    PrmParametro = .Parameters.Add(quot;
@Paramquot;
, SqlDbType.VarChar, 50)                    PrmParametro.Value = quot;
RAMquot;
                    PrmParametro = .Parameters.Add(quot;
@CodGenquot;
, SqlDbType.VarChar, 10)                    PrmParametro.Direction = ParameterDirection.Output                    PrmParametro.Value = quot;
quot;
                    .ExecuteNonQuery()                    ObjRefCaptura.Rid = .Parameters(1).Value                End With                CmdEjecutar.Dispose()                Cn.Close()                ObjRefCaptura.Condicion = quot;
Iquot;
                Me.TextBox1.Text = ObjRefCaptura.Rid                ObjRefCaptura.Mode = Me.TextBox2.Text                ObjRefCaptura.MarcId = ComboBox1.SelectedValue                ObjRefCaptura.Ser = Me.TextBox3.Text                ObjRefCaptura.Tip = Me.TextBox4.Text                ObjRefCaptura.Capac = Me.TextBox5.Text                ObjRefCaptura.Veloc = Me.TextBox6.Text                ObjRefCaptura.Img = DBNull.Value.ToString                ObjRefCaptura.ImgSitio = DBNull.Value.ToString                ObjRefCaptura.Est = IIf(ComboBox2.SelectedIndex = 0, 1, 0)                ObjRefMante.InsertUpdateRam(ObjRefCaptura)            End IfCatch Ex As Exception            MessageBox.Show(Ex.Message)End TryBtnConsultar (Click)        Try            Dim ABC As New Dll_Man1.ClsDatos            ABC = ObjRefMante.SelectRam(Me.TextBox1.Text)            Me.TextBox1.Text = ABC.Rid            Me.TextBox2.Text = ABC.Mode            Me.ComboBox1.SelectedValue = ABC.MarcId            Me.TextBox3.Text = ABC.Ser            Me.TextBox4.Text = ABC.Tip            Me.TextBox5.Text = ABC.Capac            Me.TextBox6.Text = ABC.Veloc            Me.TextBox7.Text = ABC.Img            'ABC.ImgSitio            Me.ComboBox2.Text = IIf(ABC.Est = 0, quot;
InHabilitadoquot;
, quot;
Habilitadoquot;
)        Catch Ex As Exception            MessageBox.Show(Ex.Message)        End TryBtnActualizar (Click)Try  If MessageBox.Show(quot;
Desea Actualizarquot;
, quot;
Seleccione Su Opcionquot;
, MessageBoxButtons.YesNo,      MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes Then                ObjRefCaptura.Condicion = quot;
Uquot;
                ObjRefCaptura.Rid = Me.TextBox1.Text                ObjRefCaptura.Mode = Me.TextBox2.Text                ObjRefCaptura.MarcId = ComboBox1.SelectedValue                ObjRefCaptura.Ser = Me.TextBox3.Text                ObjRefCaptura.Tip = Me.TextBox4.Text                ObjRefCaptura.Capac = Me.TextBox5.Text                ObjRefCaptura.Veloc = Me.TextBox6.Text                ObjRefCaptura.Img = DBNull.Value.ToString                ObjRefCaptura.ImgSitio = DBNull.Value.ToString                ObjRefCaptura.Est = IIf(ComboBox2.SelectedIndex = 0, 1, 0)                ObjRefMante.InsertUpdateRam(ObjRefCaptura)   End IfCatch Ex As Exception         MessageBox.Show(Ex.Message)End TryBtnEliminar(Click)        Dim R As Integer        R = ObjRefMante.DeleteRam(Me.TextBox1.Text)        If R = 0 Then            Me.ComboBox2.Text = quot;
InHabilitadoquot;
        Else            Me.ComboBox2.Text = quot;
Habilitadoquot;
        End IfDtgRAM(Click)DtgRAM.DataSource = ObjRefMante.ListadoRAM<br />
DLL's y capas de .NET
DLL's y capas de .NET
DLL's y capas de .NET
DLL's y capas de .NET
DLL's y capas de .NET
DLL's y capas de .NET
DLL's y capas de .NET
DLL's y capas de .NET
DLL's y capas de .NET
DLL's y capas de .NET
DLL's y capas de .NET
DLL's y capas de .NET

Más contenido relacionado

La actualidad más candente

Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colasknowallrpa
 
Diagrama entidad-relacion normalización
Diagrama entidad-relacion normalizaciónDiagrama entidad-relacion normalización
Diagrama entidad-relacion normalizacióncintiap25
 
Tipos de Modelos de Datos : Ventajas y Desventajas
Tipos de Modelos de Datos : Ventajas y DesventajasTipos de Modelos de Datos : Ventajas y Desventajas
Tipos de Modelos de Datos : Ventajas y DesventajasJuanMiguelCustodioMo
 
Algoritmos de ordenamiento externo sobre archivos
Algoritmos de ordenamiento externo sobre archivosAlgoritmos de ordenamiento externo sobre archivos
Algoritmos de ordenamiento externo sobre archivosDaniel Gomez Jaramillo
 
Procesos e Hilos en los Sistemas Operativos
Procesos e Hilos en los Sistemas OperativosProcesos e Hilos en los Sistemas Operativos
Procesos e Hilos en los Sistemas OperativosEmmanuel Fortuna
 
Funciones de administracion de memoria
Funciones de administracion de memoriaFunciones de administracion de memoria
Funciones de administracion de memoriaMiguel Magaña
 
Sockets y canales
Sockets y canalesSockets y canales
Sockets y canalesJuan Anaya
 
Tipos y ámbitos de grupo (windows server
Tipos y ámbitos de grupo (windows serverTipos y ámbitos de grupo (windows server
Tipos y ámbitos de grupo (windows servercesartg65
 
Método de Búsqueda Hash
Método de Búsqueda HashMétodo de Búsqueda Hash
Método de Búsqueda HashBlanca Parra
 
Linux standard file system
Linux standard file systemLinux standard file system
Linux standard file systemTaaanu01
 

La actualidad más candente (20)

Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colas
 
Diagrama entidad-relacion normalización
Diagrama entidad-relacion normalizaciónDiagrama entidad-relacion normalización
Diagrama entidad-relacion normalización
 
TELEPROCESOS
TELEPROCESOSTELEPROCESOS
TELEPROCESOS
 
Tipos de Modelos de Datos : Ventajas y Desventajas
Tipos de Modelos de Datos : Ventajas y DesventajasTipos de Modelos de Datos : Ventajas y Desventajas
Tipos de Modelos de Datos : Ventajas y Desventajas
 
Estructura de registros
Estructura de registrosEstructura de registros
Estructura de registros
 
Algoritmos de ordenamiento externo sobre archivos
Algoritmos de ordenamiento externo sobre archivosAlgoritmos de ordenamiento externo sobre archivos
Algoritmos de ordenamiento externo sobre archivos
 
Procesos e Hilos en los Sistemas Operativos
Procesos e Hilos en los Sistemas OperativosProcesos e Hilos en los Sistemas Operativos
Procesos e Hilos en los Sistemas Operativos
 
Árboles Multicamino, B y B+
Árboles Multicamino, B y B+Árboles Multicamino, B y B+
Árboles Multicamino, B y B+
 
Cuadro comparativo hilos
Cuadro comparativo hilosCuadro comparativo hilos
Cuadro comparativo hilos
 
Funciones de administracion de memoria
Funciones de administracion de memoriaFunciones de administracion de memoria
Funciones de administracion de memoria
 
Sistema de Archivos
Sistema de ArchivosSistema de Archivos
Sistema de Archivos
 
Acceso Directo de Memoria
Acceso Directo de MemoriaAcceso Directo de Memoria
Acceso Directo de Memoria
 
Sockets y canales
Sockets y canalesSockets y canales
Sockets y canales
 
Tipos y ámbitos de grupo (windows server
Tipos y ámbitos de grupo (windows serverTipos y ámbitos de grupo (windows server
Tipos y ámbitos de grupo (windows server
 
Árboles binarios, ABB y AVL
Árboles binarios, ABB y AVLÁrboles binarios, ABB y AVL
Árboles binarios, ABB y AVL
 
RPC
RPCRPC
RPC
 
Estandar 802.3
Estandar 802.3Estandar 802.3
Estandar 802.3
 
Método de Búsqueda Hash
Método de Búsqueda HashMétodo de Búsqueda Hash
Método de Búsqueda Hash
 
Linux standard file system
Linux standard file systemLinux standard file system
Linux standard file system
 
Organización aleatoria o indirecta
Organización aleatoria o indirectaOrganización aleatoria o indirecta
Organización aleatoria o indirecta
 

Destacado

Comandos ddl y dml
Comandos ddl y dmlComandos ddl y dml
Comandos ddl y dmlGerardo
 
SISTEMA DE FACTURACION (Ejemplo desarrollado)
SISTEMA DE FACTURACION (Ejemplo desarrollado)SISTEMA DE FACTURACION (Ejemplo desarrollado)
SISTEMA DE FACTURACION (Ejemplo desarrollado)Darwin Durand
 
Guia 4, creacion y consumo de bibliotecas de clase usando namespaces personal...
Guia 4, creacion y consumo de bibliotecas de clase usando namespaces personal...Guia 4, creacion y consumo de bibliotecas de clase usando namespaces personal...
Guia 4, creacion y consumo de bibliotecas de clase usando namespaces personal...Marvin Romero
 
CURSO DE PROGRAMACION AVANZADA EN JAVA EN ESPAÑOL
CURSO DE PROGRAMACION AVANZADA EN JAVA EN ESPAÑOLCURSO DE PROGRAMACION AVANZADA EN JAVA EN ESPAÑOL
CURSO DE PROGRAMACION AVANZADA EN JAVA EN ESPAÑOLDarwin Durand
 
PROYECTO PRUEBA DE CONEXIONES (Mantenimiento)
PROYECTO PRUEBA DE CONEXIONES (Mantenimiento)PROYECTO PRUEBA DE CONEXIONES (Mantenimiento)
PROYECTO PRUEBA DE CONEXIONES (Mantenimiento)Darwin Durand
 
SQL: DDL, DML y SQL
SQL: DDL, DML y SQLSQL: DDL, DML y SQL
SQL: DDL, DML y SQLCarmen Soler
 
Visual basic-Programacion en un entorno grafico.
Visual basic-Programacion en un entorno grafico.Visual basic-Programacion en un entorno grafico.
Visual basic-Programacion en un entorno grafico.Kenia Flores Cruz
 
Paquetes De Programacion
Paquetes De ProgramacionPaquetes De Programacion
Paquetes De Programaciontibu85
 
Ejemplos Borland C++ Builder
Ejemplos Borland C++ BuilderEjemplos Borland C++ Builder
Ejemplos Borland C++ BuilderDarwin Durand
 
Lenguajes programacion
Lenguajes programacionLenguajes programacion
Lenguajes programacionXavii Torres
 
Estudio comparativo de PHP, ASP.NET Y JAVA
Estudio comparativo de PHP, ASP.NET Y JAVAEstudio comparativo de PHP, ASP.NET Y JAVA
Estudio comparativo de PHP, ASP.NET Y JAVAHelmilpa
 
Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Giancarlo Aguilar
 
Practica de visual basic sistema de facturación
Practica de visual basic sistema de facturaciónPractica de visual basic sistema de facturación
Practica de visual basic sistema de facturaciónmilenka796
 
Caja de herramientas de visual basic
Caja de herramientas de visual basicCaja de herramientas de visual basic
Caja de herramientas de visual basicNoe Cayetano
 
Unidad 3 topicos avanzados de programacion
Unidad 3 topicos avanzados de programacionUnidad 3 topicos avanzados de programacion
Unidad 3 topicos avanzados de programacionIrving Che
 
CONEXION VISUAL STUDIO.NET - SQL SERVER
CONEXION VISUAL STUDIO.NET - SQL SERVERCONEXION VISUAL STUDIO.NET - SQL SERVER
CONEXION VISUAL STUDIO.NET - SQL SERVERDarwin Durand
 
Visual Basic .NET
Visual Basic .NETVisual Basic .NET
Visual Basic .NETDavid
 

Destacado (20)

Tutorial consumir DLL C++ en C#
Tutorial consumir DLL C++ en C#Tutorial consumir DLL C++ en C#
Tutorial consumir DLL C++ en C#
 
Ejemplo ddl dml
Ejemplo ddl dmlEjemplo ddl dml
Ejemplo ddl dml
 
Comandos ddl y dml
Comandos ddl y dmlComandos ddl y dml
Comandos ddl y dml
 
SISTEMA DE FACTURACION (Ejemplo desarrollado)
SISTEMA DE FACTURACION (Ejemplo desarrollado)SISTEMA DE FACTURACION (Ejemplo desarrollado)
SISTEMA DE FACTURACION (Ejemplo desarrollado)
 
Guia 4, creacion y consumo de bibliotecas de clase usando namespaces personal...
Guia 4, creacion y consumo de bibliotecas de clase usando namespaces personal...Guia 4, creacion y consumo de bibliotecas de clase usando namespaces personal...
Guia 4, creacion y consumo de bibliotecas de clase usando namespaces personal...
 
CURSO DE PROGRAMACION AVANZADA EN JAVA EN ESPAÑOL
CURSO DE PROGRAMACION AVANZADA EN JAVA EN ESPAÑOLCURSO DE PROGRAMACION AVANZADA EN JAVA EN ESPAÑOL
CURSO DE PROGRAMACION AVANZADA EN JAVA EN ESPAÑOL
 
PROYECTO PRUEBA DE CONEXIONES (Mantenimiento)
PROYECTO PRUEBA DE CONEXIONES (Mantenimiento)PROYECTO PRUEBA DE CONEXIONES (Mantenimiento)
PROYECTO PRUEBA DE CONEXIONES (Mantenimiento)
 
SQL: DDL, DML y SQL
SQL: DDL, DML y SQLSQL: DDL, DML y SQL
SQL: DDL, DML y SQL
 
Visual basic-Programacion en un entorno grafico.
Visual basic-Programacion en un entorno grafico.Visual basic-Programacion en un entorno grafico.
Visual basic-Programacion en un entorno grafico.
 
Paquetes De Programacion
Paquetes De ProgramacionPaquetes De Programacion
Paquetes De Programacion
 
Ejemplos Borland C++ Builder
Ejemplos Borland C++ BuilderEjemplos Borland C++ Builder
Ejemplos Borland C++ Builder
 
Lenguajes programacion
Lenguajes programacionLenguajes programacion
Lenguajes programacion
 
Estudio comparativo de PHP, ASP.NET Y JAVA
Estudio comparativo de PHP, ASP.NET Y JAVAEstudio comparativo de PHP, ASP.NET Y JAVA
Estudio comparativo de PHP, ASP.NET Y JAVA
 
Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.
 
Practica de visual basic sistema de facturación
Practica de visual basic sistema de facturaciónPractica de visual basic sistema de facturación
Practica de visual basic sistema de facturación
 
Caja de herramientas de visual basic
Caja de herramientas de visual basicCaja de herramientas de visual basic
Caja de herramientas de visual basic
 
Unidad 3 topicos avanzados de programacion
Unidad 3 topicos avanzados de programacionUnidad 3 topicos avanzados de programacion
Unidad 3 topicos avanzados de programacion
 
CONEXION VISUAL STUDIO.NET - SQL SERVER
CONEXION VISUAL STUDIO.NET - SQL SERVERCONEXION VISUAL STUDIO.NET - SQL SERVER
CONEXION VISUAL STUDIO.NET - SQL SERVER
 
Cuadro de herramientas y botones en visual basic
Cuadro de herramientas y botones en visual basicCuadro de herramientas y botones en visual basic
Cuadro de herramientas y botones en visual basic
 
Visual Basic .NET
Visual Basic .NETVisual Basic .NET
Visual Basic .NET
 

Similar a DLL's y capas de .NET

Framework by Marcos Acosta
Framework by Marcos AcostaFramework by Marcos Acosta
Framework by Marcos AcostaMarcos Acosta
 
Resumen lenguajes c#
Resumen lenguajes c#Resumen lenguajes c#
Resumen lenguajes c#Angie Galeano
 
Acceso a datos con ado.net en visual basic
Acceso a datos con ado.net en visual basicAcceso a datos con ado.net en visual basic
Acceso a datos con ado.net en visual basicgerardd98
 
Acceso a datos con ado.net en visual basic
Acceso a datos con ado.net en visual basicAcceso a datos con ado.net en visual basic
Acceso a datos con ado.net en visual basicAlfredo Joya
 
Programacion C#.NET
Programacion C#.NETProgramacion C#.NET
Programacion C#.NETSaviotec
 
Tutorial de visual C++
Tutorial de visual C++Tutorial de visual C++
Tutorial de visual C++juliancetis109
 
Tutorial de visual_c_
Tutorial de visual_c_Tutorial de visual_c_
Tutorial de visual_c_oscar020615
 
Tutorial de visual c++
Tutorial de visual c++Tutorial de visual c++
Tutorial de visual c++oscar020615
 
Tutorial de visual c++
Tutorial de visual c++Tutorial de visual c++
Tutorial de visual c++juliancetis109
 
Programacion Basica
Programacion Basica Programacion Basica
Programacion Basica Yoconditap
 
Presentación de programacion
Presentación  de programacionPresentación  de programacion
Presentación de programacionlajokito
 
Generalidades de la programacion
Generalidades de la programacionGeneralidades de la programacion
Generalidades de la programacionDiego Rojas
 

Similar a DLL's y capas de .NET (20)

Framework
FrameworkFramework
Framework
 
Framework by Marcos Acosta
Framework by Marcos AcostaFramework by Marcos Acosta
Framework by Marcos Acosta
 
Framework
FrameworkFramework
Framework
 
Resumen lenguajes c#
Resumen lenguajes c#Resumen lenguajes c#
Resumen lenguajes c#
 
Acceso a datos con ado.net en visual basic
Acceso a datos con ado.net en visual basicAcceso a datos con ado.net en visual basic
Acceso a datos con ado.net en visual basic
 
Acceso a datos con ado.net en visual basic
Acceso a datos con ado.net en visual basicAcceso a datos con ado.net en visual basic
Acceso a datos con ado.net en visual basic
 
Presentación1
Presentación1Presentación1
Presentación1
 
Framework
FrameworkFramework
Framework
 
Framework
FrameworkFramework
Framework
 
Framework
FrameworkFramework
Framework
 
Plataforma net
Plataforma netPlataforma net
Plataforma net
 
Programacion C#.NET
Programacion C#.NETProgramacion C#.NET
Programacion C#.NET
 
Tutorial de visual C++
Tutorial de visual C++Tutorial de visual C++
Tutorial de visual C++
 
Tutorial de visual_c_
Tutorial de visual_c_Tutorial de visual_c_
Tutorial de visual_c_
 
Tutorial de visual c++
Tutorial de visual c++Tutorial de visual c++
Tutorial de visual c++
 
Tutorial de visual c++
Tutorial de visual c++Tutorial de visual c++
Tutorial de visual c++
 
Frameworks de templates y xml
Frameworks de templates y xmlFrameworks de templates y xml
Frameworks de templates y xml
 
Programacion Basica
Programacion Basica Programacion Basica
Programacion Basica
 
Presentación de programacion
Presentación  de programacionPresentación  de programacion
Presentación de programacion
 
Generalidades de la programacion
Generalidades de la programacionGeneralidades de la programacion
Generalidades de la programacion
 

Más de Darwin Durand

Visual Studio.Net - Sql Server
Visual Studio.Net - Sql ServerVisual Studio.Net - Sql Server
Visual Studio.Net - Sql ServerDarwin Durand
 
VISUALIZAR REGISTROS EN UN JTABLE
VISUALIZAR REGISTROS EN UN JTABLEVISUALIZAR REGISTROS EN UN JTABLE
VISUALIZAR REGISTROS EN UN JTABLEDarwin Durand
 
EJEMPLOS DESARROLLADOS
EJEMPLOS DESARROLLADOSEJEMPLOS DESARROLLADOS
EJEMPLOS DESARROLLADOSDarwin Durand
 
PERSISTENCIA BASADA EN ARCHIVOS
PERSISTENCIA BASADA EN ARCHIVOSPERSISTENCIA BASADA EN ARCHIVOS
PERSISTENCIA BASADA EN ARCHIVOSDarwin Durand
 
INSERCION DE REGISTROS DESDE VISUAL.NET A UNA BD DE SQL SERVER
INSERCION DE REGISTROS DESDE VISUAL.NET A UNA BD DE SQL SERVERINSERCION DE REGISTROS DESDE VISUAL.NET A UNA BD DE SQL SERVER
INSERCION DE REGISTROS DESDE VISUAL.NET A UNA BD DE SQL SERVERDarwin Durand
 
INDICES EN SQL SERVER
INDICES EN SQL SERVERINDICES EN SQL SERVER
INDICES EN SQL SERVERDarwin Durand
 
APLICACIONES EMPRESARIALES
APLICACIONES EMPRESARIALESAPLICACIONES EMPRESARIALES
APLICACIONES EMPRESARIALESDarwin Durand
 
CREACION Y MANEJO DE LA BASE DE DATOS
CREACION Y MANEJO DE LA BASE DE DATOSCREACION Y MANEJO DE LA BASE DE DATOS
CREACION Y MANEJO DE LA BASE DE DATOSDarwin Durand
 

Más de Darwin Durand (11)

Visual Studio.Net - Sql Server
Visual Studio.Net - Sql ServerVisual Studio.Net - Sql Server
Visual Studio.Net - Sql Server
 
VISUALIZAR REGISTROS EN UN JTABLE
VISUALIZAR REGISTROS EN UN JTABLEVISUALIZAR REGISTROS EN UN JTABLE
VISUALIZAR REGISTROS EN UN JTABLE
 
EJEMPLOS DESARROLLADOS
EJEMPLOS DESARROLLADOSEJEMPLOS DESARROLLADOS
EJEMPLOS DESARROLLADOS
 
PERSISTENCIA BASADA EN ARCHIVOS
PERSISTENCIA BASADA EN ARCHIVOSPERSISTENCIA BASADA EN ARCHIVOS
PERSISTENCIA BASADA EN ARCHIVOS
 
INSERCION DE REGISTROS DESDE VISUAL.NET A UNA BD DE SQL SERVER
INSERCION DE REGISTROS DESDE VISUAL.NET A UNA BD DE SQL SERVERINSERCION DE REGISTROS DESDE VISUAL.NET A UNA BD DE SQL SERVER
INSERCION DE REGISTROS DESDE VISUAL.NET A UNA BD DE SQL SERVER
 
SERVLET BASICS
SERVLET BASICSSERVLET BASICS
SERVLET BASICS
 
INDICES EN SQL SERVER
INDICES EN SQL SERVERINDICES EN SQL SERVER
INDICES EN SQL SERVER
 
INTEGRIDAD DE DATOS
INTEGRIDAD DE DATOSINTEGRIDAD DE DATOS
INTEGRIDAD DE DATOS
 
APLICACIONES EMPRESARIALES
APLICACIONES EMPRESARIALESAPLICACIONES EMPRESARIALES
APLICACIONES EMPRESARIALES
 
CREACION Y MANEJO DE LA BASE DE DATOS
CREACION Y MANEJO DE LA BASE DE DATOSCREACION Y MANEJO DE LA BASE DE DATOS
CREACION Y MANEJO DE LA BASE DE DATOS
 
CREACION DE TABLAS
CREACION DE TABLASCREACION DE TABLAS
CREACION DE TABLAS
 

Último

BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdfBIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdfCESARMALAGA4
 
Estrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfEstrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfromanmillans
 
Plan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPEPlan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPELaura Chacón
 
Fundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfFundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfsamyarrocha1
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para eventoDiegoMtsS
 
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfEstrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfAlfredoRamirez953210
 
c3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxc3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxMartín Ramírez
 
Día de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialDía de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialpatriciaines1993
 
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...JAVIER SOLIS NOYOLA
 
Unidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteUnidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteJuan Hernandez
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.José Luis Palma
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIACarlos Campaña Montenegro
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptxJunkotantik
 
TEST DE RAVEN es un test conocido para la personalidad.pdf
TEST DE RAVEN es un test conocido para la personalidad.pdfTEST DE RAVEN es un test conocido para la personalidad.pdf
TEST DE RAVEN es un test conocido para la personalidad.pdfDannyTola1
 
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxPresentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxYeseniaRivera50
 

Último (20)

PPTX: La luz brilla en la oscuridad.pptx
PPTX: La luz brilla en la oscuridad.pptxPPTX: La luz brilla en la oscuridad.pptx
PPTX: La luz brilla en la oscuridad.pptx
 
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdfBIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
 
Estrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfEstrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdf
 
TL/CNL – 2.ª FASE .
TL/CNL – 2.ª FASE                       .TL/CNL – 2.ª FASE                       .
TL/CNL – 2.ª FASE .
 
Plan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPEPlan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPE
 
Fundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfFundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdf
 
Sesión La luz brilla en la oscuridad.pdf
Sesión  La luz brilla en la oscuridad.pdfSesión  La luz brilla en la oscuridad.pdf
Sesión La luz brilla en la oscuridad.pdf
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para evento
 
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfEstrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
 
c3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxc3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptx
 
Día de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialDía de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundial
 
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
 
Unidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteUnidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parte
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
 
Sesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdfSesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdf
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptx
 
TEST DE RAVEN es un test conocido para la personalidad.pdf
TEST DE RAVEN es un test conocido para la personalidad.pdfTEST DE RAVEN es un test conocido para la personalidad.pdf
TEST DE RAVEN es un test conocido para la personalidad.pdf
 
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxPresentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
 
Unidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDIUnidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDI
 

DLL's y capas de .NET

  • 1. DLL’s<br />Una definición más profunda de .NET<br />1072515531495La mejor forma de comprender cómo funciona .NET es analizar las numerosas capas en las que se divide .NET Framework. Veamos la siguiente figura:<br />No te asustes con lo que vas a leer aquí, es obligatorio que lo veamos por encima, al terminar el tema, vuelve a leer esto y veras que sencillo era.<br />Como hemos comentado antes .NET Framework constituye la base sobre la que se asienta .NET. Para nosotros es la pieza fundamental de esta nueva tecnología y es la que nos va a proporcionar las herramientas y servicios que necesitaremos en nuestros desarrollos. Podemos agrupar en tres bloques el conjunto de herramientas y servicios:<br />El runtime de lenguaje común o entorno de ejecución común (CLR)<br />Biblioteca de clases base de la plataforma .NET (.NET Framework Base Classes)<br />Motor de generación de la interfaz para crear formularios e interfaces de usuario.<br />Estas son tres de las capas del esquema anterior. Simplemente esa jerarquía me dice que en el nivel mas alto están los lenguajes que vamos a utilizar en nuestro desarrollo con .NET que pueden ser varios (en nuestro caso Visual Basic). Luego traduce esas instrucciones al estándar .NET para poder trabajar con esas instrucciones de una forma independiente al lenguaje con que se escribieron. El siguiente paso es la generación de formularios para Windows o web (ASP). Luego el enlace con bases de datos si las hay. Por fin llegamos a todos los objetos disponibles y por último el runtime de lenguaje común (CLR) que es el que va a ejecutar la aplicación. Veamos ahora más técnicamente de abajo hacia arriba:<br />1. Runtime del lenguaje común<br />El runtime del lenguaje común es la primera capa que pertenece a .NET Framework. Esta capa es la responsable de los servicios básicos de .NET, tales como la administración de memoria, la recolección de los elementos no utilizados, el control estructurado de excepciones y del subprocesamiento múltiple. Si .NET se transporta a otras arquitecturas que no estén basadas en Windows el primer paso sería escribir un runtime  del lenguaje para el nuevo equipo. El CLR tiene estas características:<br />Proporciona mejoras para el programador que antes tenía que elaborar<br />Administra el código en tiempo de ejecución: carga en memoria, liberación de memoria, ...<br />Gestiona la seguridad del código ejecutado<br />Abre posibilidades a otros fabricantes para incorporar sus lenguajes<br />Facilita la distribución e instalación de aplicaciones. Elimina los temibles conflictos de DLL's y versiones de ellas<br />Es la interfaz entre nuestro código y el sistema operativo, de ahí que si mañana Microsoft hace un CLR en lugar de para Windows, para Macintosh se puedan ejecutar nuestras aplicaciones .NET en este sistema.<br />2. Biblioteca de clases<br />La biblioteca de clases base (BCL) es la parte de .NET Framework que define todos los tipos de datos básicos, tales como System.Object (raíz de la jerarquía de objetos .NET), tipos numéricos y de fechas, tipo string, matrices y colecciones. La BCL contiene también clases que administrarán las características centrales de .NET: entrada/salida de archivos , subprocesamiento, serialización y seguridad. La forma en la que los tipos se implementan en la BCL siguen las especificaciones llamadas Common Type System (CTS). Por ejemplo, estas especificaciones dicta la forma en la que un tipo .NET expone campos, propiedades, métodos y sucesos, también cómo un tipo puede heredar otro tipo... <br />Tranquilo... a lo largo del curso veremos estas clases y por fuerza trabajaremos con ellas porque todo en .NET son clases: desde un gráfico, un botón o nuestro programa.<br />3. Capa de datos<br />La capa de datos y XML contienen las clases .NET que trabajan con bases de datos y con XML. Anteriormente el soporte XML era una compatibilidad proporcionada por un componente externo. En .NET vemos cómo está integrado en su mismo núcleo. Podemos decir que XML es el formato que utiliza .NET para almacenar cualquier tipo de información. La parte de datos es la que se conoce como ADO.NET y es el equivalente en .NET a la tecnología ActiveX Data Object (ADO), ampliamente conocida por los programadores de Visual Basic, Intranets, ...<br />Nota para los conocedores de ADO: Aunque su nombre es muy parecido a ADO.NET son muy diferentes. ADO cubre prácticamente todas las técnicas de bases de datos disponibles (incluyendo cursores del lado del cliente y del servidor, conjuntos de datos desconectados y actualizaciones en diferido). ADO.NET está centrado principalmente en los conjuntos de resultados desconectados (llamados DataSets) Este objeto es mucho mas potente que el objeto ADO Recordset y puede almacenar datos provenientes de varias tablas, relaciones entre diferentes tablas de datos y puede importar y exportar datos en XML.<br />4. Capa de formularios y ASP<br />Las dos capas siguientes son ASP.NET y Windows Forms. Aquí se sitúan todas las clases que podremos utilizar para generar las páginas web en el primer caso y las ventanas estándares o formularios en las aplicaciones de Windows en el segundo caso.<br />Nota ASP.NET es la parte de .NET encargada del desarrollo en web. Una evolución muy ampliada de las páginas ASP y comprende los web forms y los servicios web XML. No lo veremos en este curso pero el salto a desarrollar en Web es muy sencillo...<br />Aunque estén en el mismo nivel las tecnologías son muy distintas. Web Forms se ejecuta en el servidor y produce HTML y es la base de las conocidas Intranets donde estas páginas devuelven otras páginas web con conjuntos de resultados u otros datos. Windows Forms se ejecuta en el cliente, un equipo Windows. <br />La  biblioteca de clases de .NET Framework está formada por una colección de ensamblados (o Assembly), cada uno de los cuales comprende una o más DLL. Veamos que esto de un quot; ensambladoquot; ...<br />Un ensamblado consiste en un conjunto de tipos y recursos reunidos para formar la unidad mas elemental de código que puede ejecutar el entorno .NET Framework. Estos ensamblados son los elementos con los que construiremos una aplicación: una aplicación .NET se compone de varios ensamblados. Podemos llamar también a un ensamblado como una DLL lógica (recordamos que una DLL es una biblioteca de enlaces dinámicos). Decimos lógica porque se trata de una lista de ficheros que se referencian en tiempo de ejecución pero que no se compilan para producir un fichero físico, a diferencia de las DLL's tradicionales. Un ensamblado va mucho más allá ya que puede contener otros recursos además de clases como imágenes, ...<br />5. Capas de CLS y lenguajes<br />Donde están las especificaciones de los lenguajes y su sincronización con el entorno .NET<br />2891790-12065Empezaremos con el siguiente Ejemplo: Jojojojo<br />Paso 1: Debemos contar con un modelo relacional, y orientarlo a este caso, esto le será proporcionado por su asesor. (Script de Base de Datos SQL Server SysInventario), pero antes deberá crear una carpeta en el escritorio, llamado: MANTENIMIENTO y dentro de el 2 Sub Carpetas: DLL y FORMULARIOS<br />Paso 2: Adicionalmente Crear los Siguientes Procedimientos Almacenados en SQL:<br />Create Procedure SpGrabar_Foto@Parametro Varchar(50),@Fot Image,@Id Varchar(10)As IF @Parametro='RAM' Update RAM Set Imagen=@Fot Where RamId=@Id IF @Parametro='PROCESADOR' Update PROCESADOR Set Imagen=@Fot Where ProcesadorID=@Id IF @Parametro='DISCO_HDOP' Update DISCO_HDOP Set Imagen=@Fot Where DiscoID=@Id IF @Parametro='TARJETA' Update TARJETA Set Imagen=@Fot Where TarjetaID=@Id IF @Parametro='FUENTE' Update FUENTE Set Imagen=@Fot Where FuenteID=@Id IF @Parametro='FLOPPY' Update FLOPPY Set Imagen=@Fot Where FloppyID=@Id IF @Parametro='XCASE' Update XCASE Set Imagen=@Fot Where CaseID=@Id IF @Parametro='MAINBOARD' Update MAINBOARD Set Imagen=@Fot Where MainBoardID=@Id IF @Parametro='IMPRESORA' Update IMPRESORA Set Imagen=@Fot Where ImpresoraID=@Id IF @Parametro='MOUSE' Update MOUSE Set Imagen=@Fot Where MouseID=@Id IF @Parametro='TECLADO' Update TECLADO Set Imagen=@Fot Where TecladoID=@Id IF @Parametro='MONITOR' Update MONITOR Set Imagen=@Fot Where MonitorID=@Id IF @Parametro='EMPLEADO' Update EMPLEADO Set FotoImg=@Fot Where EmpleadoID=@Id IF @Parametro='MARCA' Update MARCA Set Imagen=@Fot Where MarcaID=@IdGoCREATE PROCEDURE Sp_Generador@Param VARCHAR(50),@CodGen VARCHAR(10) OUTPUTAS DECLARE @ULT INT,@CEROS INT IF @Param IN ('RAM','PROCESADOR','DISCO_HDOP','TARJETA','CPU', 'FUENTE','MAINBOARD','IMPRESORA','EMPLEADO','XCASE') Begin SELECT @Ult=ULTIMO+1 FROM GENERADOR WHERE Parametro=@Param SET @CEROS=9 - LEN(CONVERT(VARCHAR,@Ult))SET @CodGen=LEFT(@Param,1)+REPLICATE('0',@CEROS)+CONVERT(VARCHAR,@Ult) End IF @Param IN ('MONITOR','TECLADO') Begin SELECT @Ult=ULTIMO+1 FROM GENERADOR WHERE Parametro=@Param SET @CEROS=8 - LEN(CONVERT(VARCHAR,@Ult))SET @CodGen=LEFT(@Param,1)+REPLICATE('0',@CEROS)+CONVERT(VARCHAR,@Ult) End IF @Param IN ('MARCA') Begin SELECT @Ult=ULTIMO+1 FROM GENERADOR WHERE Parametro=@Param SET @CEROS=7 - LEN(CONVERT(VARCHAR,@Ult))SET @CodGen=LEFT(@Param,1)+REPLICATE('0',@CEROS)+CONVERT(VARCHAR,@Ult) End IF @Param IN ('MOUSE') Begin SELECT @Ult=ULTIMO+1 FROM GENERADOR WHERE Parametro=@Param SET @CEROS=6 - LEN(CONVERT(VARCHAR,@Ult))SET @CodGen=LEFT(@Param,1)+REPLICATE('0',@CEROS)+CONVERT(VARCHAR,@Ult) End UPDATE Generador SET Ultimo=@Ult WHERE Parametro=@ParamGoCreate Procedure SpListadoRamAs Select * From RAMGo<br />-3810377825Paso 3: Ahora ingresemos a Visual Basic NET, y crearemos un proyecto orientado a Bibliotecas de Clase, llamado DLL_MAN1, así como se muestra en la Imagen:<br />Cuando Aceptemos, observaremos el siguiente entorno:<br />-38103810<br />Propiedad: Nombre de Archivo: DLL_MantenimientoY cambiara el nombre de la clase por igualAquí debemos cambiar el nombre de la Clase por: DLL_Mantenimiento, y deberá quedar de la siguiente manera:<br />5664835-90170Grabe el Proyecto DLL en la carpeta DLL del paso 1 haciendo clic en el botón Guardar Todo:<br />-381014605<br />Finalice el proceso haciendo clic en Guardar.<br />Paso 4: Empecemos a Programar dicha biblioteca, agregando el siguiente espacio:<br />Imports System.Data.SqlClient<br />Defina las siguientes variables a nivel de clase:<br />Crear Las Siguientes FuncionesPublic Shared Function AplicarCadenaConexion() As SqlConnection Dim SconnectionString As String = (quot; Server=LocalHost;Uid=SA;Password=123;Database=SysInventarioquot; ) Return New SqlConnection(SconnectionString)End Function Public Function ListadoRAM() As DataTable Try Dim DaListadoRAM As New SqlDataAdapter Dim DsListado As New DataSet DaListadoRAM.SelectCommand = New SqlCommand With DaListadoRAM.SelectCommand .Connection = AplicarCadenaConexion() .CommandType = CommandType.StoredProcedure .CommandText = quot; SpListadoRamquot; End With DaListadoRAM.Fill(DsListado, quot; ListaRamquot; ) Return DsListado.Tables(quot; ListaRamquot; ) Catch ex As Exception MsgBox(ex.Message) End Try End Function Public Function DeleteRam(ByVal Rid As String) As Integer Try Dim Dat As New ClsDatos Dim Conexion As SqlConnection = AplicarCadenaConexion() Dim CadenaUpdate As String = quot; UPDATE Ram Set Estado=0 Where RamID=@Ridxquot; Conexion.Open() Dim CMD As New SqlCommand(CadenaUpdate, Conexion) With CMD.Parameters .AddWithValue(quot; @Ridxquot; , Rid) End With CMD.ExecuteNonQuery() Conexion.Close() MsgBox(quot; Dato InHabilitado Corectamentequot; , MsgBoxStyle.Information) Return 0 Catch ex As Exception MsgBox(ex.Message) Return 1 End Try End Function<br /> Public Function SelectRam(ByVal Rid As String) As ClsDatos Dim Dat As New ClsDatos Dim DrRam As SqlDataReader Dim Conexion As SqlConnection = AplicarCadenaConexion() Dim CadenaSelect As String CadenaSelect = quot; Select RamID,Modelo,MarcaID,Serie,Tipo,Capacidad, quot; _ & quot; VelocBus,Imagen,Imagensitio,Estado quot; _ & quot; From RAM Where RamID=@Ridquot; Conexion.Open() Dim CmdRam As New SqlCommand(CadenaSelect, Conexion) CmdRam.Parameters.AddWithValue(quot; @Ridquot; , Rid) DrRam = CmdRam.ExecuteReader If DrRam.Read Then Dat.Rid = DrRam(quot; RamIDquot; ).ToString Dat.Mode = DrRam(quot; Modeloquot; ).ToString Dat.MarcId = DrRam(quot; MarcaIdquot; ).ToString Dat.Ser = DrRam(quot; Seriequot; ).ToString Dat.Tip = DrRam(quot; Tipoquot; ).ToString Dat.Capac = DrRam(quot; Capacidadquot; ).ToString Dat.Veloc = DrRam(quot; VelocBusquot; ).ToString Dat.Img = DrRam(quot; Imagenquot; ).ToString Dat.ImgSitio = DrRam(quot; ImagenSitioquot; ).ToString Dat.Est = DrRam(quot; Estadoquot; ).ToString End If Return Dat Conexion.Close() End FunctionCrear el Siguiente ProcedimientoPublic Sub InsertUpdateRam(ByVal Dat As ClsDatos) Try Select Case Dat.Condicion Case quot; Iquot; Dim Conexion As SqlConnection = AplicarCadenaConexion() Dim CadenaInsert As String = quot; Insert Into RAM(RamId,Modelo,MarcaId,quot; + _ quot; Serie,Tipo,Capacidad,VelocBus,Imagen,ImagenSitio,Estado) quot; + _ quot; Values (@Rid,@Model,@MarId,@Ser,@Tip,@Cap,@Veloc,NULL,NULL,@Est)quot; Conexion.Open() Dim CMD As New SqlCommand(CadenaInsert, Conexion) With CMD.Parameters .AddWithValue(quot; @Ridquot; , Dat.Rid) .AddWithValue(quot; @Modelquot; , Dat.Mode) .AddWithValue(quot; @MarIdquot; , Dat.MarcId) .AddWithValue(quot; @Serquot; , Dat.Ser) .AddWithValue(quot; @Tipquot; , Dat.Tip) .AddWithValue(quot; @Capquot; , Dat.Capac) .AddWithValue(quot; @Velocquot; , Dat.Veloc) '.AddWithValue(quot; @Img1quot; , Dat.Img) '.AddWithValue(quot; @Img2quot; , Dat.ImgSitio) .AddWithValue(quot; @Estquot; , Dat.Est) End With CMD.ExecuteNonQuery() Conexion.Close() MsgBox(quot; Datos almacenados Correctamentequot; , MsgBoxStyle.Information) Case quot; Uquot; Dim Conexion As SqlConnection = AplicarCadenaConexion() Dim CadenaUpdate As String = quot; UPDATE Ram Set Modelo=@Model,MarcaId=@MarId,quot; + _ quot; Serie=@Ser,Tipo=@Tip,Capacidad=@Cap,VelocBus=@Veloc,Imagen=NULL,quot; + _ quot; ImagenSitio=NULL,Estado=@Est Where RamID=@Ridquot; Conexion.Open() Dim CMD As New SqlCommand(CadenaUpdate, Conexion) With CMD.Parameters .AddWithValue(quot; @Ridquot; , Dat.Rid) .AddWithValue(quot; @Modelquot; , Dat.Mode) .AddWithValue(quot; @MarIdquot; , Dat.MarcId) .AddWithValue(quot; @Serquot; , Dat.Ser) .AddWithValue(quot; @Tipquot; , Dat.Tip) .AddWithValue(quot; @Capquot; , Dat.Capac) .AddWithValue(quot; @Velocquot; , Dat.Veloc) '.AddWithValue(quot; @Img1quot; , Dat.Img) '.AddWithValue(quot; @Img2quot; , Dat.ImgSitio) .AddWithValue(quot; @Estquot; , Dat.Est) End With CMD.ExecuteNonQuery() Conexion.Close() MsgBox(quot; Datos Actualizados Corectamentequot; , MsgBoxStyle.Information) End Select Catch ex As Exception MsgBox(ex.Message) End TryEnd Sub<br />Paso 5: En el mismo proyecto agregar una nueva Clase con el nombre: CLSDATOS y este contendrá el siguiente código:<br />Public Class ClsDatos Public Condicion As String Public Rid As String Public Mode As String Public MarcId As String Public Ser As String Public Tip As String Public Capac As String Public Veloc As String Public Img As String Public ImgSitio As String Public Est As IntegerEnd Class<br />Seleccione Generar DLL_Man1, y luego espero unos segundos, para que genere nuestra DLL.Paso 6: Ahora después de culminar el 5to paso, proceda a generar la DLL, es decir nuestro archivo soporte que contendrá encriptado todo nuestro código basado en clases.<br />Para verificar que nuestra DLL esta creada, debemos buscarla en la carpeta RELEASE, de nuestro proyecto, esta estará dentro de la carpeta BIN <br />-3810-2540<br />-3810538480Después de verificar la creación de nuestra DLL, procederemos a crear un nuevo proyecto basado en Aplicación para Windows (Visual Basic NET). El Nombre de Nuestro Proyecto Nuevo: SYSINVENTARIO<br />Cuando nuestro proyecto este creado, debemos agregar nuestra DLL (DLL_Man1) a nuestro proyecto, realice la siguiente operación: PROYECTO - > AGREGAR REFERENCIA<br />967740-5715<br />Lo cual nos lleva a la siguiente ventana: aquí debemos seleccionar la pestaña EXAMINAR, luego buscamos nuestra DLL en la carpeta RELEASE de nuestro proyecto anterior, la seleccionamos y aceptamos, con esto nuestra DLL formara parte de nuestro proyecto, así podremos usar el código encriptado que se encuentra en su interior.<br />52959085725<br />1291590898525Aquí esta nuestra DLL, agregada como referencia.Ahora verifiquemos que nuestra DLL esta agregada a nuestro proyecto, esto dependerá única y exclusivamente de nuestro EXPLORADOR DE SOLUCIONES, esta ventanita muestra por defecto solo los componentes creados por el usuario, y de forma reservada oculta algunos componentes, en la parte superior de esta ventanita existe algunos iconos, hagamos clic en el icono “MOSTRAR TODOS LOS ARCHIVOS”, tiene la siguiente forma:<br />53340125730<br />Ahora Diseñemos Nuestro Formulario:<br />-381019050<br />Luego Diseñar el Siguiente Formulario, usando los controles ya definidos.<br />Este formulario llevara el nombre: FrmRam, el cual estará compuesto por los siguientes objetos: 7 cajas de textos (Sin cambiar nombre), 2 combos (Sin Cambiar nombre) y 5 botones comandos (BtnGrabar, BtnActualizar, BrnConsultar, BtnEliminar, BtnListado). Un DatagridView (DtgRAM) y un control Picturebox1 (Sin cambiar nombre)<br />Ahora procederemos a programar el formulario.<br />Agregar EL siguiente Espacio referencia de SQL ServerImports System.Data.SqlClient Dim ObjRefMante As New Dll_Man1.Dll_Mantenimiento Dim ObjRefCaptura As New Dll_Man1.ClsDatos Dim DsEntorno As New DataSet Dim Cn As New SqlConnection(quot; Server=LocalHost;Uid=Sa;Password=123;Database=SysInventarioquot; ) Dim DaMarca As New SqlDataAdapter(quot; Select * From Marcaquot; , Cn)Form Load DaMarca.Fill(DsEntorno, quot; Marcaquot; ) ComboBox1.DataSource = DsEntorno.Tables(quot; Marcaquot; ) ComboBox1.DisplayMember = quot; DesMarcaquot; ComboBox1.ValueMember = quot; MarcaIDquot; ComboBox2.Items.Add(quot; Habilitadoquot; ) ComboBox2.Items.Add(quot; InHabilitadoquot; )BtnGrabar (Click) Try If MessageBox.Show(quot; Desea Grabarquot; , quot; Seleccione Su Opcionquot; , MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes Then Dim CmdEjecutar As New SqlCommand(quot; Sp_Generadorquot; , Cn) Dim PrmParametro As New SqlParameter Cn.Open() With CmdEjecutar .CommandType = CommandType.StoredProcedure PrmParametro = .Parameters.Add(quot; @Paramquot; , SqlDbType.VarChar, 50) PrmParametro.Value = quot; RAMquot; PrmParametro = .Parameters.Add(quot; @CodGenquot; , SqlDbType.VarChar, 10) PrmParametro.Direction = ParameterDirection.Output PrmParametro.Value = quot; quot; .ExecuteNonQuery() ObjRefCaptura.Rid = .Parameters(1).Value End With CmdEjecutar.Dispose() Cn.Close() ObjRefCaptura.Condicion = quot; Iquot; Me.TextBox1.Text = ObjRefCaptura.Rid ObjRefCaptura.Mode = Me.TextBox2.Text ObjRefCaptura.MarcId = ComboBox1.SelectedValue ObjRefCaptura.Ser = Me.TextBox3.Text ObjRefCaptura.Tip = Me.TextBox4.Text ObjRefCaptura.Capac = Me.TextBox5.Text ObjRefCaptura.Veloc = Me.TextBox6.Text ObjRefCaptura.Img = DBNull.Value.ToString ObjRefCaptura.ImgSitio = DBNull.Value.ToString ObjRefCaptura.Est = IIf(ComboBox2.SelectedIndex = 0, 1, 0) ObjRefMante.InsertUpdateRam(ObjRefCaptura) End IfCatch Ex As Exception MessageBox.Show(Ex.Message)End TryBtnConsultar (Click) Try Dim ABC As New Dll_Man1.ClsDatos ABC = ObjRefMante.SelectRam(Me.TextBox1.Text) Me.TextBox1.Text = ABC.Rid Me.TextBox2.Text = ABC.Mode Me.ComboBox1.SelectedValue = ABC.MarcId Me.TextBox3.Text = ABC.Ser Me.TextBox4.Text = ABC.Tip Me.TextBox5.Text = ABC.Capac Me.TextBox6.Text = ABC.Veloc Me.TextBox7.Text = ABC.Img 'ABC.ImgSitio Me.ComboBox2.Text = IIf(ABC.Est = 0, quot; InHabilitadoquot; , quot; Habilitadoquot; ) Catch Ex As Exception MessageBox.Show(Ex.Message) End TryBtnActualizar (Click)Try If MessageBox.Show(quot; Desea Actualizarquot; , quot; Seleccione Su Opcionquot; , MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes Then ObjRefCaptura.Condicion = quot; Uquot; ObjRefCaptura.Rid = Me.TextBox1.Text ObjRefCaptura.Mode = Me.TextBox2.Text ObjRefCaptura.MarcId = ComboBox1.SelectedValue ObjRefCaptura.Ser = Me.TextBox3.Text ObjRefCaptura.Tip = Me.TextBox4.Text ObjRefCaptura.Capac = Me.TextBox5.Text ObjRefCaptura.Veloc = Me.TextBox6.Text ObjRefCaptura.Img = DBNull.Value.ToString ObjRefCaptura.ImgSitio = DBNull.Value.ToString ObjRefCaptura.Est = IIf(ComboBox2.SelectedIndex = 0, 1, 0) ObjRefMante.InsertUpdateRam(ObjRefCaptura) End IfCatch Ex As Exception MessageBox.Show(Ex.Message)End TryBtnEliminar(Click) Dim R As Integer R = ObjRefMante.DeleteRam(Me.TextBox1.Text) If R = 0 Then Me.ComboBox2.Text = quot; InHabilitadoquot; Else Me.ComboBox2.Text = quot; Habilitadoquot; End IfDtgRAM(Click)DtgRAM.DataSource = ObjRefMante.ListadoRAM<br />