Archivos para junio, 2007

Aunque es relativamente sencillo con la tecnología .Net cambiar de un lenguaje de programación a otro, ya que la filosofía de trabajo es la misma, los objetos, los espacios de nombres…, pero al cambiar entre VB.Net y C# pueden resultar frustrantes determinadas características de cada uno de los lenguajes. Un ejemplo, son las palabras claves para los tipos de clases en VB.Net.

En esta tabla hay algunas equivalencias entre VB.Net y C# que nos hará mas fácil el cambio de lenguaje o traducir código de los ejemplos que encuentres en Internet y que no estén en el lenguaje que utilizas.

VB.NET C# Descripción
NotInheritable sealed Especifica que una clase no puede ser usada como base para otra clase, es decir, no puede ser heredada.
NotOverridable sealed Especifica que un método no puede ser sobrescrito.
MustInherit abstract Especifica que una clase sólo puede ser heredada (no puede ser creada una instancia de la clase).
MustOverride abstract Especifica que un método debe ser implementado en las clases hijas.
Overridable virtual Especifica que una propiedad de la clase puede ser sobrescrita.
Shared static Especifica que una propiedad de la clase es compartida por todas las instancias de la clase (es estático). No es necesaria ninguna instancia de la clase para llamar a esta propiedad).
Static no equivalent Especifica que el valor de una variable local es preservado entre diferentes llamadas.
Public public Clase o propiedad es visible fuera del proyecto o assembly.
Friend internal Clase o propiedad es invisible fuera del proyecto o assembly.
Private private Clase o propiedad es visible sólo en el proyecto.
Overloads not required Especifica que una propiedad sobrecargada por otra propiedad.
Overrides override Especifica que una propiedad sobrescrita por otra propiedad.
Implements I1 class C1:I1 Especifica que la clase (C1) implementa el interfaz I1.
Inherits C2 class C1:C2 Especifica que la clase (C1) hereda la clase C2.
Implements I1Inherits C2 class C1:C2,I1 Especifica que la clase (C1) implementa el interfaz I1 y hereda la clase C2.
Shadows new
Finalize ~C1 (destructor) Método llamado por el sistema justo antes de que el garbage collection reclame el objeto. C1 es el nombre de la clase.
New C1 Método constructor, llamado cuando el objeto es creado. C1 es el nombre de la clase.
Dim x as Int32 Int32 x Declara la variable “x” del typo “System.Int32″.
Imports using Permite llamar a métodos sin necesidad de especificar el nombre del Namespace completo.
<> [] Especifica parámetros.
_ ; Continuación de línea en VB, fin de línea en C#.
AndOr &&|| Operadores lógicos.
no soportado << >> Operadores Shift.
X+=1 (x=x+1)X-=1 (x=x-1)also *=, /=, ^= etc.. x++x– Incrementos.
Dim x(4) as Int32= 5 items (0 to 4) Int32[] x = new Int32[4];= 4 items (0 to 3) Diferencias entre los elementos creados en las declaraciones de arrays.
Dim x as Int32 Int32 x = 0 x es inicializado a 0 automáticamente en VB.
ReDim Preserve no equivalent Redimensiona un array.
Optional no soportado Especifica que un parámetro es opcional.
Select Case x
Case True
Case Else
End Select
switch(I)
{
case 1:break;
default:break;
};
ByValByRef not requeridoref Pasando parámetros por valor y referencia.
Me this Referencia al objeto actual.
MyBase base Referencia a la clase base.
MyClass no soportado Realiza una llamada non-virtual a un método virtual del objeto actual.
Const constreadonly Declara una constante.
Enum enum Declara un enumerator.
Structure struct Declara una estructura.
no soportado volatile Declara un objeto que puede ser modificado de forma asíncrona.
obj = Nothing obj == null Comprueba que una variable objeto no es nula.
Option Explicit Opción por defecto y no puede ser cambiada Especifica que todas las variables tienen que ser declaradas.
IsDBNull no soportado Comprobación para un nulo de base de datos.
Default no soportado Especifica un método por defecto de un clase.
WithEvents no soportado Declara una variable cuyos eventos queremos manejar.
Handles no soportado Especifica que un método es llamado por un evento.
Try
Catch
Finally
End Try
try{}
catch{}
finally{}
Manejo estructurado de las excepciones.
REM‘ /* … */// Líneas de comentarios
not soportado /// líneas de comentarios XML
Dim x As String = “Hola”
Dim y As Char = GetChar(x, 1)
string x = “Hola”;
char y;
y = x[1];
Recupera un carácter de una cadena de texto.
With … End With no soportado Evalúa un objeto una vez y permite usarlo varias veces.
Dim a() as Long = {1,2,3} int[] x = new int[4] {1,2,3,4}; Inicialización de un array.
EventRaiseEvent event Declara y lanza un evento.

Articulo Obtenido: http://www.xperimentos.com

¿Porqué yo debería considerar usar Ajax? les voy a dar diez razones por las que el uso de Ajax debería ser considerado.1. Basado en los estándares abiertos
2. Usabilidad
3. Válido en cualquier plataforma y navegador
4. Beneficia las aplicaciones web
5. No es dificil su utilización
6. Compatible con Flash
7. Adoptado por los “gordos” de la tecnología web
8. Web 2.0
9. Es independiente del tipo de tecnología de servidor que se utilice
10. Mejora la estetica de la web

1. Basado en los estándares abiertos

Ajax esta formado por las tecnologias Javascript, html, xml, css, y XML HTTP Request Object, siendo este último el unico que “no es” estandar pero es soportado por los navegadores mas utilizados de internet como son los basados en mozilla, internet explorer, safari y opera.

2. Usabilidad

Permite a las páginas hacer una pequeña petición de datos al servidor y recibirla sin necesidad de cargarla página entera. El incremento de las actualizaciones “on the fly” elimina el tener que refrescar el navegador, algo bastante apreciado a la hora de operar en una aplicación web.

3. Válido en cualquier plataforma y navegador

Internet explorer, los basados en mozilla y firefox son los que se llevan la palma en el mercado de internet y además son los navegadores en los que es mas fácil programar aplicaciones Web AJAX, pero ahora es posible construir aplicaciones web basadas en AJAX para que funcionen en los navegadores mas modernos. Es una de las razonas mas importantes por las que AJAX se ha vuelto tan popular. Aunque si bien muchos desarrolladores sabían que era posible usarse años atrás con Internet Explorer, no era viable realizarse. Ahora ya es posible su avance gracias a Mozilla y Firefox.

4. Beneficia las aplicaciones web

AJAX es la cara del presente en las aplicaciones web – las aplicaciones web conllevan ciertos beneficios sobre las aplicaciones sobre escritorio (aplicaciones que dependan de un sistema operativo, librerias, lo que entendemos por programas compilados). Esto incluyo un menor coste de creación, facilidad de soporte y mantenimiento, menores tiempos a la hora de desarrollarlas, y sin necesidad de instalaciones; éstas son algunas de los beneficios que han llevado a las empresas y usuarios el adoptar aplicaciones web desde mediados de los 90. AJAX solo ayudará a las aplicaciones web a mejorar y conseguir un mejor resultado de cara al usuario final.

5. No es dificil su utilización

Porque AJAX esta basada en los estándares que han sido utilizados durante muchos años, muchos desarrolladores web han tenido que utilizar las tecnologías que las aplicaciones AJAX requieren. Ésto significa que no es un gran esfuerzo el aprendizaje de los desarrolladores el pasar de un simple código HTML y aplicaciones web a una potente aplicación AJAX. Tambié significa que los desarrolladores pueden actualizar poco a poco las interfaces de usuario hacia unas interfaces con AJAX; no necesita una re-escritura de la aplicación entera, se puede hacer incrementalmente.

6. Compatible con Flash

Muchos desarrolladores tienen serias dudas sobre usar Flash o AJAX. Definitivamente hay ventajas y desventajas en ambas tecnologías según la situación que se de pero también hay muchas posibilidades y muy buenas para que ambas funcionen en conjunto.

7. Adoptado por los “gordos” de la tecnología web

La difusión de AJAX en los líderes de la industria de internet prueba que el mercado acepta y valida el uso de esta tecnología. Todo el mundo esta migrando hacia AJAX incluyendo Google, Yahoo, Amazon, Microsoft (por nombrar unas pocos). Google Maps fue lo que captó la atención de los desarrolladores web. Cuando empezaron a investigar como google era capaz de llevar esa increible herramienta dentro de un navegador sin necesidad de ningún tipo de plug-in, encontraron que AJAX estaba detrás del tema.

8. Web 2.0

El movimiento Web 2.0 está cada vez mas en auje y dando quebraderos de cabeza de muchos programadores, usuarios, y vendedores. Esto esta ayudando la adopción de AJAX. Las interfaces de AJAX son un componente clave de muchas de las aplicaciones Web 2.0, como puede ser BackPack (un organizador de disco online en entorno Web) y Google Maps. Afortunadamente gracias bombo que se le esta dando, acelerará la adopción de AJAX y la los beneficios de su uso lo mantendrá en escena. Una de las claves principales de Web 2.0 es el usar la red como plataforma para el desarrollo de aplicaciones, en vez de simples páginas web. Siendo importante la iteracción de los usuarios con la apliación en sí.

9. Es independiente del tipo de tecnología de servidor que se utilice

Así como AJAX funciona en cualquier navegador, es perfectamente compatible con cualquier tipo de servidor estándar y lenguage de programación Web. PHP, ASP. ASP.Net, Perl, JSP, Cold Fusion. El ser completamente compatible el desarrollo en éstas tecnologías ha ayudado a AJAX a que vaya cada vez mas en auge.

10. Mejora la estetica de la web

Con AJAX se puede interactuar la imaginación del desarrollador con la usabilidad de una apliación web de forma que se pueda realizar una aplicación que si no estuviera dentro de un navegador, podría pasar por una aplicacion normal de escritorio.

Despues de un largo tiempo de que youtube no viene brindando su servicio con de esto de los videos ahora nos sorprende con una muy buena Herramienta.

Herramienta youtube

Ahora youtube trae esta herramienta “YouTube Remixer” aunque esta en beta todavia, esta herramienta es para editar tus videos desde agregarle un puntinto a tus videos asta crear buenas obras de arte bueno para poder manipular esta herramienta al 100% necesitas un buen servicio de internet porque como es de esperarse el servicio esta creado en flash aqui les dejo el enlace para que puedan checarlo ud mismos:
http://www.youtube.com/ytremixer_about

Muy Buena Herramienta se las recomiendo.

En la web encontre este software Windows live writter e hice la prueba,me parece un buen software ya que permite manejar tu blog en tu Pc, Es decir podrás escribir tus articulos o post en un ambiente parecido al de Microsoft Word, y despues podras publicarlos en tu blog,es muy facil utilizarlo,despues de haberlo instalado cree este articulo o post haciendo las pruebas respectivas a este software.Además que compatible con cual tipo de blogs.Me parece una buena opción para la redacción y edición de los blogs.

Technorati tags: , , ,

Hacer ping consiste en comunicar a los indexadores y buscadores que nuestro blog ha sido actualizado.

Normalmente los indexadores usan robots que este proceso lo haga automáticamente cada determinado tiempo. Estos “bots” son llamados “spiders”.

Dependiendo de la carga de trabajo puede pasar bastante hasta que se “enteran” que tu blog ha sido actualizado, e introducen los cambios en su base de datos.

Para desencadenar ese proceso cada vez que tú actualizas el blog se usa el ping.

Existen una serie de servicios destinados a seguir y conectar los blogs. Enviando un ping a estos servicios permites que sepan que has actualizado tu blog y en ese momento rastrean tu blog en busca de los nuevos contenidos.

Por tanto, hacer ping permite que tu blog este actualizado en los diferentes buscadores de blogs lo que favorece un mayor tráfico a tu blog

¿Cuándo hacer ping?

Una cosa importante a saber es que es posible hacer spam a base de hacer ping. Es decir, hacerlo varias veces al día durante semanas con el único objetivo de atraer a más gente a tu blog y haciéndolo además sin actualizar tu blog. No lo hagas, en primer lugar eso no mejorará el tráfico de tu blog a largo y plazo y ,además, podrías ser eliminado por los sitios en los que haces ping, sin olvidar que perjudicas a otros, ya que los sitios pueden verse saturados por los spammers.

Teniendo esto en cuenta no debería de hacer ping más de dos o tres veces al día o sólo hacerlo cuando:
– Has añadido contenido nuevo
– Has hecho cambios significativos en antiguos artículos.
– Has modificado tu blog.

¿Dónde hacer ping y cómo?

Esto depende en gran medida del sistema que utilices para tu blog. Un sitio a tener en cuenta es Pingomatic que te permite hacer ping en varios sitios a la vez con tan sólo introducir tu URL. Si utilizas un sistema como WordPress puedes incluir sitios en tu panel de administrador para que haga ping donde te interese cada vez que modifiques algo.

Existen otros sitios como Technorati, donde puedes hacer ping para que tenga tu blog en cuenta en sus resúltados de búsqueda. También puedes hacer ping en bitacoras.com aunque tienes que tener tu blog incluido en su directorio Feedster, My Yahoo!, etc…

Espero que ya sepas lo que es hacer y la importancia que tiene. Así que ya sabes, ahora a hacer ping!

Para los programadores o desarrolladores Web aqui Les dejo una función echa en Php que nos permite hacer ping a cualquier sitio que nosotros queramos.

function ping ($ping_url,$blog_name,$blog_url) {
$query .= “<?xml version=’1.0′?>”;
$query .= “<methodCall>\n”;
$query .= ” <methodName>weblogUpdates.ping</methodName>\n”;
$query .= ” <params>\n”;
$query .= ” <param>\n”;
$query .= ” <value>”.$blog_name.”</value>\n”;
$query .= ” </param>\n”;
$query .= ” <param>\n”;
$query .= ” <value>”.$blog_url.”</value>\n”;
$query .= ” </param>\n”;
$query .= ” </params>\n”;
$query .= “</methodCall>\n”;
$ping_url = parse_url($ping_url);

$http_request = “POST ” . $ping_url[‘path’] . ($ping_url[‘query’] ? “?” . $ping_url[‘query’] : “”) . ” HTTP/1.0\r\n”;
$http_request .= “Host: “. $ping_url[‘host’] . “\r\n”;
$http_request .= “Content-Type: text/xml\r\n”;
$http_request .= ‘Content-length: ‘ . strlen($query) . “\r\n”;
$http_request .= “User-Agent: WordPress”;
$http_request .= “\r\n\r\n”;
$http_request .= $query;

if (” == $ping_url[‘port’] )
$ping_url[‘port’] = 80;

$fs = @fsockopen($ping_url[‘host’], $ping_url[‘port’]);
@fputs($fs, $http_request);
// RESPUESTA
while ($linea = @fread($fs,32768))
$res .= $linea;
@fclose($fs);

echo ‘<pre>’ . htmlentities($http_request) . ‘</pre>’;
echo ‘<br />’;
echo ‘<pre>’ . htmlentities($res) . ‘</pre>’;
echo ‘<br />’;
}

ping(“http://www.blogsmexico.com/ping/&#8221;, “Mi blog Título”, “http://miBlog.com&#8221;);

Un poco de Humor o Competencia??

Publicado: junio 15, 2007 en Google, Humor, Internet

Navegando encontre una imagen la cual me parece un poco graciosa,aunque algunos opinen que es competencia desleal,yo la veo con un gran sentido del humor.
google-gatitos.jpg

Esta post fue obtenido de kementeus.wordpress.com
personalmente creo que es un buen articulo donde explica muy bien sobre lo que es un CardSpace.

CardSpace en el framework .Net 3.0 era conocido por su nombre clave “InfoCard” y en una manera sencilla de entenderlo es una framework de identificación abierta, cruzada y sencilla que además puede contener metadatos asociados a la identidad; es un cliente de un servicio de identificación digital para servicios online de manera simple, segura y confiable. La forma en que funciona CardSpace es algo similar a la forma en que llevamos tarjetas de presentación o de crédito en la billetera. Imagínense esta situación:

Vamos a una tienda y nos gusta una camisa, decidimos llevarla y en el momento de llegar a la caja nos piden nuestra identificación y tarjeta de crédito, entregamos ambas y mediante el POST se envía la información de la tarjeta a nuestro banco, luego ellos regresan un token indicando que efectivamente tenemos saldo o crédito suficiente y se aprueba la transacción. Ahora tomando este mismo ejemplo veamos las tarjetas que podríamos tener en nuestra Billetera; tarjetas de crédito expedidas por un banco que contienen además de nuestro nombre un número de tarjeta único y algúna firma de seguridad de parte del banco y/o del usuario, una identificación personal (o cédula como le llamamos en algunos países latinoamericanos) extendida por el sistema gubernamental de nuestro país con información variable de cada uno de nosotros, quizás alguna tarjeta de presentación personal hecha por nosotros mismos con nuestro teléfono y dirección y otra tarjeta de presentación de la empresa en la que trabajemos. Todas estas tarjetas indican quienes somos, para quienes trabajamos, a quienes representamos, nuestros datos en general (variable siempre) y datos privados que ni siquiera es indicada por nosotros mismos (por ejemplo el límite de crédito no está en nuestra tarjeta, la posee el banco) están contenida en nuestra billetera de manera que siempre “escogemos” que tarjeta usar.

De similar manera a la anterior trabaja CardSpace, es un cliente en el cual nosotros poseemos medios de identificación o tarjetas personales creadas por nosotros o expedida por un tercer agente (banco, gobierno o empresa), decidimos entregarla a la entidad que nos la solicita (sitio web), este luego consulta mediante webservices a la entidad que entregó la tarjeta (nosotros o una empresa por ejemplo) y luego nosotros escogeriamos que información enviarle al solicitante de la identificación. Antes que alguien se me queje o piense en “herejía” o similar quiero que comprendan que CardSpace es simplemente la implementación de un sistema de metaidentity, Microsoft realmente no inventó el agua azucarada, simplemente la implementó. Otras implementaciones de un sistema de metaidentidad es OpenID (desarrollado en conjunto con VeriSign) o Liberty Alliance (algunos quizás hayan escuchado hablar de Lasso). Como dije  hay implementaciones del lado de servidores como Higgins o Heraldy y en la actualidad ya hay plugins para browsers como Safari y Firefox.

Quiero que piensen en un momento los potenciales que tienen los sistemas de metaidentidad (o sea, no solamente CardSpace recuerden que CardSpace es simplemente una implementación, si no saben qué es eso entonces mejor lean un poco antes de pensar) en la sociedad en la que ahora estamos creciendo o desarrollándonos. Tengo la impresión que en el transcurso de los siguientes años veremos a compañías como VeriSign vender tokens privados y personales de identidad y a otras empresas grandes brindar a sus usuarios o clientes tarjetas de identidad. Me imagino a sitios de “red social” de esos que ya han proliferado bastante, con tokens de identidad en el cual puedan compartir la info de quienes son los amigos de mis amigos o similares. En fin, en lo personal veo que los alcances en el futuro al madurar esta tecnología son impresionantes, pero en lo personal siento que hace falta aun mucho mas por madurar el concepto en la industria.

Aquí les dejo algunos links extras por si quieren ahondar mucho más en el tema, recuerden que  el .Net Framework 3.0  queda mucho por navegar.

  • Los blogs de Kim CameronAndy Harjanto los arquitectos de InfoCard
  • El blog de Rich Turner el Program Manager de CardSpace
  • Un post en un blog que creo explica con mucho más detalle que el mío que es CardSpace (Johannes Ernst)
  • La página o wiki oficial de OSIS un proyecto que busca estandarizar los sistemas de identificación de forma Open Source
  • La página “oficial” de CardSpace de Microsoft
  • Un lugar donde podemos jugar con nuestros sistemas de identidad y cards ya existentes (digo, para probar por ejemplo las extensiones de nuestros browsers) http://sandbox.netfx3.com
  • Aquí esta la versión puramente cross plataform hecha en Java de un cliente de cardspace o cualquier otro de los sistemas de metaidentidad. http://xmldap.org/ y en esa misma página un agente de cardspace para ver cómo estan estructuradas nuestras tarjetas https://xmldap.org/relyingparty/