ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
Introducción-a-Microsoft.NET-[parte3]
1. Temas a Tratar
Introducción a Microsoft .NET
Componentes fundamentales
Funcionamiento interno
Bibliotecas Principales
Ventajas de .NET
Herramientas de Desarrollo .NET
Novedades en .NET 2.0
2. Temas a Tratar
Novedades en .NET 2.0
Generics
Soporte para 64 bits
Tipos Parciales
Nivel de Accesibilidad de Properties
Novedades en ADO.NET 2.0
3. Generics
Son tipos parametrizados soportados por el
CLR
Un tipo parametrizado es aquel que puede
definirse sin especificar los tipos de datos de
sus parámetros en tiempo de compilación.
Nos dan la posibilidad de declarar clases,
estructuras, métodos e interfaces que
actuarán uniformemente sobre valores
cuyos tipos se desconocen a priori y son
recién especificados al momento de su
utilización
4. Generics - Ejemplo
Definiendo una clase genérica en C#
public class ClaseGenerica<T>
{
public T atributo;
}
Utilizando una clase genérica en C#
ClaseGenerica <string> g = new ClaseGenerica<string>();
g.atributo = “Un string";
g.atributo = 2; //Genera Error de Compilación
…
ClaseGenerica<int> g2 = new ClaseGenerica<int>();
g2.atributo = 2; //NO genera error de compilación
5. Generics - Ejemplo
Definiendo una clase genérica en VB.NET
Public Class ClaseGenerica(Of T)
Public atributo As T
End Class
Utilizando una clase genérica en VB.NET
Dim g As New ClaseGenerica(Of String)
g.atributo = “Un string"
g.atributo = 2 „Genera error de compilación
…
Dim g2 As New ClaseGenerica(Of Integer)
g2.atributo = 2 „NO genera error de compilación
9. Soporte para 64 bits
El CLR 1.x sólo tiene soporte para
aplicaciones de 32 bits
No aprovechan las características de los
sistemas operativos de 64 bits, ya que se
ejecutan emuladas
El CLR 2.0 tiene una versión de 64 bits
Permite compilar aplicaciones para que hagan
uso nativamente de las nuevas características
de los sistemas operativos y procesadores de
64 bits
10. Tipos Parciales
Permiten la declaración de un tipo en varios
archivos físicos
Válido para clases y estructuras
Válido para interfaces sólo en C#
Utilizan la palabra clave “partial” en la declaración
Su uso puede tener varias ventajas
Dividir implementaciones complejas en partes pequeñas
Separación de código auto-generado
Mútiples desarrolladores pueden trabajar sobre distintas
secciones del mismo tipo simultáneamente
Puede facilitar el mantenimiento y el control de versiones
de código
11. Tipos Parciales - Ejemplo
// Demo.Part1.cs // Demo.Part3.cs
using System; // Error 1!
public partial class Demo public class Demo
{ {
public Demo() // Error 2!
{ private int i;
Console.Write( "P1" ); // OK
} private int j;
}
// Demo.Part2.cs public void Test()
public partial class Demo {
{ // Error 3!
private int i; Console.Write( "P3" );
} }
}
12. Tipos Parciales - Ejemplo
' Demo.Part1.vb ' Demo.Part3.vb
Imports System ' OK en VB.NET
Public Class Demo
Partial Public Class Demo ' Error 2!
Public Sub New() Private i As Integer
Console.Write("P1") ' OK
End Sub Private j As Integer
End Class
Public Sub Test()
' Demo.Part2.vb ' OK en VB.NET
Partial Public Class Demo Console.Write("P3")
Private i As Integer End Sub
End Class
End Class
13. Modificadores de acceso
El CLR 2.0 permite especificar diferentes
modificadores de acceso para el get y el set de
las propiedades e índices
Permite solamente modificar uno de los dos
elementos de acceso, mientras que el otro toma
el nivel de acceso de la property
Puede especificar más restricciones
Mejora el encapsulamiento de atributos
14. Modificadores de acceso -
Ejemplos
public class Customer{ Public Class Customer
private string id; Private id As String
public string CustomerId { Public Property CustomerId() As String
public get { return id; } Get
private set { id = value; } Return Me.id
} End Get
} Private Set(ByVal value As String)
Me.id = value
End Set
End Property
End Class
15. Novedades en ADO.NET 2.0
API independiente del proveedor ADO.NET
Modelada bajo el patrón “Abstract Factory”
Operaciones Asincrónicas
Permite ejecutar comandos contra la base de datos de
manera asincrónica no bloqueante
Multiple Active Result Sets (MARS)
Permite tener múltiples DataReaders abiertos sobre la
misma conexión
16. Novedades en ADO.NET 2.0
Integración y aprovechamiento de características de
SQL Server 2005
Notification Services
Service Broker
Tipo de dato XML
Soporte a Servicios Web
Mejoras en el DataSet y DataTable
Performance
Serialización
Soporte a XML
18. ADO.NET 2.0 – API Independiente
Interfaces IDb* (ej: IDbConnection)
Provider-
Independiente
clases base abstractas Db* (ej: DbConnection) del código de la
aplicación en
esta capa
Implementa la clase base Db*
Provider-
3rd 3rd específico en el
Sql OleDb ODBC Oracle código de la
Party 1 Party 2
aplicación en
esta capa
19. ADO.NET 2.0 - DataSet
Mejoras de performance
Mantienen indices internos de los registros de sus
DataTables
Serialización binaria del contenido
El DataSet 1.x es siempre serializado a XML
Bueno para integrar datos, malo en
performance
El DataSet 2.0 soporta serialización binaria
Rápido y compacto
DataSet.RemotingFormat = SerializationFormat.Binary
20. ADO.NET 2.0 - DataTable
Operaciones comunes del DataSet también
disponibles en el DataTable:
ReadXml, ReadXmlSchema, WriteXml,
WriteXmlSchema, Clear, Clone, Copy, Merge,
GetChanges
DataTable es auto-serializable:
Buen mecanismo para transmitir datos en una
aplicación distribuída
21. ADO.NET 2.0 - Tipo de dato XML
en el DataSet
DataTable acepta columnas de tipo XML
System.Data.SqlTypes.SqlXml
Expuestas como una instancia de
XPathDocument
Pueden accederse vía XmlReader
Facilidades para trabajar con documentos
XML como un conjunto de valores
22. ADO.NET 2.0 - Actualizaciones
Batch
ADO.NET 2.0 permite ejecutar múltiples
instrucciones SQL sobre una base de
datos de forma batch, usando el
sp_executesql
Reduce tráfico de red
DataAdapter.UpdateBatchSize =
batch_size
Trabaja con transacciones
Trabaja con los proveedores para SQL
Server y Oracle