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

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

description

.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 - PowerPoint PPT Presentation

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

Page 1: 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

Page 2: Haciendo visible el camino a .NET IV Encuentro de programadores Microsoft & 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

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

Introducción

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

.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

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

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”

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

Principales novedades

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

Principales novedades

- en el software de base

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

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

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

Generación mediante MSBuild

Novedades en el software de base

Producto Final

DESARROLLADOR

MSBuildMSBuild

PROYECTO<Project> <Property … /> <Item … /> <Target … /></Project>

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

Visual Studio 2005 !!!

Novedades en el software de base

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

Principales novedades

- en la FCL

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

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

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

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)

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

Principales novedades

- en los lenguajes

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

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

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

Principales novedades

- en los lenguajes: VC#

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

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

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

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)

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

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

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

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

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

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

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

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

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

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

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

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

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

Principales novedades

- en los lenguajes: VB.NET

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

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”

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

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

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

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

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

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

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

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)

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

Principales novedades

- en los lenguajes: VC++

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

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

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

Conclusiones

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

.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

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

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

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

¡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