Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...
Diapositivas de acceso a datos ado.net
1.
2. DEFINICION:
En ADO .NET.Mostraremos las tareas básicas para el acceso
a datos desde aplicaciones basadas en formularios
Windows,empleando la tecnología proporcionada por ADO
.NET.ADO .NET es la nueva versión del modelo de objetos
ADO (ActiveX Data Objects), es decir, la estrategia queofrece
Microsoft para el acceso a datos. ADO .NET ha sido ampliado
para cubrir todas las necesidades que ADOno ofrecía, y
está diseñado para trabajar con conjuntos de datos
desconectados, lo que permite reducir el tráfico dered. ADO
.NET utiliza XML como formato universal de transmisión de los
datos.ADO .NET posee una serie de objetos que son los
mismos que aparecen en la versión anterior de ADO,
como pueden ser el objeto Connection o Command, e
introduce nuevos objetos tales como el objeto
DataReader,DataSet o DataView.ADO .NET .
3. COMPARATIVA DE ADO /ADO . NET
Como punto de partida para comprender la importancia del nuevo diseño de ADO .NET,
analizaremos los aspectos distintivos entre ADO .NET y el modelo ADO vigente hasta la fecha.
Las diferencias existentes son muchas, y van desde el mismo diseño de los interfaces de las
clases, hasta el nivel estructural de los componentes, pasando por el modo en cómo manejan
la información
4. RENDIMIENTO
Tanto ADO como ADO.NET requieren de muchos
recursos cuando se habla de envíos masivos de
datos.
stress del sistema es proporcional al número de filas
que se quieren procesar. Pero ADO.NET permite
utilizar mucho más eficientemente los recursos, pues
no tiene que realizar el COM Marshalling de datos, en
lo que ADO si ( y eso supone un canal más de envió
de datos de control que ADO.NET ahorra).
PENETRACIÓN DE FIREWALLS
Por motivos de seguridad, las empresas suelen bloquear
los sistemas de comunicaciones vía RPC. O bien,
implementan pesados mecanismos de control de acceso
y envió de la información. Lo que complica los diseños,
sus rendimientos y su instalación y distribución. En
ADO.NET, puesto que no se realizan llamadas al sistema
, si no que se envían flujos de datos en XML, se simplifica
enormemente la configuración de estos dispositivos.
CUADRO DE COMPARACIÓN DE ADO / ADO.NET.
5. BENEFICIOS DE ADO .NET:
INTEROPERABILIDAD:
Las aplicaciones basadas en ADO .NET obtienen ventaja de la flexibilidad y la masiva aceptación del
estándar XML para el intercambio de datos. Puesto que XML es el estándar de envío de información
entre capas, cualquier componente capaz de Interpretar los datos XML puede acceder a
la información de ADO .NET, se encuentre donde se encuentre, y procesarla. Además, puesto que la
información se envía en flujos de XML, no importa la implementación empleada para enviar o recoger
la información –así como la plataforma empleada-.Simplemente se exige a los componentes que
reconozcan el formato XML empleado para el proceso, envío y recepción de un DataSet.
6. MANTENIMIENTO:
En el ciclo de vida de una aplicación los cambios poco sustanciales y modestos son permisibles.
Perocuando es necesario abordar un cambio estructural o arquitectónico del sistema, la tarea se vuelve
demasiadocompleja y a veces inviable. Esto es una gran desventaja de los sistemas actuales, pues
muchas veces se trata deuna cuestión de actualización de los procesos de la propia empresa. Además,
cuanto más se aumenta el proceso dela operativa de la empresa, las necesidades de proceso crecen
hasta desbordar las máquinas. Es por ello que sesepara la estructura de un programa en varias capas.
Una de esas capas es la de datos, que es fundamentaldesarrollar correctamente. Gracias a los
DataSets, la tarea de portar y aumentar los procesos de datos y de negocioserá mas sencillo: el
intercambio de información a través de XML, hace que sea más sencilla la tarea deestructurar en más
capas la aplicación, convirtiéndola en más modular y fácil de mantener.
7. PROGRAMACIÓN:
Los programadores pueden acceder a un API de programación estructurado, de fuerte tipificado y que
además se concentra en la correcta forma de presentar los datos. Centra en la estructura del lenguaje lo
que un programador necesita para diseñar los programas sin dar muchos rodeos. El Código fuente 557
muestra un ejemplo de código sin tipificar:
IF CostoTotal > DATASETL.Cliente (“LUIS”).CreditoDisponible THEN
8. RENDIMIENTO:
Puesto que trabajamos con objetos de datos desconectados, todo el proceso se acelera, ya que no
tenemos queestar comunicándonos por Marshalling con el servidor. Además, gracias al modelo de XML
la conversión de tiposno es necesaria a nivel de COM. Se reduce pues el ancho de banda disponible, se
independiza más el cliente delservidor, y se descarga más a éste, que puede estar dedicado a otras tareas
en lo que el cliente analiza sus datos.
ESCALABILIDAD:
Las aplicaciones Web tienen un número ilimitado de conexiones potenciales debido a la naturaleza de
Internet. Los servidores son capaces de atender muy bien decenas y decenas de conexiones. Pero cuando
hablamos de miles y millones, los servidores ya no son capaces de realizar correctamente su trabajo. Esto
es debido a que por cada usuario se mantiene una memoria de proceso y conexión, un conjunto
de bloqueos de recursos como puedan ser tablas, índices, etc., y una comprobación de sus permisos; todo
ello consume tiempo y recursos. ADO .NET favorece la escalabilidad, puesto que su modelo de conexión
Off-Line evita que se mantengan los recursos reservados más tiempo del considerado necesario.
9. EJEMPLOS:
Este código es válido para cualquier versión de Visual Basic para punto NET.
Private Function basesDeDatos(ByVal instancia As String) As String()
' Las bases de datos de SQL Server
Dim basesSys() As String = {"master", "model", "msdb", "tempdb"}
Dim bases() As String
Dim dt As New DataTable
' Usamos la seguridad integrada de Windows
Dim sCnn As String = "Server=" & instancia & "; " & "database=master; integrated security=yes"
' La orden T-SQL para recuperar las bases de master
Dim sel As String = "SELECT name FROM sysdatabases"
Try
Dim da As New SqlDataAdapter(sel, sCnn) da.Fill(dt)
ReDim bases(dt.Rows.Count - 1) Dim k As Integer = -1
For i As Integer = 0 To dt.Rows.Count - 1
Dim s As String = dt.Rows(i).Item("name").ToString()
' Solo asignar las bases que no son del sistema
If Array.IndexOf(basesSys, s) = -1 Then
k += 1 bases(k) = s
End If
Next
If k = -1 Then Return Nothing
ReDim Preserve bases(k)
Return bases Catch ex As Exception
MessageBox.Show(ex.Message, _ "Error al recuperar las bases de la instancia indicada", _ MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
Return Nothing
End Function
10. LA FUNCIÓN PARA SABER SI EXISTE LA TABLA INDICADA:
private bool existeTabla(SqlConnection cnn, string nombreTabla) {
// Devuelve true si la tabla indicada está en la base usada con la conexión
DataTable dt = new DataTable();
bool existe = false;
//
try{
SqlDataAdapter da = new SqlDataAdapter( "SELECT * FROM INFORMATION_SCHEMA.TABLES “
+ "WHERE TABLE_TYPE = 'BASE TABLE' " + "ORDER BY TABLE_TYPE", cnn);
//
da.Fill(dt);
if( nombreTabla == null)
nombreTabla = "Prueba";
foreach(DataRow dr in dt.Rows){
if( dr["TABLE_NAME"].ToString() == nombreTabla ){
return true;
}
}
//
return existe;
}
catch(Exception ex){
MessageBox.Show("ERROR: " + ex.Message, "Comprobar tabla");
return false;
}
}
11. EL MÉTODO PARA CREAR LA TABLA DE EJEMPLO (PRUEBA):
private bool crearTablaPrueba() {
// Crear la tabla de prueba en la base e instancias seleccionadas
// Devuelve true si todo fue bien
bool creada = false;
string sCnn = "Server=" + cboInstancias.Text + "; database=" + cboBases.Text + "; integrated security=yes";
string sCmd = "CREATE TABLE [dbo].[Prueba]( " + "[ID] [int] IDENTITY(1,1) NOT NULL, " + "[Nombre] [nvarchar](50) COLLATE Modern_Spanish_CI_AS NULL," +
"[e-mail] [nvarchar](128) COLLATE Modern_Spanish_CI_AS NULL," + "[FechaAlta] [datetime] NULL," + "[Comentario] [nvarchar](2048) COLLATE
Modern_Spanish_CI_AS NULL," + "CONSTRAINT [PK_Prueba] PRIMARY KEY CLUSTERED (" + "[ID] ASC)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY])" +
" ON [PRIMARY]";
SqlConnection cnn = null;
try{
cnn = new SqlConnection(sCnn);
cnn.Open();
SqlCommand cmd = new SqlCommand(sCmd, cnn);
cmd.ExecuteNonQuery();
creada = true;
}
catch(Exception ex){
MessageBox.Show("Error al crear la tabla:n" + ex.Message);
}
finally{
if( cnn != null ){
if( cnn.State == ConnectionState.Open ){
cnn.Close();
}
}
}
return creada;
}
12. RECOMENDACIONES:
En ADO.NET se supone que hay un modelo de acceso a datos en el que se puede abrir una conexión,
obtener datos o realizar una operación y cerrar luego la conexión.
ADO.NET proporciona dos estrategias básicas de trabajo con este modelo.
Una de ellas consiste en almacenar datos en un conjunto de datos, que esta almacenada en memoria de
los registros con los que se puede trabajar mientras se está desconectado del origen de datos.
Para usar un conjunto de datos, se crea una instancia del mismo y, a continuación, se usa un adaptador
de datos para rellenarlo desde el origen de datos. Posteriormente, se trabaja con los datos del conjunto de
datos, por ejemplo, enlazando controles con los miembros de dicho conjunto. Para obtener más
información.
13. CONCLUSIONES:
ADO .NET está diseñado para fundamentarse en la fuerza del modelo de programación de ADO, mientras
que provee una evolución en la tecnología de acceso a datos para responder a las necesidades
cambiantes del desarrollador. Está diseñado para fortalecer tus conocimientos de ADO, mientras que
provee un control más fino sobre los componentes, recursos y comportamiento de tu aplicación cuando
accede y trabaja con datos.
En cuanto a las mejoras introducidas en el nuevo modelo ADO .NET. Se puede resumir en un
mejor mecanismo de comunicación entre procesos gracias a XML y una independencia del cliente
con respecto al servidor, que posibilita el funcionamiento autónomo de la aplicación (mejor tolerancia a
fallos, independencia del estado de la red).
ADO .NET ofrece una buena cantidad de mejoras respecto a modelos anteriores de ADO. Los beneficios
los podemos agrupar en las categorías
14. APRECIACIÓN DEL EQUIPO:
El Acceso a Datos ADO.NET es comúnmente usado por los programadores para acceder y para
modificar los datos almacenados en un Sistema Gestor de Bases de Datos relacionados,
aunque también puede ser usado para acceder a datos en fuentes no relacionales a ADO.NET .