360 likes | 478 Views
.NET 2.0 Novedades en .NET Framework 2.0 Octavio Hernández | Danysoft. Haciendo visible el camino a .NET IV Encuentro de programadores Microsoft & Danysoft. Agenda. Introducción Principales novedades En el software de base (CLR y herramientas) En las librerías de base
E N D
.NET 2.0Novedades en .NET Framework 2.0Octavio Hernández | Danysoft Haciendo visible el camino a .NETIV Encuentro de programadores Microsoft & Danysoft
Agenda • Introducción • Principales 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
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
WinFX Windows3.0 Servicios Componentes APIs .NET Framework “Whidbey” Introducción (2) • 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:
Novedades en el software de base • Soporte para 64 bits • Soporte para tipos genéricos • Mejoras para la depuración: • Soporte para ‘Editar y Continuar’ • Soporte para visualizadores de datos • Mejoras para el perfilado de aplicaciones • Mejoras relacionadas con la seguridad • Soporte para el despliegue ClickOnce • Activación a partir de un manifiesto
MSBuild Producto Final DESARROLLADOR Novedades en el software de base • Generación mediante MSBuild PROYECTO <Project> <Property … /> <Item … /> <Target … /> </Project>
Novedades en el software de base • Visual Studio 2005 !!!
Novedades en las librerías base • 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 (2) • En System.IO • Clase Console • Clase SerialPort • Soporte para compresión/descompresión GZIP • En 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 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/
C#: Tipos genéricos public class List { private object[] elements; private int count; public void Add(object element) { if (count == elements.Length) Resize(count * 2); elements[count++] = element; } public object this[int index] { get { return elements[index]; } set { elements[index] = value; } } public int Count { get { return count; } } } public class List<T> { private T[] elements; private int count; public void Add(Telement) { 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; } } } DESPUES ANTES List<int> intList = new List<int>(); intList.Add(1); // No hay boxing intList.Add(2); // No hay boxing intList.Add("Three"); // Error de compilación int i = intList[0]; // Sin conversión List intList = new List(); intList.Add(1); // Boxing del argumento intList.Add(2); // Boxing del argumento intList.Add("Three"); // Debería ser error… int i = (int)intList[0]; // Necesaria conversión
C#: Tipos genéricos (2) • 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 (3) • Los parámetros de tipo se pueden aplicar a: • Clases, estructuras, interfaces y delegados • Métodos • Los parámetros de tipo pueden tener restricciones class Dictionary<K,V> where K: IComparable { public void Add(K key, V value) { … if (key.CompareTo(x) == 0) {…} … } }
C#: Tipos genéricos (4) • System.Nullable<T> • Ofrece soporte de valor null para cualquier tipo • Estructura que combina un T y un bool • Sintaxis especial para tipos básicos: int? n; int? x = 123; int? y = null; int i = (int) x; Int j = x.value; If (x.HasValue()) Console.WriteLine(x.Value);
C#: Métodos anónimos class Formulario1: Form { TextBox texto; Button botón; public Formulario1() { texto = new TextBox(); botón = new Button(); botón.Click += delegate { MessageBox.Show(texto.Text); } } }
C#: Iteradores • 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 (2) public class Lista<T> { public IEnumerator<T> GetEnumerator() { for (int i = 0; i < count; i++) yield return elements[i]; } // … } List <Item>items; foreach(Item x in items) { // … }
C#: Clases parciales public partial class Cliente { private int id; private string nombre; private DateTime fechaNac; } public partial class Cliente { public int Edad() { // … } // … }
VB.NET: “My” • 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” (2) Dim sr As New IO.StreamReader(“C:\Datos.TXT”) Dim contenido As String = sr.ReadToEnd sr.Close() Dim contenido As String = _ My.Computer.FileSystem.ReadAllText(“C:\Datos.TXT”) If My.User.IsAuthenticated() Then MessageBox.Show( “Autenticado”) End If My.Forms.FormularioParametros.Show()
VB.NET: Tipos genéricos Public 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ón Dim i As Integer = intList(0) // Sin conversión
VB.NET: Otras adiciones • Using – protección de recursos • Garantiza la llamada a Dispose() al finalizar el bloque Using fStr As New FileStream(ruta, FileMode.Append) For I As Integer = 0 To fStr.Length – 1 fStr.ReadByte() Next ‘ Aquí se cierra el fichero End Using
VB.NET: Otras adiciones (2) • Soporte parcial para tipos sin signo • Clases parciales • Diferente visibilidad en métodos de acceso Get y Set de propiedades • Continue para abandonar un bucle • …
C++: Cambios en el lenguaje • 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.
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.
Más información • Danysoft • Información y artículos, www.danysoft.com • Servicios Profesionales, sp@danysoft.com • Software, utilidades, licencias y libros: www.danyshop.com , info@danysoft.com • .NET • MSDN Developer Centers, msdn.microsoft.com • MSDN Magazine, msdn.microsoft.com/msdnmag • VS 2005 Beta Docs, msdn2.microsoft.com
¡Gracias por su asistencia! Para cualquier consulta, no dude en contactar con Danysoft: Servicios Profesionales: 902 343484 | sp@danysoft.com Software, utilidades y licencias: 902 123146 | info@danysoft.com www.danysoft.com