1 / 36

Haciendo visible el camino a .NET IV Encuentro de programadores Microsoft & Danysoft

.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

Télécharger la présentation

Haciendo visible el camino a .NET IV Encuentro de programadores Microsoft & Danysoft

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. .NET 2.0Novedades en .NET Framework 2.0Octavio Hernández | Danysoft Haciendo visible el camino a .NETIV Encuentro de programadores Microsoft & Danysoft

  2. 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

  3. Introducción

  4. 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

  5. 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:

  6. Principales novedades

  7. Principales novedades - en el software de base

  8. 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

  9. MSBuild Producto Final DESARROLLADOR Novedades en el software de base • Generación mediante MSBuild PROYECTO <Project> <Property … /> <Item … /> <Target … /> </Project>

  10. Novedades en el software de base • Visual Studio 2005 !!!

  11. Principales novedades - en la FCL

  12. 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

  13. 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

  14. Principales novedades - en los lenguajes

  15. 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/

  16. Principales novedades - en los lenguajes: VC#

  17. 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

  18. 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

  19. 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) {…} … } }

  20. 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);

  21. 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); } } }

  22. 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

  23. 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) { // … }

  24. C#: Clases parciales public partial class Cliente { private int id; private string nombre; private DateTime fechaNac; } public partial class Cliente { public int Edad() { // … } // … }

  25. Principales novedades - en los lenguajes: VB.NET

  26. 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 • …

  27. 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()

  28. 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

  29. 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

  30. 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 • …

  31. Principales novedades - en los lenguajes: VC++

  32. 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.

  33. Conclusiones

  34. 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.

  35. 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

  36. ¡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

More Related