La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Microsoft Visual Studio 2005.NET Framework 2.0 e Introducción a Visual Studio 2005 Nombre Presentador.

Presentaciones similares


Presentación del tema: "Microsoft Visual Studio 2005.NET Framework 2.0 e Introducción a Visual Studio 2005 Nombre Presentador."— Transcripción de la presentación:

1 Microsoft Visual Studio 2005.NET Framework 2.0 e Introducción a Visual Studio 2005 Nombre Presentador

2 Agenda Introducción a Microsoft.NET.NET Framework, Lenguajes y Herramientas Modelo de Ejecución Novedades en los Lenguajes Base Class Library ADO.NET 2.0 Mejoras del IDE

3 Paradigmas de Programación 198019902000 Funcionalidad Win16 Win32 COM MFC Componentes Servicios APIs Windows 3.0

4 ¿Qué NO es.NET?.NET no es un Sistema Operativo.NET no es un Lenguaje de Programación.NET no es un Entorno de Desarrollo.NET no es un Servidor de Aplicaciones.NET no es un producto empaquetado que se pueda comprar como tal

5 ¿Qué es.NET? Plataforma de Desarrollo compuesta de Entorno de Ejecución (Runtime) Bibliotecas de Funcionalidad (Class Library) Lenguajes de Programación Compiladores Herramientas de Desarrollo (IDE & Tools) Guías de Arquitectura La evolución de la plataforma COM

6 Características de.NET Plataforma de ejecución intermedia. 100% Orientada a Objetos. Multilenguaje. Plataforma Empresarial de Misión Crítica. Modelo de Programación único para todo tipo de aplicaciones y dispositivos de hardware. Se integra fácilmente con aplicaciones existentes desarrolladas en plataformas Microsoft. Se integra fácilmente con aplicaciones desarrolladas en otras plataformas.

7 Plataforma de Ejecución Intermedia Entorno de Desarrollo Microsoft.NET Librerías de Funcionalidad Lenguajes de ProgramaciónEntorno de Ejecución Sistema Operativo (Familia Windows) Aplicación.NET

8 ¿Qué es el.NET Framework? Paquete de software fundamental de la plataforma.NET. Incluye: Entorno de Ejecución (Runtime) Bibliotecas de Funcionalidad (Class Library) Se distribuye en forma libre y gratuita Existen tres variantes principales:.NET Framework Redistributable Package.NET Framework SDK.NET Compact Framework Está instalado por defecto en Windows 2003 Server o superior

9 .NET Compact Framework * * Aplicación Móvil Aplicación de Consola Aplicación Web Aplicación de Escritorio ¿Dónde instalar el.NET Framework? ServidorCliente * Sólo si la aplicación es distribuída

10 Línea del tiempo de.NET Visual Studio 6.0 Visual Basic VBA Visual FoxPro VBScript C++ J++ JScript ASP Visual Studio.NET 2003.NET Framework 1.1.NET Compact Framework J# Visual Studio “Orcas”.NET Framework “Orcas”.NET Compact Framework “Orcas” 2000 2001 2002 2003 2004 2005 2006 y más Visual Studio 2005 (“Whidbey”).NET Framework 2.0 (“Whidbey”).NET Compact Framework 2.0 (“Whidbey”) Visual Studio.NET 2002.NET Framework 1.0 Visual Basic.NET C#

11 WindowsCOM+ Services Common Language Runtime Base Class Library ADO.NET y XML ASP.NETWindows Forms Common Language Specification VBC++C#J#… Arquitectura del.NET Framework.NET Framework Redistributable.NET Framework SDK.NET Framework Class Library

12 CLR – Common Language Runtime El CLR es el motor de ejecución (runtime) de.NET Características Compilación Just-In-Time (JIT) Gestión automática de memoria (Garbage Collector). Gestión de errores consistente (Excepciones) Gestión de Seguridad Multithreading.

13 .NET Framework Class Library Conjunto de Tipos básicos (clases, interfaces, etc.) que vienen incluídos en el.NET Framework Los tipos están organizados en jerarquías lógicas de nombres, denominados NAMESPACES Los tipos son INDEPENDIENTES del lenguaje de desarrollo Es extensible y totalmente orientada a objetos

14 .NET Framework Class Library El namespace raíz es SYSTEM System System.DataSystem.Xml System.Web Globalization Diagnostics Configuration Collections Resources Reflection Net IO Threading Text ServiceProcess Security Common OleDb SqlClient Odbc XPath XSLT Runtime InteropServices Remoting Serialization Serialization ConfigurationSessionState CachingSecurity Services Description Discovery Protocols UI HtmlControls WebControls System.Drawing Imaging Drawing2D Text Printing System.Windows.Forms DesignComponentModel

15 Common Language Specification (CLS) Especificación que estandariza una serie de características soportadas por el CLR Contrato entre diseñadores de lenguajes de programación y autores de bibliotecas Permite la interoperabilidad entre lenguajes Microsoft provee implementaciones de 4 lenguajes, todos compatibles con CLS Microsoft Visual Basic.NET Microsoft Visual C#.NET Microsoft Visual J#.NET Microsoft Visual C++.NET

16 Common Language Runtime VB Código Fuente C++C# Assembly IL Code Assembly Servicios del Sistema Operativo Codigo Nativo CódigoManejado Modelo de Ejecución Assembly IL Code Componente No manejado Compilador JIT CompiladorCompiladorCompilador Ejecutable (.EXE), Página Web (.ASPX), Servicio Local (.DLL) o WebService (.ASMX)

17 Novedades del.NET Framework 2.0 Generics Soporte para 64 bits Tipos Parciales Modificadores de acceso Mejoras en VB.NET Mejoras en C#

18 Generics Son tipos parametrizados soportados por el CLR Un tipo parametrizado es aquel que puede definirse sin especificar los tipos de datos de sus parámetros en tiempo de compilación. Nos dan la posibilidad de declarar clases, estructuras, métodos e interfaces que actuarán uniformemente sobre valores cuyos tipos se desconocen a priori y son recién especificados al momento de su utilización

19 Generics - Ejemplo Definiendo una clase genérica en C# Utilizando una clase genérica en C# public class ClaseGenerica { public T atributo; } ClaseGenerica g = new ClaseGenerica (); g.atributo = “Un string"; g.atributo = 2; //Genera Error de Compilación … ClaseGenerica g2 = new ClaseGenerica (); g2.atributo = 2; //NO genera error de compilación

20 Generics - Ejemplo Definiendo una clase genérica en VB.NET Utilizando una clase genérica en VB.NET Public Class ClaseGenerica(Of T) Public atributo As T End Class Dim g As New ClaseGenerica(Of String) g.atributo = “Un string" g.atributo = 2 ‘Genera error de compilación … Dim g2 As New ClaseGenerica(Of Integer) g2.atributo = 2 ‘NO genera error de compilación

21 Generics - Colecciones Colecciones Genéricas Vs. Colecciones Tradicionales System.Collections.GenericSystem.Collections Comparer Dictionary HashTable List ArrayList Queue SortedDictionary SortedList Stack ICollection IComparable System.IComparable IComparer IDictionary IEnumerable IEnumerator IKeyComparer IList

22 Generics - Colecciones Sin generics Con generics

23 Generics - Colecciones Sin generics Con generics

24 Soporte para 64 bits El CLR 1.x sólo tiene soporte para aplicaciones de 32 bits No aprovechan las características de los sistemas operativos de 64 bits, ya que se ejecutan emuladas El CLR 2.0 tiene una versión de 64 bits Permite compilar aplicaciones para que hagan uso nativamente de las nuevas características de los sistemas operativos y procesadores de 64 bits

25 Tipos Parciales Permiten la declaración de un tipo en varios archivos físicos Válido para clases y estructuras Válido para interfaces sólo en C# Utilizan la palabra clave “partial” en la declaración Su uso puede tener varias ventajas Dividir implementaciones complejas en partes pequeñas Separación de código auto-generado Mútiples desarrolladores pueden trabajar sobre distintas secciones del mismo tipo simultáneamente Puede facilitar el mantenimiento y el control de versiones de código

26 // Demo.Part1.cs using System; public partial class Demo { public Demo() public Demo() { Console.Write( "P1" ); Console.Write( "P1" ); }} // Demo.Part2.cs public partial class Demo { private int i; private int i;} // Demo.Part3.cs // Error 1! public class Demo { // Error 2! // Error 2! private int i; private int i; // OK // OK private int j; private int j; public void Test() public void Test() { // Error 3! // Error 3! Console.Write( "P3" ); Console.Write( "P3" ); }} Tipos Parciales - Ejemplo

27 ' Demo.Part1.vb Imports System Partial Public Class Demo Public Sub New() Public Sub New() Console.Write("P1") Console.Write("P1") End Sub End Sub End Class ' Demo.Part2.vb Partial Public Class Demo Private i As Integer Private i As Integer End Class ' Demo.Part3.vb ' OK en VB.NET Public Class Demo ' Error 2! ' Error 2! Private i As Integer Private i As Integer ' OK ' OK Private j As Integer Private j As Integer Public Sub Test() Public Sub Test() ' OK en VB.NET ' OK en VB.NET Console.Write("P3") Console.Write("P3") End Sub End Sub End Class

28 Modificadores de acceso El CLR 2.0 permite especificar diferentes modificadores de acceso para el get y el set de las propiedades e índices Permite solamente modificar uno de los dos elementos de acceso, mientras que el otro toma el nivel de acceso de la property Puede especificar más restricciones Mejora el encapsulamiento de atributos

29 Modificadores de acceso - Ejemplos public class Customer{ private string id; private string id; public string CustomerId { public string CustomerId { public get { return id; } public get { return id; } private set { id = value; } private set { id = value; } }} Public Class Customer Private id As String Private id As String Public Property CustomerId() As String Public Property CustomerId() As String Get Get Return Me.id Return Me.id End Get End Get Private Set(ByVal value As String) Private Set(ByVal value As String) Me.id = value Me.id = value End Set End Set End Property End Property End Class

30 Provee acceso a funcionalidades comunes Reduce drásticamente la cantidad de código Aumento de la productividad y facilidad de uso Disponible a través del IntelliSense La clase My incluye: My.ApplicationMy.ComputerMy.UserMy.FormsMy.WebservicesMy.ResourcesMy.Settings Novedades en Lenguajes VB.NET - Namespace My

31 Novedades en Lenguajes VB.NET – Características de C# Sobrecarga de operadores y conversiones Documentación de código Nuevos tipos (UShort, UInteger, ULong) Instrucción Continue Instrucción Using Compilador compatible CLS

32 Novedades en Lenguajes VB.NET – Desarrollo con Visual Studio Code snippets (Fragmentos de código) Intellisense mejorado Corrector automático Asistente de excepciones

33 Novedades en Lenguajes C# - Métodos anónimos Permite escribir delegados “inline” Los métodos anónimos ofrecen una solución elegante Un delegado puede ser usado en cualquier lugar. Se crea usando la palabra clave delegate.

34 Novedades en Lenguajes C# - Métodos anónimos (Ejemplo) Thread task = new Thread( new ThreadStart( this.Background )); private void Background() { Trace.Write("1.0"); } Thread task = new Thread( delegate(){ delegate(){ Trace.Write("2.0");} ); Trace.Write("2.0");} ); } this.saveButton.Click += new EventHandler( new EventHandler( this.SaveClick ); this.SaveClick ); private void SaveClick( object sender, object sender, EventArgs e ) EventArgs e ){ this.Save(); this.Save();} this.saveButton.Click += delegate { this.Save(); }; delegate { this.Save(); };

35 Novedades en Lenguajes C# - Iteradores Bloques de código que ordenan una secuencia Crear una colección en 1.1 es complejo Clase auxiliar IEnumerator compleja de implementar C# 2.0 simplifica el proceso Implementar IEnumerable en la clase (puede ser tipada) Utilizar nueva sentencia yield yield return produce el próximo valor de la iteración yield break indica que la iteración está completa

36 Novedades en Lenguajes C# - Iteradores (Ejemplo) public class CityCollection : IEnumerable { string[] m_Cities = {"New York","Paris","London"}; public IEnumerator GetEnumerator() { for(int i = 0; i<m_Cities.Length; i++) yield return m_Cities[i]; }

37 Novedades en Lenguajes C# - Desarrollo con Visual Studio Auto code Abreviaturas de código común Refactoring Ocho refactorizaciones Renombrar Extraer método Encapsular campo Generar esqueleto …

38 Mejoras en el Tracing Correlation Manager Manager Trace TraceSource Debug SourceSwitch TraceListenerCollection TraceFilter TraceListener TraceOptions

39 TraceSource y SourceSwitch TraceSource Nos provee métodos que permiten hacer el seguimiento a eventos, datos, etc. Controlado por archivos de configuración Cada instancia de TraceSource tiene su propio nombre y colección de TraceListener. Propiedades Filter y Switch SourceSwitch Controla las salidas del tracing y el debug sin recompilar el código. Métodos TraceData, TraceEvent y TraceInformation

40 Nuevos Listeners ConsoleTraceListener Usado para escribir salidas de trace y debug en la consola. DelimitedListTraceListener Logs escritos en archivos de formato.CSV(Comma Separated Value) XmlWriterTraceListener Escribe las salidas del trace en archivos XML

41 Integración con ASP.NET Tracing WebPageTraceListener Envia mensajes de Trace al ASP.NET Web Page Output. Se puede configurar vía Web.Config o por código.

42 Opciones de Configuración Listener.TraceOutputOptions Determina el contenido opcional para la salida del Trace. Trace.CorrelationManager Provee métodos para almacenar identificadores de hilos usando la propiedad ActivityId. Archivo XML para configurar el TraceSource <add name="Console" <add name="Console" type="System.Diagnostics.ConsoleTraceListener" /> type="System.Diagnostics.ConsoleTraceListener" /> </source>

43 Performance del CLR Performance del CLR similar para código nativo. NGEN (Native Image Generator ) Herramienta para compilar assemblies a código nativo. Contiene Imágenes Nativas las cuales contienen los archivos de código compilado para el procesador de una maquina especifica y las instala dentro del cache de la maquina. No hay necesidad del JIT porque utiliza las imágenes que están en Cache.

44 Performance del CLR Nuevas APIs APIs para recursos de búsqueda ResourceManager.GetString Lightweight CodeGen Mejoras en las APIs CrossAppDomain Remoting (200 veces más rápido) Desempeño para llamar Delegados AppDomain Footprints (reducido en 20%) UTF8Encoding (2.5 veces más rápido)

45 Semáforos Un semáforo permite que un número limitado de subprocesos (Threads) de uno o varios procesos tengan acceso a un recurso o pool de recursos. Semáforo Thread Thread Thread Thread Thread Recurso Contador Count =3 Thread Thread

46 Namespace: Namespace: System.Threading.Semaphore Semáforos // Crea un semáforo con un contador de 3 Semaphore sem = new Semaphore(3) // Bloquea hasta un contador disponible sem.WaitOne() // Usa el recurso protegido // Liberación del semáforo sem.Release()

47 Compresión de Stream Namespace System.IO.Compression GZipStream Métodos y Propiedades para comprimir y descomprimir Streams o ”Secuencia de Bytes”. Gzip algoritmo estándar. DeflateStream (LZW77) StreamWriter GZipStream

48 System.Security.SecureString Soluciona los problemas en System.String (Encriptación,alteración y limpieza de contenido) Usado para textos confidenciales (Contenido cifrado) Métodos soportados InsertAt, AppendChar, RemoveAt y Clear MakeReadOnly para bloquear string. Sin miembros para inspeccionar, comparar o convertir el valor de la cadena.

49 HttpListener Nos permite crear un protocolo HTTP Listener que responde solicitudes HTTP. No requiere del IIS. URI Usado para mapear solicitudes. Usa HTTP.SYS para crear posibles HTTP Listener (Win2003, Win XP SP2+) Acceso vía HttpListenerRequest y HttpListenerResponse

50 Puerto Serial Antes usado por Pinvoke con APIS de Win32 Namespace System.IO.Ports Clase SerialPort Acceso Físico y Virtual como los soportados por dispositivos como el USB Async y eventos de I/O Orientado a eventos Bloqueante, vía métodos read y write

51 Personalización de Culturas Crear nuevas culturas Personalización de sufijos, formatos existentes, Combinación de 2 lenguajes, paises. CultureAndRegionInfoBuilder Los detalles de la cultura pueden ser serializados en.Xml

52 Personalización de Culturas // Crea un nuevo objeto CultureAndRegionInfoBuilder // basado en culture en-US CultureAndRegionInfoBuilder carib = new CultureAndRegionInfoBuilder( CultureAndRegionInfoBuilder( new CultureInfo("en-US"), new CultureInfo("en-US"), new RegionInfo("US"), new RegionInfo("US"), "en", "US", "microsoft"); "en", "US", "microsoft"); // Registra esta máquina en el deploy carib.Register(); // Salva en XML carib.Save("c:\temp\myculture.xml"); // Hace referencia al nuevo objeto CultureInfo CultureInfo ci = new CultureInfo("en-US-microsoft);

53 Novedades para Console Captura y atribuye el tamaño de la Consola, del buffer de pantalla y del cursor Cambia la posición de la ventana de la consola y del cursor Cambia el color y el título de la ventana Captura teclas presionadas

54 ADO.NET 2.0 - Mejoras API Independiente del Proveedor ADO.NET Modelada bajo el patrón Abstract Factory Operaciones asíncronas Permite ejecutar comandos contra la Base de Datos de manera asíncrona no bloqueante. Multiple Active Result Sets (MARS) Permite tener múltiples DataReaders abiertos sobre la misma conexión.

55 ADO.NET 2.0 - Mejoras Integración y aprovechamiento de características de SQL Server 2005 Notification Services Service Broker Tipo de dato XML Soporte a Servicios Web Mejoras en el DataSet y el DataTable PerformanceSerialización Soporte a XML

56 ADO.NET 2.0 – API independiente del proveedor namespace System.Data.Common DbCommandDbCommandBuilderDbConnection DataAdapterDbDataAdapterDbDataReader DbParameterDbParameterCollectionDbTransaction DbProviderFactoryDbProviderFactoriesDbException

57 ADO.NET 2.0 – API Independiente del proveedor IDb* interfaces (ex IDbConnection) Db* abstract base classes (ex DbConnection) Implementa la clase Db*Base SqlOleDbODBCOracle 3 rd Party 1 3 rd Party 2 Provider- Independiente del código de la app en esta capa Provider- específico en el código de la app en esta capa

58 ADO.NET 2.0 – Providers Provider Factories (System.Data.Common) Permite especificar el proveedor dinamicamente //Importe el Namespace: using System.Data.Common //Cree una referencia: DbProviderFactory factory = DbProviderFactories.GetFactory("provider-name") //Cree una referencia del objeto: DbConnection con = factory.CreateConnection() DbCommand cmd = con.CreateCommand()

59 ADO.NET 2.0 – Providers Cada Data Provider tiene un nombre invariable (InvariantName) //Crea una tabla con los proveedores existentes en el sistema DataTable dt = DbProviderFactories.GetFactoryClasses(); //Obtiene el proveedor deseado por medio del InvariantName DbProviderFactory factory = DbProviderFactories.GetFactory ( dt.Select(“InvariantName = ‘System.Data.SqlClient’”)[0][“InvariantName”].ToString() );

60 ADO.NET 2.0 - Schema Discovery API Recibe una lista de esquemas de los objetos de la base de datos: Recibe un Schema específico: Recibe detalles del Schema: DataTable dt = conn.GetSchema("MetaDataCollections") DataTable dt = conn.GetSchema("collection-name") DataTable dt = conn.GetSchema("collection-name", restriction-array)

61 ADO.NET 2.0 - Schema Selection CollectionName Restriction s CollectionName MetaDataCollectionsn/aViews3 DataSourceInformationn/aViewColumns4 DataTypesn/aParameters4 Restrictionsn/aProcedures4 ReservedWordsn/aProcedureColumns4 Users1ForeignKeys4 Databases1IndexColumns5 Tables4Indexes4 Columns4UserDefinedTypes1 GetSchema("collection-name",restrictions[x]) GetSchema("collection-name", restrictions[x])

62 ADO.NET 2.0 – DataSet Mejoras en el desempeño Mantiene indices internos de los registros de sus DataTables Soporte para Serialización Binaria Actualizaciónes por lotes (Batched Updates) Insert, Update y Delete. Instancias de DataTables independientes Metodo DataSet.Load DataSet.RemotingFormat = SerializationFormat.Binary DataAdapter.Fill(DataTable) DataAdapter.Fill(DataTable[ ]) DataAdapter.Update(DataTable) DataTable.Load(DataReader [, load-option] [, FillErrorEventHandler])

63 ADO.NET 2.0 - DataTable Operaciones comunes del DataSet también disponibles en el DataTable: ReadXml, ReadXmlSchema, WriteXml, WriteXmlSchema, Clear, Clone, Copy, Merge, GetChanges DataTable es auto-serializable: Buen mecanismo para transmitir datos via un Web Service o Remoting

64 ADO.NET 2.0 – Mas novedades Valores RowState son actualizables Nuevos métodos: DataRow.SetAdded y DataRow.SetModified Método DataSet.GetDataReader Devuelve un DataTableReader Usted puede definir qué tablas se incluirán en el DataTableReader

65 ADO.NET 2.0 - Tipo de datos XML en el DataSet DataTable acepta columnas de tipo XML System.Data.SqlTypes.SqlXml Expuestas como una instancia de XPathDocument Pueden accederse vía XmlReader Facilidad de trabajar con documentos XML como un conjunto de valores

66 ADO.NET 2.0 - Actualizaciones en Batch ADO.NET 2.0 permite realizar ejecutar múltiples instrucciones SQL sobre una base de datos de forma batch, usando el sp_executesql. Reduce tránsito en la red DataAdapter.UpdateBatchSize = batch_size Trabaja con transacciones Trabaja con SQL Server 7, 2000, 2005 y clases OracleClient

67 Code snippets crea plantillas para tareas comunes Mejoras en el IDE: Designer

68 Docking tips

69 Snap lines Mejoras en el IDE: Designer SmartTags

70 ToolStrip

71 Novedades en el Runtime Win XP Visual Style ClickOnce Client Configuration Data Support

72 Windows Forms Nuevo look & feel Basado en estilos XP Aspecto Office Nuevos controles GridViewMaskEditToolbar Web browser SoundPlayer Nuevos Layouts Grid, Flow

73 Windows Forms Click Once Deployment Nuevo método de distribución de aplicaciones Soporte modo offline Seguridad controlada Fácil de instalar y actualizar La aplicación detecta automáticamente los cambios Icono en Control Panel Posibilidad de Rollback

74 Recursos Programa “Desarrollador Cinco Estrellas 2005” http://www.microsoft.com/spanish/msdn/comunidad /dce2005/ Universidad.NET http://www.microsoft.com/spanish/msdn/comunidad/uni.net / MSDN Flash http://www.microsoft.com/spanish/msdn/latam/msdnflash/ http://es.thespoke.net/ http://es.thespoke.net/premium/ http://lab.msdn.microsoft.com/express/ http://lab.msdn.microsoft.com/vs2005 http://www.microsoft.com/spanish/msdn/centro_recursos/vs2005/

75 © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.


Descargar ppt "Microsoft Visual Studio 2005.NET Framework 2.0 e Introducción a Visual Studio 2005 Nombre Presentador."

Presentaciones similares


Anuncios Google