Conceptos fundamentales de ADO.NET Leonardo Diez Dolinski Servicios Profesionales Danysoft.
Haciendo visible el camino a .NET IV Encuentro de programadores Microsoft & Danysoft
-
Upload
brent-castillo -
Category
Documents
-
view
24 -
download
1
description
Transcript of Haciendo visible el camino a .NET IV Encuentro de programadores Microsoft & Danysoft
Haciendo visible el camino a .NETIV Encuentro de programadores Microsoft
& Danysoft
.NET 2.0
Novedades en .NET Framework 2.0Octavio Hernández | Danysoft
IntroducciónPrincipales novedades
En el software de base (CLR y herramientas) En las librerías de base En los lenguajes de programación
Visual C# Visual Basic .NET Visual C++
Conclusiones
Agenda
Introducción
.NET Framework ha supuesto un rotundo éxito para Microsoft, de lo que dan fe diversos hechos y estadísticas*:
Más de 70 millones de sistemas instalados
Utilizado por el 60% de las Fortune 100 Estandarización ISO Amplio soporte de los desarrolladores
La versión 2.0 se apoya en el éxito de su predecesora e incluye una gran cantidad de novedades y mejoras que la harán sin duda una versión revolucionaria.
* Datos PDC 2003
Introducción
Objetivos principales de .NET 2.0 Ofrecer continuidad y mejoras en
cuanto a seguridad, despliegue, administración y rendimiento. Permitir el aumento de la productividad
de los desarrolladores. Allanar el camino hacia el futuro:
Introducción (2)
ComponentesComponentes
ServiciosServicios
APIsAPIsWindows
3.0
WinFXWinFX
.NET Framework “Whidbey”
Principales novedades
Principales novedades
- en el software de base
Soporte para 64 bitsSoporte para tipos genéricosMejoras para la depuración:
Soporte para ‘Editar y Continuar’ Soporte para visualizadores de datos
Mejoras para el perfilado de aplicacionesMejoras relacionadas con la seguridadSoporte para el despliegue ClickOnce
Activación a partir de un manifiesto
Novedades en el software de base
Generación mediante MSBuild
Novedades en el software de base
Producto Final
DESARROLLADOR
MSBuildMSBuild
PROYECTO<Project> <Property … /> <Item … /> <Target … /></Project>
Visual Studio 2005 !!!
Novedades en el software de base
Principales novedades
- en la FCL
Novedades que serán tema de otras presentaciones:
En ADO.NET En Windows Forms En ASP.NET
En System.Xml Mejoras en rendimiento XmlFactory Soporte para XQuery SQLXML
Novedades en las librerías base
En System.IO Clase Console Clase SerialPort Soporte para compresión/descompresión
GZIPEn System.Net
Soporte para FTP Mejoras en la programación con sockets Clase HttpWebListener API para caché de HTTP Obtención de información de red Clase PING
Novedades en las librerías base (2)
Principales novedades
- en los lenguajes
Para la mayoría de las novedades que se describen a continuación, el entorno de Visual Studio 2005 ofrece diversas facilidades que no se describen aquí (aunque algunas de ellas se presentarán en la sesión de demostración).Además de la Beta de VS 2005, Microsoft ha puesto a disposición de los desarrolladores versiones de aprendizaje (“Express”) para cada uno de los lenguajes. Pueden descargarse de:http://lab.msdn.microsoft.com/vs2005/
Novedades en los lenguajes
Principales novedades
- en los lenguajes: VC#
C#: Tipos genéricos
public class Listpublic class List{{ private object[] elements;private object[] elements; private int count;private int count;
public void Add(object element) {public void Add(object element) { if (count == elements.Length) Resize(count * 2);if (count == elements.Length) Resize(count * 2); elements[count++] = element;elements[count++] = element; }}
public object this[int index] {public object this[int index] { get { return elements[index]; }get { return elements[index]; } set { elements[index] = value; }set { elements[index] = value; } }}
public int Count {public int Count { get { return count; }get { return count; } }}}}
List intList = new List();List intList = new List();
intList.Add(1); // Boxing del argumentointList.Add(1); // Boxing del argumentointList.Add(2); // Boxing del argumentointList.Add(2); // Boxing del argumentointList.Add("Three"); // Debería ser error…intList.Add("Three"); // Debería ser error…
int i = (int)intList[0]; // Necesaria conversiónint i = (int)intList[0]; // Necesaria conversión
public class List<T>{ private T[] elements; private int count;
public void Add(T element) { if (count == elements.Length) Resize(count * 2); elements[count++] = element; }
public T this[int index] { get { return elements[index]; } set { elements[index] = value; } }
public int Count { get { return count; } }}
List<int> intList = new List<int>();
intList.Add(1); // No hay boxingintList.Add(2); // No hay boxingintList.Add("Three"); // Error de compilación
int i = intList[0]; // Sin conversión
ANTESDESPUES
Ventajas Control de tipos, no hace falta boxing ni
conversión de tipos Menor tamaño del código (con relación a
plantillas C++)
¿Cómo se implementan? Se instancian en tiempo de ejecución, no de
compilación Se validan al ser declarados, no al ser
instanciados Funcionan tanto para tipos valor como referencia Información completa sobre los tipos en tiempo
de ejecución
C#: Tipos genéricos (2)
C#: Tipos genéricos (3)
Los parámetros de tipo se pueden aplicar a:Clases, estructuras, interfaces y delegadosMétodos
Los parámetros de tipo pueden tener restricciones
Los parámetros de tipo se pueden aplicar a:Clases, estructuras, interfaces y delegadosMétodos
Los parámetros de tipo pueden tener restricciones
class Dictionary<K,V> class Dictionary<K,V> where K: where K: IComparableIComparable{{ public void Add(K key, V value) {public void Add(K key, V value) { … … if (if (key.CompareTo(x) == 0key.CompareTo(x) == 0) {…}) {…} … … }}}}
C#: Tipos genéricos (4)
System.Nullable<T>Ofrece soporte de valor null para cualquier tipoEstructura que combina un T y un boolSintaxis especial para tipos básicos: int? n;
System.Nullable<T>Ofrece soporte de valor null para cualquier tipoEstructura que combina un T y un boolSintaxis especial para tipos básicos: int? n;
int? x = 123;int? x = 123;int? y = null;int? y = null;
int i = (int) x;int i = (int) x;Int j = x.value;Int j = x.value;
If (x.HasValue()) If (x.HasValue()) Console.WriteLine(x.Value);Console.WriteLine(x.Value);
C#: Métodos anónimos
class Formulario1: Formclass Formulario1: Form{{ TextBox texto;TextBox texto; Button botón;Button botón;
public Formulario1() {public Formulario1() { texto = new TextBox();texto = new TextBox(); botón = new Button();botón = new Button(); botón.Click += botón.Click += delegatedelegate { { MessageBox.Show(texto.Text);MessageBox.Show(texto.Text); }} }}}}
foreach La sentencia foreach se apoya en un patrón de
enumeración Método GetEnumerator()
Iteradores Métodos que calculan y devuelven una
secuencia de valores yield return; y yield break; Debe devolver IEnumerator o IEnumerable
C#: Iteradores
C#: Iteradores (2)
public class Lista<T>public class Lista<T>{{ public IEnumerator<T> GetEnumerator()public IEnumerator<T> GetEnumerator() {{ for (int i = 0; i < count; i++)for (int i = 0; i < count; i++) yield return elements[i];yield return elements[i]; }} // …// …}}
List <Item>items;List <Item>items;
foreach(Item x in items) {foreach(Item x in items) { // …// …}}
C#: Clases parciales
public partial class Clientepublic partial class Cliente{{ private int id;private int id; private string nombre;private string nombre; private DateTime fechaNac;private DateTime fechaNac;}}
public partial class Clientepublic partial class Cliente{{ public int Edad() {public int Edad() { // …// … }} // …// …}}
Principales novedades
- en los lenguajes: VB.NET
Ofrece una jerarquía de navegación intuitiva, que expone la funcionalidad de las librerías .NET a través de un conjunto de objetos raíz de fácil comprensión:
Application Forms Resources Settings Computer User …
VB.NET: “My”
VB.NET: “My” (2)
Dim sr As New IO.StreamReader(“C:\Dim sr As New IO.StreamReader(“C:\Datos.TXT”)Datos.TXT”)Dim contenido As String = sr.ReadToEndDim contenido As String = sr.ReadToEndsr.Close()sr.Close()Dim contenido As String = _Dim contenido As String = _
My.Computer.FileSystem.ReadAllText(“C:\My.Computer.FileSystem.ReadAllText(“C:\Datos.TXT”)Datos.TXT”)
If My.User.IsAuthenticated() ThenIf My.User.IsAuthenticated() Then MessageBox.Show( “Autenticado”)MessageBox.Show( “Autenticado”)End IfEnd If
My.Forms.FormularioParametros.Show()My.Forms.FormularioParametros.Show()
VB.NET: Tipos genéricosPublic Class List(Of T) Private elements() As T Private elementcount As Integer Public Sub Add(ByVal element As T) If elementcount = elements.Length Then
Resize(elementcount * 2) elements(elementcount) = element count += 1 End Sub Public Default Property Item(ByVal i As Integer) As T Get Return elements(i) End Get Set (ByVal Value As T) elements(i) = Value End Set End Property
Dim intList As New List(Of Integer) intList.Add(1) // No hay boxing intList.Add(2) // No hay boxing intList.Add("Three") // Error de compilaciónDim i As Integer = intList(0) // Sin conversión
Using – protección de recursos Garantiza la llamada a Dispose() al
finalizar el bloque
VB.NET: Otras adiciones
Using fStr As New FileStream(ruta, Using fStr As New FileStream(ruta, FileMode.Append)FileMode.Append)
For I As Integer = 0 To fStr.Length – 1For I As Integer = 0 To fStr.Length – 1 fStr.ReadByte()fStr.ReadByte() NextNext ‘ ‘ Aquí se cierra el ficheroAquí se cierra el ficheroEnd UsingEnd Using
Soporte parcial para tipos sin signoClases parcialesDiferente visibilidad en métodos de acceso Get y Set de propiedadesContinue para abandonar un bucle…
VB.NET: Otras adiciones (2)
Principales novedades
- en los lenguajes: VC++
Bajo la dirección de Herb Sutter y Stan Lippman, ha sido creada C++/CLI, una extensión de C++ para ofrecer soporte para la programación .NET. El documento base ha sido enviado a ECMA para su estandarización, siguiendo la del CLI y C#.Esta extensión de C++ sustituirá en VS 2005 a las anteriores Extensiones Manejadas, y promete ofrecer una base mucho más sólida para el avance hacia el futuro.
C++: Cambios en el lenguaje
Conclusiones
.NET Framework 2.0 ofrece una gran cantidad de novedades y mejoras a todos los niveles que sin duda permitirán aumentar en gran medida la experiencia del usuario y la productividad del desarrollador.
Conclusiones
Más información
DanysoftInformación y artículos, www.danysoft.comServicios Profesionales, [email protected], utilidades, licencias y libros: www.danyshop.com , [email protected]
.NETMSDN Developer Centers, msdn.microsoft.comMSDN Magazine, msdn.microsoft.com/msdnmagVS 2005 Beta Docs, msdn2.microsoft.com
¡Gracias por su asistencia!
Para cualquier consulta, no dude en contactar con Danysoft:
Servicios Profesionales: 902 343484 | [email protected] Software, utilidades y licencias: 902 123146 | [email protected] www.danysoft.com