Mejoras del.NET Framework 2.0 Haaron González, MCP, MVP, MCAD PlexIT Consulting

Slides:



Advertisements
Presentaciones similares
Procedimientos almacenados en C#
Advertisements

2. Manejo de memoria Manejo de memoria estática
INSTRUCTOR: LI Ramiro Robles Villanueva
Introducción a C#.
ASP.NET CON C SHARP.
SERVICIOS WEB EN.NET INTEGRANTES: ADRIANA BLANCO PEÑA MIRIAM SORIANO HERNANDEZ ALVARO PETROVICH CID CONTRERAS LUIS RAMIREZ PALESTINO.
Ayudantía Pre-Actividad 5 Multimedios. Ayudantía Pre-Actividad 5 (1) creación de varias clases, y composición (2) manejo de threads (3) manejo de excepciones.
Framework de.Net Infraestructura sobre la que se reúne todo un conjunto de lenguajes y servicios que simplifican el desarrollo de aplicaciones Entorno.
C# & VB.net Alex Sánchez Logic Studio Panamá MCAD – MVP VB.NET
Unidad 2 IDE Visual Studio.Net [UTN - Tecnologías de desarrollo de software IDE] [2009]
Unidad 3 Lenguajes .Net y POO
Curso de java básico (scjp)
CJ02 – Técnicas avanzadas en java 1.4 y 5.0
DESARROLLO DE SOLUCIONES EMPRESARIALES MOVILES USANDO TECNOLOGIA SUN APLICACIONES MOVILES CON J2ME RMS Ing. Ronald Criollo.
Instrucciones y excepciones
Creación y destrucción de objetos
Manejo de errores y excepciones
Uso de variables de tipo referencia
Acceso a datos con Microsoft ADO.NET
Agregar código a un formulario Web Form con Microsoft ASP.NET
Acceso a datos con ADO.NET
Desarrollo de una Aplicación Web sobre tecnología Microsoft .NET
Acceso a Datos avanzado
Programación en Java Instructor:.
ACCESO A BASES DE DATOS ORACLE CON PHP
Excepciones Las excepciones son señales (en forma de objeto) que se generan en ejecución en casos de errores, para que puedan ser gestionadas en el programa.
Daniel A. Seara Director Regional MSDN NDSoft
Introducción ADO .Net.
Introducción Eventos y Delegados.
Siguiente Excepciones Introducción. AnteriorSiguiente Definición Una excepción es un evento que ocurre durante la ejecución de un programa que desestabiliza.
Francisco Moreno Bases de Datos II Universidad Nacional
Plataforma Microsoft.NET
Como ser más productivos con SQL Server Data Tools - SSDT
Abstracción de Datos La abstracción es un recurso fundamental en la programación orientada a objetos y está además fuertemente ligado a reusabilidad.
Introducción a ASP.NET.
Excepciones y archivos Info 033. Exception El término Exception es la palabra corta para la frase "evento excepcional." Definition: Una excepción es un.
Manejo de excepciones en Java
Tema 3 J2EE Java Database Connectivity Temas Selectos de Cómputo Grupo 912.
JAVA 1.5 Fernando Almeida Octubre Introducción Java Specification Request (JSR) 14Java Specification Request (JSR) 14 propone introducir tipos y.
Métodos Algoritmos y Desarrollo de Programas I. Cuando utilizar métodos  Los métodos se utilizan para romper un problema en pedazos de forma que este.
Modificadores.
TALLER DE PROGRAMACIÓN III
SQL SERVER APLICADO (SSA010) Ariel Alexis Fierro Sáez DuocUC.
Clases y objetos La unidad fundamental de programación OO son las clases. Conjunto de métodos y semántica Qué se va a hacer POO Clase: que define la implementación.
Clase 9 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182.
Acceso a datos con ADO.NET
Tema 6: Clases Antonio J. Sierra.
If anidados y Switch Prof. Lillian Bras.
TALLER DE PROGRAMACIÓN III
Framework Class Library (FCL) Dr. Diego Lz. de Ipiña Gz. de Artaza
Sintaxis de C# (Declaraciones y Tipos)
Tema 11: Excepciones Antonio J. Sierra.
Contenido: 1- Que es el .Net Framework 2- Arquitectura en .Net
USO DE EXCEPCIONES EN JAVA LSC. Natalia Rodríguez Castellón.
Programación Orientada a Objetos Unidad 4 Excepciones Universidad de Chile Departamento de Ciencias de la Computación.
Movilidad en.NET … foco en ASP.NET Mobile Ing. Gabriel Fogante Program Manager Neodynamicwww.neodynamic.com.
1 Manejo de Excepciones y otros Agustín J. González ELO-329.
Herencia. Introducción La idea básica es poder crear clases basadas en clases ya existentes. Cuando heredamos de una clase existente, estamos re-usando.
SQL (Structured Query Language) Lenguaje orientado a bases de datos y sobre todo, al manejo de consultas; el objetivo principal de SQL es la realización.
Metodología de Programación Ayudantía 4 lelagos.ublog.cl 2009.
ECOM-6030 CAPÍTULO 7 EXCEPTION HANDLING Prof. Nelliud D. Torres © - Derechos Reservados.
SERVICIO WEN EN.NET. 1) Se crea el servicio web.
ACCESO A DATOS EN ASP.NET Controles de origen de datos Controles enlazados a datos.
VISUAL STUDIO. Paradigmas de Programación Funcionalidad Win16 Win32 COM MFC Componentes Servicios APIs Windows 3.0.
Estructuras de control selectivas Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión Práctica 3.
LICETH CAJAS 3RO ASI 26/10/2010. Es un lenguaje de programación diseñado para crear una amplia gama de aplicaciones que se ejecutan en.NET Framework,
Ejemplo en Access Como Acceder desde C# a una BD.
Ejemplo en Access Como Acceder desde C# a una BD.
Integration Services.
Transcripción de la presentación:

Mejoras del.NET Framework 2.0 Haaron González, MCP, MVP, MCAD PlexIT Consulting

Objetivo Dar una revisión general de las nuevas características del.NET Framework 2.0 Dar una revisión general de las nuevas características del.NET Framework 2.0 Nuevas características de los lenguajes. Nuevas características de los lenguajes.

Agenda Introducción Introducción Nuevas características del lenguaje Nuevas características del lenguaje Clases parciales Clases parciales Tipos null Tipos null Generics Generics Resumen Resumen Preguntas y respuestas Preguntas y respuestas

Introducción ¿Qué es.NET ? La tecnología que permite integrar personas, dispositivos e información en cualquier lugar y en cualquier momento

Introducción.NET Momentum Lo usa más del 60% de Fortune 100 Lo usa más del 60% de Fortune 100 Más de 70M de sistemas con el.NET Framework Más de 70M de sistemas con el.NET Framework Más de 2.5M de desarrolladores.NET en el mundo Más de 2.5M de desarrolladores.NET en el mundo Foco en productividad, excelencia operacional y nuevas experiencias Foco en productividad, excelencia operacional y nuevas experiencias Win32 vs..NET

Nuevas características Mejoras al modelo de seguridad Mejoras al modelo de seguridad SecureStrings SecureStrings Mejor encriptación Mejor encriptación Basado en roles Basado en roles Mejoras a los lenguajes Mejoras a los lenguajes Clases parciales Clases parciales Tipos nulos Tipos nulos Generics Generics Entre otras más … Entre otras más …

Nuevas características del lenguaje Encripción Web.Config void ButtonEncryptClick(object sender, EventArgs e) { Configuration config = WebConfiguration.GetWebConfiguration(Request.ApplicationPath); ConfigurationSection section = config.Sections["connectionStrings"]; // Encryption section.ProtectSection("DataProtectionConfigurationProvider");config.Update();} void ButtonDecryptClick(object sender, EventArgs e) { Configuration config = WebConfiguration.GetWebConfiguration(Request.ApplicationPath); ConfigurationSection section = config.Sections["connectionStrings"]; // Decryption section.UnProtectSection();config.Update();}

Nuevas características del lenguaje Clases Parciales Una clase puede estar construida de varios fragmentos Una clase puede estar construida de varios fragmentos Cada fragmento lo conocemos como una Clase Parcial Cada fragmento lo conocemos como una Clase Parcial El compilador se encarga de poner los fragmentos en una sola clase El compilador se encarga de poner los fragmentos en una sola clase public partial class BankCustomer { public string LastName; } public partial class BankCustomer { public string LastName; } public partial class BankCustomer { public override string ToString() { return LastName +, + FirstName; } public partial class BankCustomer { public override string ToString() { return LastName +, + FirstName; } public partial class BankCustomer { public string FirstName; } public partial class BankCustomer { public string FirstName; } public class BankCustomer { public string FirstName; public string LastName; public override string ToString() { return LastName +, + FirstName; } public class BankCustomer { public string FirstName; public string LastName; public override string ToString() { return LastName +, + FirstName; } ==

Nuevas características del lenguaje Clases Parciales Desarrollado en mente para darle más poder a las herramientas generadoras de código Desarrollado en mente para darle más poder a las herramientas generadoras de código CodeSmith CodeSmith Visual Studio NET 2005 Visual Studio NET 2005 Ejemplo: Ejemplo: // Form1.Designer.cs partial class Form1 {.. // VS Forms designer code!. } // Form1.Designer.cs partial class Form1 {.. // VS Forms designer code!. } // Form1.cs public partial class Form1 : Form {.. // our code!. } // Form1.cs public partial class Form1 : Form {.. // our code!. }

Nuevas características del lenguaje Clases Parciales Esta diseñado para el uso de herramientas de generación de código. Esta diseñado para el uso de herramientas de generación de código. No es necesario que nos esforcemos a usarlas – están enfocadas para un fin distinto al uso humano. No es necesario que nos esforcemos a usarlas – están enfocadas para un fin distinto al uso humano.

Nuevas características del lenguaje Tipos de dato null Las variables nulas contienen ningún valor … contienen null Las variables nulas contienen ningún valor … contienen null A la fecha no existía manera de asignar un valor null a un parámetro en bases de datos, normalmente se omite por default. A la fecha no existía manera de asignar un valor null a un parámetro en bases de datos, normalmente se omite por default. int dbValue;. if ( dbReader.IsDBNull(dbReader.GetOrdinal(FieldName)) ) dbValue = ???; else dbValue = System.Convert.ToInt32(dbReader[FieldName]); int dbValue;. if ( dbReader.IsDBNull(dbReader.GetOrdinal(FieldName)) ) dbValue = ???; else dbValue = System.Convert.ToInt32(dbReader[FieldName]);

Las variables nulas permiten diferenciar a un valor discreto y un valor nulo. Las variables nulas permiten diferenciar a un valor discreto y un valor nulo. Nuevas características del lenguaje Tipos de dato null int? dbValue;. if ( dbReader.IsDBNull(dbReader.GetOrdinal(FieldName)) ) dbValue = null; // field is null so store null! else dbValue = System.Convert.ToInt32(dbReader[FieldName]);. int? dbValue;. if ( dbReader.IsDBNull(dbReader.GetOrdinal(FieldName)) ) dbValue = null; // field is null so store null! else dbValue = System.Convert.ToInt32(dbReader[FieldName]);. sum += dbValue ?? 0; // sum in the value (or 0 if null) if (dbValue == null) > else >. if (dbValue == null) > else >.

Otras soluciones: Otras soluciones: Usar un tipo de dato alternativo Usar un tipo de dato alternativo No usar nulls en la base de datos No usar nulls en la base de datos Nuevas características del lenguaje Tipos de dato null

Nuevas características del lenguaje Generics Nos permite *definir* objetos genéricos pero para *usarlos* de una manera específica. Nos permite *definir* objetos genéricos pero para *usarlos* de una manera específica. Colecciones Colecciones Métodos Métodos Parámetros Parámetros Y más… Y más… List customers; customers = new List (); customers.Add( new BankCustomer(...) );. List customers; customers = new List (); customers.Add( new BankCustomer(...) );.

Nuevas características del lenguaje Generics Nos permite tener: Nos permite tener: Type-safety Type-safety Eficiencia Eficiencia Reusabilidad Reusabilidad Métodos y listas genéricas Métodos y listas genéricas Cada objeto almacenado en una lista es almacenado como un objeto y requiere un cast (TipoDeDato) que nos diga como va. Cada objeto almacenado en una lista es almacenado como un objeto y requiere un cast (TipoDeDato) que nos diga como va. Boxing - UnBoxing Boxing - UnBoxing

Nuevas características del lenguaje Generics - constraints Podemos especificar restricciones en los tipos genéricos Podemos especificar restricciones en los tipos genéricos Nos asegura que la entidad genérica esta usada apropiadamente Nos asegura que la entidad genérica esta usada apropiadamente Una forma sencilla de chequeo estático Una forma sencilla de chequeo estático public class SortableList : List where T : IComparable { } public class SortableList : List where T : IComparable { } SortableList customers; customers = new SortableList (); customers.Add( new BankCustomer(jim, bag);. customers.Sort(); SortableList customers; customers = new SortableList (); customers.Add( new BankCustomer(jim, bag);. customers.Sort();

Nuevas características del lenguaje Generics - reusabilidad También nos permite escribir código genérico, reusable… También nos permite escribir código genérico, reusable… Un ejemplo de una conexión a base de datos: Un ejemplo de una conexión a base de datos: // // Capa de negocio // DataAccess data; DataSet ds1, ds2; // access a MS Access database... data = new MSAccessDB(connection string); ds1 = data.Retrieve(Select *...); // now access a SQL Server database... data = new SqlServerDB(connection string); ds1 = data.Retrieve(Select *...); // // Capa de negocio // DataAccess data; DataSet ds1, ds2; // access a MS Access database... data = new MSAccessDB(connection string); ds1 = data.Retrieve(Select *...); // now access a SQL Server database... data = new SqlServerDB(connection string); ds1 = data.Retrieve(Select *...); DataAccess SqlServerDBMSAccessDB

Nuevas características del lenguaje Generics – acceso a datos La premisa es: La premisa es: Parametrizar métodos de acceso a datos usando Generics Parametrizar métodos de acceso a datos usando Generics public class DataAccess { // a generic method to retrieve records and return as a DataSet... public DataSet Retrieve (string sConnect, string sql) where T1 : System.Data.IDbConnection, new() where T2 : System.Data.IDbCommand, new() where T3 : System.Data.IDbDataAdapter, new() { T1 conn = default(T1); // initialize to null for finally block T2 cmd; T3 adapter; DataSet ds;. public class DataAccess { // a generic method to retrieve records and return as a DataSet... public DataSet Retrieve (string sConnect, string sql) where T1 : System.Data.IDbConnection, new() where T2 : System.Data.IDbCommand, new() where T3 : System.Data.IDbDataAdapter, new() { T1 conn = default(T1); // initialize to null for finally block T2 cmd; T3 adapter; DataSet ds;.

// contd try { conn = new T1(); // create connection object conn.ConnectionString = sConnect; cmd = new T2(); // create command object cmd.Connection = conn; cmd.CommandText = sql; adapter = new T3(); // create data adapter object adapter.SelectCommand = cmd; conn.Open(); adapter.Fill(ds); } catch (Exception ex) { throw ex; } finally { try { conn.Close(); } catch { } } return ds; } // contd try { conn = new T1(); // create connection object conn.ConnectionString = sConnect; cmd = new T2(); // create command object cmd.Connection = conn; cmd.CommandText = sql; adapter = new T3(); // create data adapter object adapter.SelectCommand = cmd; conn.Open(); adapter.Fill(ds); } catch (Exception ex) { throw ex; } finally { try { conn.Close(); } catch { } } return ds; } Continuación…

Nuevas características del lenguaje Generics – acceso a datos Para mandar a llamar este método, solo pasamos los tipos que se apegan a las restricciones: Para mandar a llamar este método, solo pasamos los tipos que se apegan a las restricciones: using MSA = System.Data.OleDb; using SQL = System.Data.SqlClient; // // Business Tier // DataAccess data = new DataAccess(); DataSet ds1, ds2; // access a MS Access database... ds1 = data.Retrieve<MSA.OleDbConnection, MSA.OleDbCommand, MSA.OleDbDataAdapter>(connection string, Select *...); // now access a SQL Server database... ds1 = data.Retrieve<SQL.SqlConnection, SQL.SqlCommand, SQL.SqlDataAdapter>(connection string, Select *...); using MSA = System.Data.OleDb; using SQL = System.Data.SqlClient; // // Business Tier // DataAccess data = new DataAccess(); DataSet ds1, ds2; // access a MS Access database... ds1 = data.Retrieve<MSA.OleDbConnection, MSA.OleDbCommand, MSA.OleDbDataAdapter>(connection string, Select *...); // now access a SQL Server database... ds1 = data.Retrieve<SQL.SqlConnection, SQL.SqlCommand, SQL.SqlDataAdapter>(connection string, Select *...);

Nuevas características del lenguaje Generics – ¿Cuándo usarlo? Un poco más abstracto y complicado de usar Un poco más abstracto y complicado de usar Sin embargo, es más eficiente Sin embargo, es más eficiente El compilador del lenguaje se encarga de interpretar todo, no el CLR El compilador del lenguaje se encarga de interpretar todo, no el CLR

Resumen NET en el mundo conectado – líder en la industria NET en el mundo conectado – líder en la industria NET Framework 2.0 NET Framework 2.0 Evolución de características y muchas mejoras Evolución de características y muchas mejoras Permisible en VB y C# Permisible en VB y C# Nos permite ser más productivos como desarrolladores Nos permite ser más productivos como desarrolladores

Recursos adicionales NET, C# and VB 2.0: NET, C# and VB 2.0: