Incluir en mis sitios favoritos
Ingresar Salir Inscribirme
Buscar Ayuda Contactar Ingresar Directorio Ultimos
Búsqueda avanzada
Preguntas frecuentes
BUSCAR EN: BLOGS FOTOS
 

Hola, Invitado
Ingresar  Inscribirme
En línea: 126 visitantes

Alemania (2)
Argentina (53)
Belice (2)
Bolivia (11)
Brasil (7)
Canadá (1)
Chile (18)
Colombia (19)
Costa Rica (26)
Cuba (20)
Dominicana, República (17)
Ecuador (5)
El Salvador (18)
España (180)
Estados Unidos (12)
Francia (2)
Guatemala (12)
Honduras (3)
Israel (0)
Italia (2)
Jamaica (0)
México (46)
Nicaragua (3)
Países Bajos (0)
Panamá (14)
Paraguay (6)
Perú (21)
Puerto Rico (6)
Reino Unido (1)
Uruguay (9)
Venezuela (38)





Búsquedas recientes

Lo más popular

Lo más buscado este mes

Archivo Weblogs


DIRECTORIO WEBLOGS :: Guatemala > Noticias Incluir BlogGuatemala >  Noticias Weblogs de Yaaqui.com DIRECTORIO WEBLOGS
Blogs De Guatemala
creado con   en Guatemala
ENVIAR A UN AMIGO
Para subscribirse a  requiere identificarte
Usuario: Ingresar
Blogs de Guatemala Directorio de Blogs de Guatemala, donde los guatemaltecos escriben
Blogs de Guatemala | Directorio de Blogs, donde los guatemaltecos escriben. Noticias, información, clima, deportes, poesía, opinión, información
Así se escribe en Guatemala. Directorio de Blogs GuatemaltecosVisitarBlogs de Guatemala
Dirección URLhttp://blogsdeguatemala.com    Registrado:20-Jul-2008
Compartir:

Compartir en Facebook Compartir en Twitter Stumble It More...


Enviar a email
Visitar Extension Methods (Mientras espero en el aereopuerto) Extension Methods (Mientras espero en el aereopuerto) en artistas
Por Blogs de
el 12-Dec-2008
Hace algún tiempo les había ofrecido hablar sobre las virtudes disponibles tanto para c# 3.0 y vb.net 9.0, es decir las nuevas versiones de éstos lenguajes que corren sobre el .net framework 3.5 y Visual Studio 2008. Bien el asunto es que había dejado relegada esta tarea y hoy precisamente (en medio de mi frustración por que el vuelo que tomo a Costa Rica se retraso nada mas que una par de horas) encuentro el tiempo para poder hablarles sobre el tema. Bien, dejemos de lado la palabrería y entremos en materia. Como desarrolladores, analistas, diseñadores y arquitectos siempre enfrentamos problemas serios al momento de decidir la forma en que podemos producir código reutilizable para nuestras aplicaciones. Los que hemos tenido la oportunidad de programar en .Net sabemos de la infinidad de librerías de clase y métodos (procedimientos y funciones) que nos provee el framework, si bien podemos decir que "casi" todo lo tenemos a la mano, bien sabemos que existen casos en que necesitamos de una función y no la tenemos disponible. Veamos el siguiente ejemplo de una función para poder contar la cantidad de letras dentro de un string: Vb.Net 1: Public Function ContarLetrasSinMetodosExtension(ByVal s As String) As Integer 2: Dim contadorLetra As Integer 3: For i = 0 To s.Length - 1 4: If Char.IsLetter(s(i)) Then 5: contadorLetra += 1 6: End If 7: Next 8:  9: Return contadorLetra 10: End Function C# 1: public static int ContarLetrasSinMetodosExtension(string s) 2: { 3: int contadorLetra = 0; 4: for (int i = 0; i <= s.Length - 1; i++) 5: { 6: if (Char.IsLetter(s[i])) 7: contadorLetra++; 8: } 9: return contadorLetra; 10: } En el ejemplo anterior vemos una función simple para poder contar el numero de letras presentes en un string, como consideración de usabilidad y diseño podríamos construir una clase con el metodo "shared" (vb.net) o "static" (c#)  en donde podríamos incluir la función. Ok, suena bien, pero no creen que sería mejor utilizar la clase string para esta funcion?, funcionalmente hablando sería más intuitivo para los desarrolladores, al fin y al cabo ellos por lógica el primer lugar donde buscarían esta función seria dentro de la clase string. Bueno cuales son nuestras opciones?, ok la primera sería tener que extender la funcionalidad de la clase string del .net framework, lo cual es una opción viable pero también laboriosa, adicionalmente tenemos el problema que no es una solución transparente, debido a que muchas clases de las librerias de clase del framework han sido marcadas como "sealed". Bien la otra opción es hacer uso de los nuevos Extension Methods, los cales nos permiten extender la funcionalidad de cualquier clase del .net framework, sea esta una clase del framework, una clase de una dll de terceros o bien una clase propia. Bien, veamos a continuación como re-escribiriamos el metodo del ejemplo anterior haciendo uso de los "extension methods": Vb.Net 1: <Extension()> _ 2: Public Function ContarLetrasEnString(ByVal s As String) As Integer 3: Dim contadorLetra As Integer 4: For i = 0 To s.Length - 1 5: If Char.IsLetter(s(i)) Then 6: contadorLetra += 1 7: End If 8: Next 9:  10: Return contadorLetra 11: End Function C# 1: public static int ContarLetrasEnString(this string s) 2: { 3: int contadorLetra = 0; 4: for (int i = 0; i <= s.Length - 1; i++) 5: { 6: if (Char.IsLetter(s[i])) 7: contadorLetra++; 8: } 9: return contadorLetra; 10: } Como pueden observar es muy sencillo poder escribir un "extension method", basta con utilizar el atributo <Extension()> y listo. Que pasa en el caso de c#, bueno hay 3  cosas que cambian: en primer lugar tienen que definir explícitamente el método como "static" , en segundo lugar deben agregar la palabra "this" antes del parámetro que identifique el tipo de dato que quieren extender y por ultimo los metodos deben estar definidos dentro de una clase estática. Como logra el compilador establecer el tipo de dato a extender?, sencillo, el ubica el tipo del primer parámetro del método que esta siendo marcado como<Extesion()> e inmediatamente asocia al tipo de dato el mismo para que pueda aparecer como si fuera un método propio de la clase. Bien con esto entonces ahora podemos definir una variable tipo string y luego podríamos utilizar el método de extensión, que se ha atachado mágicamente a la clase string, como si fuera uno propio. Veamos el ejemplo: Metodo de Extension Dando valor agregado a las clases Bien hemos visto como de forma tan sencilla podemos extender cualquier clase que definamos dentro del .net framework. Las posibilidades son infinitas, la verdadera tarea de parte nuestra será evaluar el tipo de funciones que podemos extender a una clase con el fin de dar un valor agregado a los desarrolladores. Veamos a continuación que simple y sencillo se convierte la tarea de poder agregarle a la clase string un método para encriptar y obtener un hash del contenido de una cadena de caracteres: Vb.Net 1: <Extension()> _ 2: Public Function ObtenerHashMD5(ByVal s As String) As String 3: Dim BytesDatos As Byte() = New UnicodeEncoding().GetBytes(s) 4: Dim BytesHash As Byte() = New MD5CryptoServiceProvider().ComputeHash(BytesDatos) 5: Return BitConverter.ToString(BytesHash) 6: End Function C# 1: public static string ObtenerHashMD5(this string s) 2: { 3: byte[] BytesDatos = new UnicodeEncoding().GetBytes(s); 4: byte[] BytesHash = new MD5CryptoServiceProvider().ComputeHash(BytesDatos); 5:  6: return BitConverter.ToString(BytesHash); 7: } Como ven esta es una función muy simple, pero a la vez muy útil y les permitirá a los desarrolladores generar hashes del contenido de una cadena de caracteres. Como tarea les solicito a escribir una función para descencriptar ¿Cómo lo harían? espero ver en la sección de comentarios implementaciones. Que Sucede si quiero enviarle parámetros a un método extendido la respuesta es muy sencilla. Lo único que deberán hacer es agregar luego del primer parámetro de la función (el que identifica el tipo de dato a extender), los parámetros que sean necesarios para llevar a cabo la operación. Veamos a continuación como implementar una función para poder determinar si una string se encuentra dentro de un arreglo de strings: Vb.Net 1: <Extension()> _ 2: Public Function BuscarCadenaEnArreglo(ByVal arreglo As String(), _ 3: ByVal cadenaABuscar As String) As Boolean 4: For Each s As String In arreglo 5: If (s = cadenaABuscar) Then 6: Return True 7: End If 8: Next 9: Return False 10: End Function C# 1: public static bool BuscarCadenaEnArreglo(this string[] arreglo, string cadenaABuscar) 2: { 3: foreach(string s in arreglo) 4: { 5: if (s == cadenaABuscar) 6: return true; 7: } 8: return false; 9: } Como ven la operación es muy sencilla, solo agregan parámetros a su método conforme lo vayan necesitando. Conclusión Los métodos extendidos (Extension Methodos) son una forma confiable y útil de poder extender la funcionalidad de cualquier clase. Simplifican la operación de crear nuevas operaciones y asociarla a los tipos de datos correspondientes para una mejor usabilididad y descubrimiento. Bien amigos espero que les halla servido esta breve explicación, les comparto a continuación el proyecto con el código que hemos utilizado: Proyecto en Vb.NET  Proyecto en C#    Saludos, Carlos A. Lone Etiquetas de Technorati: C#3,Vb.Net 9.0,Vs2008



Leído 12 veces

Para Subscribirse a  requiere identificarse antes
Extension Methods (Mientras espero en el aereopuerto) en  Weblogs de Yaaqui.com  Guatemala Blogs de Guatemala |

Fotologs
Jornada violenta deja cinco muertos

Foto 0 en  - De Doña Esther a una triste realidad
Más fotos Jornada violenta deja cinco muertos + fotos


08-Nov-2008
Siniestro en autobús mata a 11 trabajadores

Modelos Con Buena Onda - Edecanes - Bellezas en los pits
Más fotos Siniestro en autobús mata a 11 trabajadores + fotos


08-Nov-2008
Siniestro en autobús mata a 11 trabajadores

Modelos Con Buena Onda - Edecanes - Bellezas en los pits
Más fotos Siniestro en autobús mata a 11 trabajadores + fotos


08-Nov-2008

Blogs De Guatemala Guatemala

Blogs de Guatemala | Directorio de Blogs, donde los guatemaltecos escriben. Noticias, información, clima, deportes, poesía, opinión, información Blogs de Guatemala Así se escribe en Guatemala. Directorio de Blogs Guatemaltecos

Extension Methods (Mientras espero en el aereopuerto)
Metodo de Extension - Extension Methods (Mientras espero en el aereopuerto) Hace algún tiempo les había ofrecido hablar sobre las virtudes disponibles tanto para c# 3.0 y vb.net 9.0, es decir las nuevas versiones de éstos lenguajes que corren sobre el .net framework 3.5 y Visual Studio 2008. Bien el asunto es que había dejado relegada esta tarea y hoy precisamente (en medio de mi frustración por que el vuelo que tomo a Costa Rica se retraso nada m [..] Leer nota completa
Subscribirse a Extension Methods (Mientras espero en el aereopuerto)
Publicado 12-Dec-2008 por Blogs de en artistas
Leído 12 veces. Más resultados en Más artículos Extension Methods (Mientras espero en el aereopuerto) Fotos acerca Extension Methods (Mientras espero en el aereopuerto) Extension Methods (Mientras espero en el aereopuerto) en Yaaqui
Blogs De Guatemala Guatemala

Blogs de Guatemala | Directorio de Blogs, donde los guatemaltecos escriben. Noticias, información, clima, deportes, poesía, opinión, información Blogs de Guatemala Así se escribe en Guatemala. Directorio de Blogs Guatemaltecos

Greatest Methods To Handle Toe Nail Fungus
A toenail fungal infection is particularly tough to treat due in part to its location. The fungus grows underneath the toenails that is a vulnerable spot. It is v [..] Leer nota completa
Subscribirse a Extension Methods (Mientras espero en el aereopuerto)
Publicado 22-Jun-2010 por Blogs de en General
Leído 8 veces. Más resultados en Más artículos Greatest Methods To Handle Toe Nail Fungus Fotos acerca Greatest Methods To Handle Toe Nail Fungus Greatest Methods To Handle Toe Nail Fungus en Yaaqui
Estancia Cuba Blogueros

Blog de Camilo López Darias, Escribe como analista político
Estancia Cubana Blog de Camilo López Darias

Espero?
Todo parece indicar que el abogado y senador Barak Hussein Obama se constituirá en el próximo presidente de los Estados Unidos. Y a pesar de no ser yo proclive a creer en teorías conspirativas, es indiscutible que el mulatón (tal y como lo llama nuestro incomparable Jorge Pomar) ha sido elegido para gobernar por las [...] [..] Leer nota completa
Subscribirse a Extension Methods (Mientras espero en el aereopuerto)
Publicado 03-Nov-2008 por Camilo López Darias en Liga de CampeonesPersonajesPremier LeagueLiverpoolSteven-Gerrard
Leído 15 veces. Más resultados en Más artículos Espero? Fotos acerca Espero? Espero? en Yaaqui
Blogs De Guatemala Guatemala

Blogs de Guatemala | Directorio de Blogs, donde los guatemaltecos escriben. Noticias, información, clima, deportes, poesía, opinión, información Blogs de Guatemala Así se escribe en Guatemala. Directorio de Blogs Guatemaltecos

HUELGA DE DOLORES DE LA UNIVERSIDAD DE SAN CARLOS EXTENSION CHIQUIMULA
portada_huelga_universidad.jpg - HUELGA DE DOLORES DE LA UNIVERSIDAD DE SAN CARLOS EXTENSION CHIQUIMULA VER FOTOS Las paginas de elzacapaneco.com y michiquimula.com estuvimos presentes en el acontecimiento de lo que fue el desfile bufo, que una tradición de la Universidad de San Carlos de Guatemala, ya que dicho evento es para manife [..] Leer nota completa
Subscribirse a Extension Methods (Mientras espero en el aereopuerto)
Publicado 01-Apr-2009 por Blogs de en General
Leído 13 veces. Más resultados en Más artículos HUELGA DE DOLORES DE LA UNIVERSIDAD DE SAN CARLOS EXTENSION CHIQUIMULA Fotos acerca HUELGA DE DOLORES DE LA UNIVERSIDAD DE SAN CARLOS EXTENSION CHIQUIMULA HUELGA DE DOLORES DE LA UNIVERSIDAD DE SAN CARLOS EXTENSION CHIQUIMULA en Yaaqui
Blogs De Guatemala Guatemala

Blogs de Guatemala | Directorio de Blogs, donde los guatemaltecos escriben. Noticias, información, clima, deportes, poesía, opinión, información Blogs de Guatemala Así se escribe en Guatemala. Directorio de Blogs Guatemaltecos

Fumando espero
El famoso tango argentino que puso en éxtasis la cadenciosa voz ?y lo demás que tenía? de la bella Sarita Montiel nos hacía sentir, en aquellas épocas en que todos e [..] Leer nota completa
Subscribirse a Extension Methods (Mientras espero en el aereopuerto)
Publicado 01-Nov-2010 por Blogs de en General
Leído 5 veces. Más resultados en Más artículos Fumando espero Fotos acerca Fumando espero Fumando espero en Yaaqui
Hijo De La Red Córdoba

Blog sobre humor, teconología, internet, física cuantica... no mentiraaa, todo esto con el toque de humor que solo un HIJO de la RED puede dar HIJO de la RED Web blog sobre tecnologia, dise�o web, humor y actualidad

El juego que más espero
Se trata de Spore y no solamente yo soy el que lo espera, si no toda una comunidad de seguidores de Will Wright, creador del muy famosos y mas vendido juego, The Sims. El juego trata simula la evolución de una especie desde las etápas más primitivas hasta la colonización de la galaxia [...] [..] Leer nota completa
Subscribirse a Extension Methods (Mientras espero en el aereopuerto)
Publicado 23-Apr-2008 por Hijo de la Red en windows 7disco de recuperacionwindowsMicrosoft
Leído 21 veces. Más resultados en Más artículos El juego que más espero Fotos acerca El juego que más espero El juego que más espero en Yaaqui
Blogs De Guatemala Guatemala

Blogs de Guatemala | Directorio de Blogs, donde los guatemaltecos escriben. Noticias, información, clima, deportes, poesía, opinión, información Blogs de Guatemala Así se escribe en Guatemala. Directorio de Blogs Guatemaltecos

ESPERO QUE TENGAS
Espero que tengas suficiente felicidad para hacerte dulce. Suficientes pruebas para hacerte fuerte. Suficiente dolor para mantenerte humano (a) Suficiente esperanza para ser feliz. Y suficiente dinero para comprar regalos!! Anónimo. [..] Leer nota completa
Subscribirse a Extension Methods (Mientras espero en el aereopuerto)
Publicado 24-Sep-2008 por Blogs de en artistas
Leído 9 veces. Más resultados en Más artículos ESPERO QUE TENGAS Fotos acerca ESPERO QUE TENGAS ESPERO QUE TENGAS en Yaaqui

Advertencia YAAQUI.COM no verifica la veracidad de la información publicada y no se responsabiliza por el uso que se le de a la infomación del contenido publicado en los feeds y weblogs independientes. Las opiniones vertidas en este sitio no necesariamente son nuestras. Nos reservamos el derecho de remover cualqueir material que consideremos inconveniente.



Imagen de un Mazda RX-7

Mazda RX-7
Imagen de Halle Berry en traje de baño

Halle Berry En Bikini
Ford 1936, auto antiguo.
Foto en el pueblo de Vega Baja PR en Junio 2006. S. Vargas

Ford 1936 II
Clasificados Costa Rica Clasificados Argentina Clasificados de España Clasificados Puerto Rico Envía una Postal