Post on 02-Feb-2016
Microsoft Visual Studio 2005.NET Framework 2.0 e Introducción a .NET Framework 2.0 e Introducción a Visual Studio 2005Visual Studio 2005
Nombre PresentadorNombre Presentador
AgendaAgendaIntroducción a Microsoft .NETIntroducción a Microsoft .NET
.NET Framework, Lenguajes y Herramientas.NET Framework, Lenguajes y Herramientas
Modelo de EjecuciónModelo de Ejecución
Novedades en los LenguajesNovedades en los Lenguajes
Base Class LibraryBase Class Library
ADO.NET 2.0ADO.NET 2.0
Mejoras del IDEMejoras del IDE
Paradigmas de ProgramaciónParadigmas de Programación
19801980 19901990 20002000
Fu
nci
on
alid
adF
un
cio
nal
idad
Win16Win16 Win32Win32COMCOM
MFCMFCComponentes
ComponentesServiciosServicios
APIsAPIs
Windows3.0
¿Qué NO es .NET?¿Qué NO es .NET?
.NET no es un Sistema Operativo.NET no es un Sistema Operativo
.NET no es un Lenguaje de Programación.NET no es un Lenguaje de Programación
.NET no es un Entorno de Desarrollo.NET no es un Entorno de Desarrollo
.NET no es un Servidor de Aplicaciones.NET no es un Servidor de Aplicaciones
.NET no es un producto empaquetado que .NET no es un producto empaquetado que se pueda comprar como talse pueda comprar como tal
¿Qué es .NET?¿Qué es .NET?
Plataforma de Desarrollo compuesta dePlataforma de Desarrollo compuesta deEntorno de Ejecución (Runtime)Entorno de Ejecución (Runtime)Bibliotecas de Funcionalidad (Class Library)Bibliotecas de Funcionalidad (Class Library)Lenguajes de ProgramaciónLenguajes de ProgramaciónCompiladoresCompiladoresHerramientas de Desarrollo (IDE & Tools)Herramientas de Desarrollo (IDE & Tools)Guías de ArquitecturaGuías de Arquitectura
La evolución de la plataforma COMLa evolución de la plataforma COM
Características de .NET Características de .NET
Plataforma de ejecución intermedia.Plataforma de ejecución intermedia.
100% Orientada a Objetos.100% Orientada a Objetos.
Multilenguaje.Multilenguaje.
Plataforma Empresarial de Misión Crítica.Plataforma Empresarial de Misión Crítica.
Modelo de Programación único para todo tipo Modelo de Programación único para todo tipo de aplicaciones y dispositivos de hardware.de aplicaciones y dispositivos de hardware.
Se integra fácilmente con aplicaciones Se integra fácilmente con aplicaciones existentes desarrolladas en plataformas existentes desarrolladas en plataformas Microsoft.Microsoft.
Se integra fácilmente con aplicaciones Se integra fácilmente con aplicaciones desarrolladas en otras plataformas.desarrolladas en otras plataformas.
Plataforma de Ejecución IntermediaPlataforma de Ejecución Intermedia
Entorno de
Desarrollo
Mic
rosoft
.N
ET
Librerías de Funcionalidad
Lenguajes de Programación
Entorno de Ejecución
Sistema Operativo (Familia Windows)
Aplicación .NET
¿Qué es el .NET Framework?¿Qué es el .NET Framework?
Paquete de software fundamental de la Paquete de software fundamental de la plataforma .NET. Incluye:plataforma .NET. Incluye:
Entorno de Ejecución (Runtime)Entorno de Ejecución (Runtime)Bibliotecas de Funcionalidad (Class Library)Bibliotecas de Funcionalidad (Class Library)
Se distribuye en forma libre y gratuitaSe distribuye en forma libre y gratuita
Existen tres variantes principales:Existen tres variantes principales:.NET Framework Redistributable Package.NET Framework Redistributable Package
.NET Framework SDK.NET Framework SDK
.NET Compact Framework .NET Compact Framework
Está instalado por defecto en Windows Está instalado por defecto en Windows 2003 Server o superior2003 Server o superior
.NET Compact Framework
*
*
AplicaciónMóvil
Aplicación de Consola
Aplicación Web
Aplicación de Escritorio
¿Dónde instalar el .NET Framework?¿Dónde instalar el .NET Framework?
ServidorCliente
* Sólo si la aplicación es distribuída* Sólo si la aplicación es distribuída
Línea del tiempo de .NETLínea del tiempo de .NET
Visual Studio 6.0Visual BasicVBAVisual FoxProVBScriptC++J++JScriptASP
Visual Studio .NET 2003.NET Framework 1.1.NET Compact FrameworkJ#
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.0Visual Basic .NETC#
Windows COM+ Services
Common Language Runtime
Base Class Library
ADO.NET y XML
ASP.NET Windows Forms
Common Language Specification
VB C++ C# J# …
Arquitectura del .NET FrameworkArquitectura del .NET Framework
.NE
T F
ram
ewor
k R
edis
trib
utab
le
.NE
T F
ram
ewo
rk S
DK
.NE
T F
ramew
ork
Class Library
CLR – Common Language RuntimeCLR – Common Language Runtime
El CLR es el motor de ejecución (runtime) El CLR es el motor de ejecución (runtime) de .NETde .NETCaracterísticasCaracterísticas
Compilación Just-In-Time (JIT)Compilación Just-In-Time (JIT)Gestión automática de memoria (Garbage Gestión automática de memoria (Garbage Collector).Collector).Gestión de errores consistente (Excepciones)Gestión de errores consistente (Excepciones)Gestión de SeguridadGestión de SeguridadMultithreading.Multithreading.
.NET Framework Class Library.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 NAMESPACESLos tipos son INDEPENDIENTES del lenguaje de desarrolloEs extensible y totalmente orientada a objetos
.NET Framework Class Library.NET Framework Class Library
El namespace raíz es SYSTEM
System
System.Data System.Xml
System.Web
GlobalizationGlobalization
DiagnosticsDiagnostics
ConfigurationConfiguration
CollectionsCollections
ResourcesResources
ReflectionReflection
NetNet
IOIO
ThreadingThreading
TextText
ServiceProcessServiceProcess
SecuritySecurity
CommonCommon
OleDbOleDb
SqlClientSqlClient
OdbcOdbc
XPathXPath
XSLTXSLT
RuntimeRuntime
InteropServicesInteropServices
RemotingRemoting
SerializationSerialization
SerializationSerialization
ConfigurationConfiguration SessionStateSessionState
CachingCaching SecuritySecurity
ServicesServices
DescriptionDescription
DiscoveryDiscovery
ProtocolsProtocols
UIUI
HtmlControlsHtmlControls
WebControlsWebControls
System.Drawing
ImagingImaging
Drawing2DDrawing2D
TextText
PrintingPrinting
System.Windows.FormsDesignDesign ComponentModelComponentModel
Common Language Specification (CLS)Common Language Specification (CLS)
Especificación que estandariza una serie de características soportadas por el CLRContrato entre diseñadores de lenguajes de programación y autores de bibliotecasPermite la interoperabilidad entre lenguajesMicrosoft provee implementaciones de 4 lenguajes, todos compatibles con CLS
Microsoft Visual Basic .NETMicrosoft Visual Basic .NETMicrosoft Visual C# .NETMicrosoft Visual C# .NETMicrosoft Visual J#.NETMicrosoft Visual J#.NETMicrosoft Visual C++.NETMicrosoft Visual C++.NET
Common Language RuntimeCommon Language Runtime
VBVBCódigo Código FuenteFuente
C++C++C#C#
AssemblyAssemblyIL CodeIL Code
AssemblyAssemblyIL CodeIL Code
Servicios del Sistema OperativoServicios del Sistema Operativo
Codigo NativoCodigo Nativo
CódigoCódigoManejadoManejado
Modelo de Modelo de EjecuciónEjecución
AssemblyAssemblyIL CodeIL Code
ComponenteComponenteNo manejadoNo manejado
Compilador JITCompilador JIT
CompiladorCompilador CompiladorCompiladorCompiladorCompilador
Ejecutable (.EXE), Página Web (.ASPX), Ejecutable (.EXE), Página Web (.ASPX), Servicio Local (.DLL) o WebService (.ASMX)Servicio Local (.DLL) o WebService (.ASMX)
Novedades del .NET Framework 2.0Novedades del .NET Framework 2.0
GenericsGenericsSoporte para 64 bitsSoporte para 64 bitsTipos ParcialesTipos ParcialesModificadores de accesoModificadores de accesoMejoras en VB.NETMejoras en VB.NETMejoras en C#Mejoras en C#
GenericsGenerics
Son tipos parametrizados soportados por Son tipos parametrizados soportados por el CLRel CLR
Un tipo parametrizado es aquel que puede Un tipo parametrizado es aquel que puede definirse sin especificar los tipos de datos de definirse sin especificar los tipos de datos de sus parámetros en tiempo de compilación.sus parámetros en tiempo de compilación.
Nos dan la posibilidad de declarar clases, Nos dan la posibilidad de declarar clases, estructuras, métodos e interfaces que estructuras, métodos e interfaces que actuarán uniformemente sobre valores actuarán uniformemente sobre valores cuyos tipos se desconocen a priori y son cuyos tipos se desconocen a priori y son recién especificados al momento de su recién especificados al momento de su utilizaciónutilización
Generics - EjemploGenerics - Ejemplo
Definiendo una clase genérica en C#Definiendo una clase genérica en C#
Utilizando una clase genérica en C#Utilizando una clase genérica en C#
public class ClaseGenerica<T> { public T atributo;}
ClaseGenerica <string> g = new ClaseGenerica<string>();g.atributo = “Un string";g.atributo = 2; //Genera Error de Compilación…ClaseGenerica<int> g2 = new ClaseGenerica<int>();g2.atributo = 2; //NO genera error de compilación
Generics - EjemploGenerics - Ejemplo
Definiendo una clase genérica en VB.NETDefiniendo una clase genérica en VB.NET
Utilizando una clase genérica en VB.NETUtilizando una clase genérica en VB.NET
Public Class ClaseGenerica(Of T) Public atributo As TEnd 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
Generics - ColeccionesGenerics - Colecciones
Colecciones Genéricas Vs. Colecciones Tradicionales
System.Collections.Generic System.Collections
Comparer<T> Comparer
Dictionary<K,T> HashTable
List<T> ArrayList
Queue<T> Queue
SortedDictionary<K,T> SortedList
Stack<T> Stack
ICollection<T> ICollection
IComparable<T> System.IComparable
IComparer<T> IComparer
IDictionary<K,T> IDictionary
IEnumerable<T> IEnumerable
IEnumerator<T> IEnumerator
IKeyComparer<T> IKeyComparer
IList<T> IList
Generics - ColeccionesGenerics - Colecciones
Sin generics
Con generics
Soporte para 64 bitsSoporte para 64 bits
El CLR 1.x sólo tiene soporte para El CLR 1.x sólo tiene soporte para aplicaciones de 32 bitsaplicaciones de 32 bits
No aprovechan las características de los No aprovechan las características de los sistemas operativos de 64 bits, ya que se sistemas operativos de 64 bits, ya que se ejecutan emuladasejecutan emuladas
El CLR 2.0 tiene una versión de 64 bitsEl CLR 2.0 tiene una versión de 64 bitsPermite compilar aplicaciones para que hagan Permite compilar aplicaciones para que hagan uso nativamente de las nuevas características uso nativamente de las nuevas características de los sistemas operativos y procesadores de de los sistemas operativos y procesadores de 64 bits64 bits
Tipos ParcialesTipos Parciales
Permiten la declaración de un tipo en varios Permiten la declaración de un tipo en varios archivos físicosarchivos 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 ventajasSu uso puede tener varias ventajasDividir implementaciones complejas en partes pequeñasSeparación de código auto-generadoMútiples desarrolladores pueden trabajar sobre distintas secciones del mismo tipo simultáneamentePuede facilitar el mantenimiento y el control de versiones de código
// Demo.Part1.cs// Demo.Part1.csusing System;using System;public partial class Demopublic partial class Demo{{ public Demo()public Demo() {{ Console.Write( "P1" );Console.Write( "P1" ); }}}}// Demo.Part2.cs// Demo.Part2.cspublic partial class Demopublic partial class Demo{{ private int i;private int i;}}
// Demo.Part3.cs// Demo.Part3.cs// Error 1!// Error 1!public class Demopublic 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 - EjemploTipos Parciales - Ejemplo
Modificadores de acceso Modificadores de acceso
El CLR 2.0 permite especificar diferentes El CLR 2.0 permite especificar diferentes modificadores de acceso para el get y el set de modificadores de acceso para el get y el set de las propiedades e índiceslas propiedades e índicesPermite solamente modificar uno de los dos Permite solamente modificar uno de los dos elementos de acceso, mientras que el otro toma elementos de acceso, mientras que el otro toma el nivel de acceso de la propertyel nivel de acceso de la propertyPuede especificar más restriccionesPuede especificar más restriccionesMejora el encapsulamiento de atributosMejora el encapsulamiento de atributos
Modificadores de acceso - Modificadores de acceso - EjemplosEjemplos
public class Customer{public class Customer{ private string id;private string id; public string public string CustomerId {CustomerId { public get { return public get { return id; }id; } privateprivate set { id = set { id = value; }value; } }}}}
Public Class CustomerPublic Class Customer Private id As StringPrivate id As String Public Property CustomerId() As StringPublic Property CustomerId() As String GetGet Return Me.idReturn Me.id End GetEnd Get PrivatePrivate Set(ByVal value As Set(ByVal value As String)String) Me.id = valueMe.id = value End SetEnd Set End PropertyEnd PropertyEnd ClassEnd Class
Provee acceso a funcionalidades comunesProvee acceso a funcionalidades comunesReduce drásticamente la cantidad de códigoReduce drásticamente la cantidad de códigoAumento de la productividad y facilidad de usoAumento de la productividad y facilidad de usoDisponible a través del IntelliSenseDisponible a través del IntelliSense
La clase My incluyeLa clase My incluye::My.ApplicationMy.ApplicationMy.ComputerMy.ComputerMy.UserMy.UserMy.FormsMy.FormsMy.WebservicesMy.WebservicesMy.ResourcesMy.ResourcesMy.SettingsMy.Settings
Novedades en Lenguajes Novedades en Lenguajes
VB.NET - Namespace MyVB.NET - Namespace My
Novedades en LenguajesNovedades en Lenguajes
VB.NET – Características de C#VB.NET – Características de C#
Sobrecarga de operadores y conversionesSobrecarga de operadores y conversionesDocumentación de códigoDocumentación de códigoNuevos tipos (UShort, UInteger, ULong)Nuevos tipos (UShort, UInteger, ULong)Instrucción Instrucción ContinueContinueInstrucción Instrucción UsingUsingCompilador compatible CLSCompilador compatible CLS
Novedades en LenguajesNovedades en Lenguajes
VB.NET – Desarrollo con Visual StudioVB.NET – Desarrollo con Visual Studio
Code snippets (Fragmentos de código)Code snippets (Fragmentos de código)Intellisense mejoradoIntellisense mejoradoCorrector automáticoCorrector automáticoAsistente de excepcionesAsistente de excepciones
Novedades en LenguajesNovedades en Lenguajes
C# - Métodos anónimosC# - Métodos anónimos
Permite escribir delegados “inline”Permite escribir delegados “inline”Los métodos anónimos ofrecen una solución Los métodos anónimos ofrecen una solución eleganteelegante
Un delegado puede ser usado en cualquier Un delegado puede ser usado en cualquier lugar.lugar.Se crea usando la palabra clave Se crea usando la palabra clave delegate.delegate.
Novedades en LenguajesNovedades en LenguajesC# - Métodos anónimos (Ejemplo)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(Thread task = new Thread( delegate(){delegate(){ Trace.Write("2.0");} );Trace.Write("2.0");} );}
this.saveButton.Click +=this.saveButton.Click += new EventHandler(new EventHandler( this.SaveClick );this.SaveClick );
private void SaveClick(private void SaveClick( object sender,object sender, EventArgs e )EventArgs e ){{ this.Save();this.Save();}}
this.saveButton.Click +=this.saveButton.Click += delegate { this.Save(); };delegate { this.Save(); };
Novedades en LenguajesNovedades en LenguajesC# - Desarrollo con Visual StudioC# - Desarrollo con Visual Studio
Auto codeAuto codeAbreviaturas de código comúnAbreviaturas de código común
RefactoringRefactoringOcho refactorizacionesOcho refactorizaciones
RenombrarRenombrarExtraer métodoExtraer métodoEncapsular campoEncapsular campoGenerar esqueletoGenerar esqueleto……
Mejoras en el TracingMejoras en el Tracing
CorrelationCorrelation ManagerManager
TraceTraceTraceSourceTraceSource DebugDebug
SourceSwitchSourceSwitch
TraceListenerCollectionTraceListenerCollection
TraceFilterTraceFilter
TraceListenerTraceListener
TraceOptionsTraceOptions
TraceSource y SourceSwitchTraceSource y SourceSwitch
TraceSource TraceSource Nos provee métodos que permiten hacer el Nos provee métodos que permiten hacer el seguimiento a eventos, datos, etc.seguimiento a eventos, datos, etc.Controlado por archivos de configuraciónControlado por archivos de configuraciónCada instancia de TraceSource tiene su Cada instancia de TraceSource tiene su propio nombre y colección de propio nombre y colección de TraceListener.TraceListener.Propiedades Propiedades FilterFilter y y SwitchSwitch
SourceSwitchSourceSwitchControla las salidas del tracing y el debug Controla las salidas del tracing y el debug sin recompilar el código.sin recompilar el código.
MétodosMétodosTraceData, TraceEvent y TraceInformationTraceData, TraceEvent y TraceInformation
Nuevos ListenersNuevos Listeners
ConsoleTraceListenerConsoleTraceListenerUsado para escribir salidas de trace Usado para escribir salidas de trace y debug en la consola.y debug en la consola.
DelimitedListTraceListenerDelimitedListTraceListenerLogs escritos en archivos de Logs escritos en archivos de formato .CSV(Comma Separated formato .CSV(Comma Separated Value)Value)
XmlWriterTraceListenerXmlWriterTraceListenerEscribe las salidas del trace en Escribe las salidas del trace en archivos XMLarchivos XML
Integración con ASP.NET TracingIntegración con ASP.NET Tracing
WebPageTraceListenerWebPageTraceListenerEnvia mensajes de Trace al Envia mensajes de Trace al ASP.NET Web Page Output.ASP.NET Web Page Output.Se puede configurar vía Se puede configurar vía Web.Config o por código.Web.Config o por código.
Opciones de ConfiguraciónOpciones de Configuración
Listener.TraceOutputOptionsDetermina el contenido opcional para la salida del Trace.
Trace.CorrelationManagerProvee métodos para almacenar identificadores de hilos usando la propiedad ActivityId.
Archivo XML para configurar el TraceSource
<source name="MySource" switchValue="Information" ><source name="MySource" switchValue="Information" > <listeners><listeners> <add name="Console" <add name="Console" type="System.Diagnostics.ConsoleTraceListener" />type="System.Diagnostics.ConsoleTraceListener" /> </listeners></listeners></source></source>
Performance del CLRPerformance del CLR
Performance del CLR similar para código Performance del CLR similar para código nativo.nativo.NGEN (Native Image Generator )NGEN (Native Image Generator )
Herramienta para compilar assemblies a Herramienta para compilar assemblies a código nativo.código nativo.Contiene Imágenes Nativas las cuales Contiene Imágenes Nativas las cuales contienen los archivos de código contienen los archivos de código compilado para el procesador de una compilado para el procesador de una maquina especifica y las instala dentro maquina especifica y las instala dentro del cache de la maquina.del cache de la maquina.No hay necesidad del JIT porque utiliza No hay necesidad del JIT porque utiliza las imágenes que están en Cache.las imágenes que están en Cache.
Performance del CLRPerformance del CLR
Nuevas APIsNuevas APIsAPIs APIs para recursos de búsquedapara recursos de búsquedaResourceManager.GetStringResourceManager.GetStringLightweight CodeGenLightweight CodeGen
Mejoras en las Mejoras en las APIsAPIsCrossAppDomain Remoting (200 veces más CrossAppDomain Remoting (200 veces más rápido)rápido)Desempeño Desempeño para llamar para llamar DelegadosDelegadosAppDomain Footprints (reducido en 20%)AppDomain Footprints (reducido en 20%)UTF8Encoding (2.5 veces más rápido)UTF8Encoding (2.5 veces más rápido)
SemáforosSemáforos
Un semáforo permite que un número Un semáforo permite que un número limitado de subprocesos (Threads) de limitado de subprocesos (Threads) de uno o varios procesos tengan acceso a uno o varios procesos tengan acceso a un recurso o pool de recursos.un recurso o pool de recursos.
SemáforoSemáforoThreadThread
ThreadThread
ThreadThread
ThreadThread
ThreadThread
RecursoRecurso
ContadorContadorCount =3Count =3
ThreadThread
ThreadThread
Namespace: Namespace: System.Threading.Semaphore
SemáforosSemáforos
// Crea un semáforo con un contador de 3Semaphore sem = new Semaphore(3)
// Bloquea hasta un contador disponiblesem.WaitOne()
// Usa el recurso protegido
// Liberación del semáforosem.Release()
Compresión de Stream
NamespaceSystem.IO.Compression
GZipStreamMétodos y Propiedades para comprimir y descomprimir Streams o ”Secuencia de Bytes”.Gzip algoritmo estándar.
DeflateStream (LZW77)
StreamWriterStreamWriter GZipStreamGZipStream
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 ClearMakeReadOnly para bloquear string.Sin miembros para inspeccionar, comparar o convertir el valor de la cadena.
HttpListenerHttpListener
Nos permite crear un protocolo HTTP Nos permite crear un protocolo HTTP Listener que responde solicitudes Listener que responde solicitudes HTTP.HTTP.
No requiere del IIS.No requiere del IIS.URI Usado para mapear solicitudes.URI Usado para mapear solicitudes.Usa HTTP.SYS para crear posibles Usa HTTP.SYS para crear posibles HTTP Listener (Win2003, Win XP HTTP Listener (Win2003, Win XP SP2+)SP2+)Acceso vía Acceso vía HttpListenerRequestHttpListenerRequest y y HttpListenerResponseHttpListenerResponse
Puerto Serial
Antes usado por Pinvoke con APIS de Win32Namespace
System.IO.PortsClase SerialPort
Acceso Físico y Virtual como los soportados por dispositivos como el USBAsync y eventos de I/O
Orientado a eventosBloqueante, vía métodos read y write
Personalización de CulturasPersonalización de Culturas
Crear nuevas culturasCrear nuevas culturasPersonalización de sufijos, formatos Personalización de sufijos, formatos existentes, Combinación de 2 existentes, Combinación de 2 lenguajes, paises.lenguajes, paises.
CultureAndRegionInfoBuilder CultureAndRegionInfoBuilder Los detalles de la cultura pueden Los detalles de la cultura pueden ser serializados en .Xmlser serializados en .Xml
Personalización de CulturasPersonalización de Culturas
// Crea un nuevo objeto CultureAndRegionInfoBuilder// Crea un nuevo objeto CultureAndRegionInfoBuilder// basado en culture en-US// basado en culture en-USCultureAndRegionInfoBuilder carib = new 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// Registra esta máquina en el deploycarib.Register();carib.Register();
// Salva en XML// Salva en XMLcarib.Save("c:\temp\myculture.xml");carib.Save("c:\temp\myculture.xml");
// Hace referencia al nuevo objeto CultureInfo// Hace referencia al nuevo objeto CultureInfoCultureInfo ci = new CultureInfo("en-US-microsoft);CultureInfo ci = new CultureInfo("en-US-microsoft);
Novedades para ConsoleNovedades para Console
Captura y atribuye el tamaño de la Captura y atribuye el tamaño de la Consola, del buffer de pantalla y del cursorConsola, del buffer de pantalla y del cursorCambia la posición de la ventana de la Cambia la posición de la ventana de la consola y del cursorconsola y del cursorCambia el color y el título de la ventanaCambia el color y el título de la ventanaCaptura teclas presionadasCaptura teclas presionadas
ADO.NET 2.0 - MejorasADO.NET 2.0 - Mejoras
API Independiente del Proveedor ADO.NETAPI Independiente del Proveedor ADO.NETModelada bajo el patrón Modelada bajo el patrón Abstract FactoryAbstract Factory
Operaciones asíncronasOperaciones asíncronasPermite ejecutar comandos contra la Base Permite ejecutar comandos contra la Base de Datos de manera asíncrona no de Datos de manera asíncrona no bloqueante.bloqueante.
Multiple Active Result Sets (MARS)Multiple Active Result Sets (MARS)Permite tener múltiples DataReaders Permite tener múltiples DataReaders abiertos sobre la misma conexión.abiertos sobre la misma conexión.
ADO.NET 2.0 - MejorasADO.NET 2.0 - Mejoras
Integración y aprovechamiento de Integración y aprovechamiento de características de SQL Server 2005características de SQL Server 2005
Notification ServicesNotification ServicesService BrokerService BrokerTipo de dato XMLTipo de dato XMLSoporte a Servicios WebSoporte a Servicios Web
Mejoras en el DataSet y el DataTableMejoras en el DataSet y el DataTablePerformancePerformanceSerializaciónSerializaciónSoporte a XMLSoporte a XML
ADO.NET 2.0 – API independiente del ADO.NET 2.0 – API independiente del proveedorproveedor
namespace System.Data.Commonnamespace System.Data.Common
DbCommandDbCommand DbCommandBuilderDbCommandBuilder DbConnectionDbConnection
DataAdapterDataAdapter DbDataAdapterDbDataAdapter DbDataReaderDbDataReader
DbParameterDbParameter DbParameterCollectionDbParameterCollection DbTransactionDbTransaction
DbProviderFactoryDbProviderFactory DbProviderFactoriesDbProviderFactories DbExceptionDbException
ADO.NET 2.0 – API Independiente ADO.NET 2.0 – API Independiente del proveedordel proveedor
IDb* interfaces (ex IDbConnection)IDb* interfaces (ex IDbConnection)
Db* abstract base classes (ex DbConnection)Db* abstract base classes (ex DbConnection)
Implementa la claseImplementa la clase Db*BaseDb*Base
SqlSql OleDbOleDb ODBCODBC OracleOracle 33rdrd Party 1Party 1
33rdrd Party 2Party 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
ADO.NET 2.0 – ProvidersADO.NET 2.0 – Providers
Provider Factories (System.Data.Common)Provider Factories (System.Data.Common)Permite especificar el proveedor dinamicamentePermite 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()
ADO.NET 2.0 – ProvidersADO.NET 2.0 – ProvidersCada Data Provider tiene un nombre invariable Cada Data Provider tiene un nombre invariable (InvariantName)(InvariantName)
//Crea una tabla con los proveedores existentes en el sistemaDataTable dt = DbProviderFactories.GetFactoryClasses();
//Obtiene el proveedor deseado por medio del InvariantNameDbProviderFactory factory = DbProviderFactories.GetFactory(
dt.Select(“InvariantName = ‘System.Data.SqlClient’”)[0][“InvariantName”].ToString());
ADO.NET 2.0 - Schema Discovery ADO.NET 2.0 - Schema Discovery APIAPI
Recibe una lista de esquemas de los Recibe una lista de esquemas de los
objetos de la base de datosobjetos de la base de datos::
Recibe un Schema específicoRecibe un Schema específico::
Recibe detalles del Recibe detalles del Schema:Schema:
DataTable dt = conn.GetSchema("MetaDataCollections")
DataTable dt = conn.GetSchema("collection-name")
DataTable dt = conn.GetSchema("collection-name", restriction-array)
ADO.NET 2.0 - Schema SelectionADO.NET 2.0 - Schema Selection
CollectionNameCollectionName RestrictionRestrictionss
CollectionNameCollectionName RestrictionRestrictionss
MetaDataCollectionsMetaDataCollections n/an/a ViewsViews 33
DataSourceInformationDataSourceInformation n/an/a ViewColumnsViewColumns 44
DataTypesDataTypes n/an/a ParametersParameters 44
RestrictionsRestrictions n/an/a ProceduresProcedures 44
ReservedWordsReservedWords n/an/a ProcedureColumnsProcedureColumns 44
UsersUsers 11 ForeignKeysForeignKeys 44
DatabasesDatabases 11 IndexColumnsIndexColumns 55
TablesTables 44 IndexesIndexes 44
ColumnsColumns 44 UserDefinedTypesUserDefinedTypes 11
GetSchema("GetSchema("collection-namecollection-name",", restrictions[restrictions[xx])])
ADO.NET 2.0 – DataSetADO.NET 2.0 – DataSet
Mejoras en el desempeñoMejoras en el desempeñoMantiene indices internos de los registros de sus Mantiene indices internos de los registros de sus DataTablesDataTables
Soporte para Serialización BinariaSoporte para Serialización Binaria
Actualizaciónes por lotes (Batched Updates) Insert, Actualizaciónes por lotes (Batched Updates) Insert, Update y Delete.Update y Delete.Instancias de DataTables independientesInstancias de DataTables independientes
Metodo DataSet.LoadMetodo DataSet.Load
DataSet.RemotingFormat = SerializationFormat.Binary
DataAdapter.Fill(DataTable)DataAdapter.Fill(DataTable[ ])DataAdapter.Update(DataTable)DataTable.Load(DataReader [, load-option] [, FillErrorEventHandler])
ADO.NET 2.0 - DataTableADO.NET 2.0 - DataTable
Operaciones comunes del Operaciones comunes del DataSet DataSet también también
disponibles en el disponibles en el DataTable:DataTable:
ReadXml, ReadXmlSchema, WriteXml, ReadXml, ReadXmlSchema, WriteXml,
WriteXmlSchema, Clear, Clone, Copy, Merge, WriteXmlSchema, Clear, Clone, Copy, Merge,
GetChanges GetChanges
DataTable es DataTable es auto-serializableauto-serializable::
Buen mecanismo para transmitir datos via unBuen mecanismo para transmitir datos via un
Web Service o RemotingWeb Service o Remoting
ADO.NET 2.0 – Mas novedadesADO.NET 2.0 – Mas novedades
Valores RowState Valores RowState son actualizablesson actualizables
Nuevos métodosNuevos métodos: DataRow.SetAdded y : DataRow.SetAdded y
DataRow.SetModifiedDataRow.SetModified
Método DataSet.GetDataReaderMétodo DataSet.GetDataReader
Devuelve un Devuelve un DataTableReaderDataTableReader
Usted puede definir qué tablas se incluirán en el Usted puede definir qué tablas se incluirán en el
DataTableReaderDataTableReader
ADO.NET 2.0 - Tipo de datos XML en el ADO.NET 2.0 - Tipo de datos XML en el DataSetDataSet
DataTable DataTable acepta columnas de tipo acepta columnas de tipo XMLXMLSystem.Data.SqlTypes.SqlXml System.Data.SqlTypes.SqlXml
Expuestas como una instancia de Expuestas como una instancia de XPathDocumentXPathDocumentPueden accederse vía Pueden accederse vía XmlReaderXmlReaderFacilidad de trabajar con documentos XML Facilidad de trabajar con documentos XML como un conjunto de valorescomo un conjunto de valores
ADO.NET 2.0 - Actualizaciones en ADO.NET 2.0 - Actualizaciones en BatchBatch
ADO.NET 2.0 permite realizar ejecutar ADO.NET 2.0 permite realizar ejecutar múltiples instrucciones SQL sobre una base múltiples instrucciones SQL sobre una base de datos de forma batch, usando el de datos de forma batch, usando el sp_executesql.sp_executesql.Reduce tránsito en la redReduce tránsito en la redDataAdapter.UpdateBatchSize = batch_sizeDataAdapter.UpdateBatchSize = batch_sizeTrabaja con transaccionesTrabaja con transaccionesTrabaja con Trabaja con SQL Server 7, 2000, 2005 y SQL Server 7, 2000, 2005 y clases OracleClientclases OracleClient
Code snippets crea plantillas para tareas comunes
Mejoras en el IDE: DesignerMejoras en el IDE: Designer
Mejoras en el IDE: DesignerMejoras en el IDE: Designer
Docking tips
Snap lines
Mejoras en el IDE: DesignerMejoras en el IDE: Designer
SmartSmartTagsTags
Mejoras en el IDE: DesignerMejoras en el IDE: Designer
ToolStripToolStrip
Novedades en el RuntimeNovedades en el Runtime
Win XP Visual StyleWin XP Visual StyleClickOnceClickOnceClient ConfigurationClient ConfigurationData SupportData Support
Windows FormsWindows FormsNuevo look & feelNuevo look & feel
Basado en estilos XPBasado en estilos XPAspecto OfficeAspecto Office
Nuevos controlesNuevos controlesGridViewGridViewMaskEditMaskEditToolbarToolbarWeb browserWeb browserSoundPlayerSoundPlayer
Nuevos LayoutsNuevos LayoutsGrid, FlowGrid, Flow
Windows FormsWindows FormsClick Once DeploymentClick Once Deployment
Nuevo método de distribución de aplicacionesNuevo método de distribución de aplicacionesSoporte modo offlineSoporte modo offlineSeguridad controladaSeguridad controlada
Fácil de instalar y actualizarFácil de instalar y actualizarLa aplicación detecta automáticamente los La aplicación detecta automáticamente los cambioscambiosIcono en Control PanelIcono en Control PanelPosibilidad de RollbackPosibilidad de Rollback
RecursosRecursos
Programa “Desarrollador Cinco Estrellas 2005”Programa “Desarrollador Cinco Estrellas 2005”
http://www.microsoft.com/spanish/msdn/comunidad/dce2005/
Universidad .NETUniversidad .NEThttp://www.microsoft.com/spanish/msdn/comunidad/uni.net/
MSDN FlashMSDN Flashhttp://www.microsoft.com/spanish/msdn/latam/msdnflash/
httphttp://://es.thespoke.netes.thespoke.net//httphttp://://es.thespoke.netes.thespoke.net//premiumpremium//httphttp://://lab.msdn.microsoft.comlab.msdn.microsoft.com//expressexpress//httphttp://://lab.msdn.microsoft.comlab.msdn.microsoft.com/vs2005/vs2005httphttp://://www.microsoft.comwww.microsoft.com//spanishspanish//msdnmsdn//centro_recursoscentro_recursos/vs2005//vs2005/
© 2004 Microsoft Corporation. All rights reserved.© 2004 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.