haciendo visible el camino a .net iv encuentro de programadores microsoft & 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 PresentationTRANSCRIPT
![Page 1: Haciendo visible el camino a .NET IV Encuentro de programadores Microsoft & Danysoft](https://reader036.vdocuments.site/reader036/viewer/2022062517/56812f2e550346895d94c19a/html5/thumbnails/1.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062517/56812f2e550346895d94c19a/html5/thumbnails/2.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062517/56812f2e550346895d94c19a/html5/thumbnails/3.jpg)
Introducción
![Page 4: Haciendo visible el camino a .NET IV Encuentro de programadores Microsoft & Danysoft](https://reader036.vdocuments.site/reader036/viewer/2022062517/56812f2e550346895d94c19a/html5/thumbnails/4.jpg)
.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](https://reader036.vdocuments.site/reader036/viewer/2022062517/56812f2e550346895d94c19a/html5/thumbnails/5.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062517/56812f2e550346895d94c19a/html5/thumbnails/6.jpg)
Principales novedades
![Page 7: Haciendo visible el camino a .NET IV Encuentro de programadores Microsoft & Danysoft](https://reader036.vdocuments.site/reader036/viewer/2022062517/56812f2e550346895d94c19a/html5/thumbnails/7.jpg)
Principales novedades
- en el software de base
![Page 8: Haciendo visible el camino a .NET IV Encuentro de programadores Microsoft & Danysoft](https://reader036.vdocuments.site/reader036/viewer/2022062517/56812f2e550346895d94c19a/html5/thumbnails/8.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062517/56812f2e550346895d94c19a/html5/thumbnails/9.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062517/56812f2e550346895d94c19a/html5/thumbnails/10.jpg)
Visual Studio 2005 !!!
Novedades en el software de base
![Page 11: Haciendo visible el camino a .NET IV Encuentro de programadores Microsoft & Danysoft](https://reader036.vdocuments.site/reader036/viewer/2022062517/56812f2e550346895d94c19a/html5/thumbnails/11.jpg)
Principales novedades
- en la FCL
![Page 12: Haciendo visible el camino a .NET IV Encuentro de programadores Microsoft & Danysoft](https://reader036.vdocuments.site/reader036/viewer/2022062517/56812f2e550346895d94c19a/html5/thumbnails/12.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062517/56812f2e550346895d94c19a/html5/thumbnails/13.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062517/56812f2e550346895d94c19a/html5/thumbnails/14.jpg)
Principales novedades
- en los lenguajes
![Page 15: Haciendo visible el camino a .NET IV Encuentro de programadores Microsoft & Danysoft](https://reader036.vdocuments.site/reader036/viewer/2022062517/56812f2e550346895d94c19a/html5/thumbnails/15.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062517/56812f2e550346895d94c19a/html5/thumbnails/16.jpg)
Principales novedades
- en los lenguajes: VC#
![Page 17: Haciendo visible el camino a .NET IV Encuentro de programadores Microsoft & Danysoft](https://reader036.vdocuments.site/reader036/viewer/2022062517/56812f2e550346895d94c19a/html5/thumbnails/17.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062517/56812f2e550346895d94c19a/html5/thumbnails/18.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062517/56812f2e550346895d94c19a/html5/thumbnails/19.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062517/56812f2e550346895d94c19a/html5/thumbnails/20.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062517/56812f2e550346895d94c19a/html5/thumbnails/21.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062517/56812f2e550346895d94c19a/html5/thumbnails/22.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062517/56812f2e550346895d94c19a/html5/thumbnails/23.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062517/56812f2e550346895d94c19a/html5/thumbnails/24.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062517/56812f2e550346895d94c19a/html5/thumbnails/25.jpg)
Principales novedades
- en los lenguajes: VB.NET
![Page 26: Haciendo visible el camino a .NET IV Encuentro de programadores Microsoft & Danysoft](https://reader036.vdocuments.site/reader036/viewer/2022062517/56812f2e550346895d94c19a/html5/thumbnails/26.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062517/56812f2e550346895d94c19a/html5/thumbnails/27.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062517/56812f2e550346895d94c19a/html5/thumbnails/28.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062517/56812f2e550346895d94c19a/html5/thumbnails/29.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062517/56812f2e550346895d94c19a/html5/thumbnails/30.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062517/56812f2e550346895d94c19a/html5/thumbnails/31.jpg)
Principales novedades
- en los lenguajes: VC++
![Page 32: Haciendo visible el camino a .NET IV Encuentro de programadores Microsoft & Danysoft](https://reader036.vdocuments.site/reader036/viewer/2022062517/56812f2e550346895d94c19a/html5/thumbnails/32.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062517/56812f2e550346895d94c19a/html5/thumbnails/33.jpg)
Conclusiones
![Page 34: Haciendo visible el camino a .NET IV Encuentro de programadores Microsoft & Danysoft](https://reader036.vdocuments.site/reader036/viewer/2022062517/56812f2e550346895d94c19a/html5/thumbnails/34.jpg)
.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](https://reader036.vdocuments.site/reader036/viewer/2022062517/56812f2e550346895d94c19a/html5/thumbnails/35.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062517/56812f2e550346895d94c19a/html5/thumbnails/36.jpg)
¡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