Cómo funcionan las nuevas certificaciones para desarrolladores de Microsoft

CertificacidoHace ya unos cuantos meses que tenemos aquí Visual Studio 2010 y .NET 4.0. Desde entonces han ido apareciendo ya las nuevas certificaciones en .NET 4.0 que van a sustituir a las antiguas de Visual Studio 2008.


Ha habido bastantes cambios en la forma de certificarse en esta última versión, por lo que en este post trataré de explicarlas lo mejor posible para que nadie se pierda.


Las anteriores certificaciones de Visual Studio 2008


Anteriormente si querías certificarte en alguna rama del desarrollo era necesario que primero te certificases en los fundamentos de la plataforma, y que posteriormente fueras avanzando en la materia específica de lo que te querías certificar.


Los pasos por tanto eran los siguientes:





    1. Aprobar el examen 70-536 de fundamentos de la plataforma, base para TODOS los cursos de certificación de VS2008.


    2. Aprobar un examen de especialización para certificarse como especialista en esa tecnología (Technology Specialist).


    3. Aprobar un examen de experiencia sobre la tecnología que te interesaba, para convertirte en Professional Developer en esa tecnología.

De este modo tenías que hacer al menos dos exámenes para ser Technology Specialist (MCTS), y un tercer examen para convertirte en Professional Developer (MCPD).


Existían 6 especialidades en las que te podías certificar:




  1. Windows Forms


  2. ASP.NET y desarrollo Web


  3. Windows Communication Foundation


  4. Acceso a datos con ADO.NET


  5. Windows Workflow Foundation


  6. Windows Presentation Foundation.

Esta estrategia tenía la ventaja de que te podías ceñir a la tecnología que más te interesara y no salirte de ella para certificarte, aunque tenías que hacer siempre el examen de fundamentos.


Esto generaba gente muy bien preparada en la base de la tecnología .NET (algo muy importante) pero con una visión del conjunto de la plataforma bastante restringido a su tecnología de elección. Así un MCPD en desarrollo web, por ejemplo, sabía mucho sobre desarrollo web pero no tendría porque saber demasiado de acceso a datos o de creación de sistemas distribuidos.


Las nuevas certificaciones de .NET 4.0 y Visual Studio 2010


Con las nuevas certificaciones la cosa ha cambiado bastante.


Para empezar ahora hay muchas menos especialidades, en concreto en el momento de escribir esto puedes examinarte como Technology Specialist en estas cuatro áreas:




  • 70-511 Windows Applications: Este examen puede considerarse como una mezcla entre los dos anteriores de Windows Forms y WPF, sólo que le han quitado mucho peso a Windows Forms para dárselo a WPF. En mi opinión personal creo que como prácticamente nadie quiere utilizar WPF en sus desarrollos con este examen tratan de forzar a que mucha gente se meta en la tencología, algo que comprendo muy poco y menos cuando está claro que Silverlight está destinado a sustituir a WPF en el futuro (espera a la versión 5 de Silverlight y luego me lo discutes, jeje).


  • 70-513 Service Communication Applications: este es el equivalente al examen anterior de Windows Communication Foundation sólo que actualizado a la versión 4.0 de la plataforma que trae bastantes novedades e incluye también OData y otras tecnologías de comunicaciones, así como cuestiones de arquitectura de aplicaciones.


  • 70-515 Web Applications: el examen que te certifica como desarrollador Web. Ahora es un examen mucho más complejo puesto que aparte de entrar ASP.NET Web Forms y ASP.NET AJAX, también entran ASP.NET MVC y jQuery.


  • 70-516 Data Access: ese examen te certifica como especialista en acceso a datos con la plataforma .NET y realmente, para aprobarlo, es necesario dominar todas las técnicas de acceso a datos disponibles en la platforma: desde las más antiguas como ADO.NET hasta Entity Framework 4.0 o el Sync Framework. Es un examen super-completo y complicado de preparar.


Adicionalmente van a liberar en los próximos meses dos nuevas certificaciones como Technology Specialist: la de Silverlight y la de Azure. Ya os iré contando cuando aparezcan (actualizaré este post también).


Sin embargo ahora en la parte alta de la certificación, es decir, en el MCPD, sólo hay dos especialidades:



  • Windows Developer
  • Web Developer

Es decir, al contrario que antes en que te podías certificar como MCPD en tu tecnología preferida, ahora sólo puedes certificarte como desarrollador profesional de Windows o Web.


El motivo es que los requisitos para hacerlo han aumentado mucho: ahora es necesario que te certifiques en tres MCTS además de hacer un examen específico de la especialidad. Es decir, cuando antes eran necesarios sólo tres exámenes ahora necesitas cuatro.


Lo que aduce Microsoft, no sin razón, es que hoy en día para ser un desarrollador profesional hay que dominar, aparte de tu área de especialización, al menos el acceso a datos y la arquitectura de aplicaciones. Por eso, para ser MCPD tienes que sacarte los exámens de Data Access y de Service Communication, además del de tu especialidad (Web o Windows). A mayores necesitas hacer un examen de especialización (el 70-518 en caso de Windows y el 70-519 en caso de certificarte como MCPD en Web). Ambos exámenes están orientados a que demuestres tu experiencia con esa tecnología en casos prácticos reales, no tanto en conocimientos específicos.


El siguiente gráfico ilustra muy bien la ruta que hay que seguir para certificarse como MCPD en .NET 4.0:


Especialidades_MCPD_NET4


Como vemos primero hay que hacer tres exámenes (dos comunes: datos y arquitectura) y luego uno específico de la especialidad.


En este documento puedes encontrar un buen resumen de las certificaciones y los nuevos exámenes.


¿Y qué pasa con el examen 70-536?


La buena noticia es que ahora ya no es necesario aprobar este examen para certificarte. La mala noticia es, también, que ahora ya no es necesario aprobar este examen para certificarte 😉


Me explico: el examen 70-536 es árido y el más difícil de preparar de todos los de las certificaciones. Sin embargo el hecho de prepararlo a fondo y aprobarlo era garantía de que dominabas la parte de fundamentos de la plataforma .NET. Y esto no es poco. Cuando estás trabajando en un proyecto y aparecen los problemas, el hecho de dominar los fundamentos bien hace que seas capaz de encontrar más fácilmente soluciones ya que te permite razonar cómo funcionan las cosas por debajo y esto marca la diferencia en las situaciones difíciles, que es cuando de verdad cuenta.


Aunque ya no sea obligatorio para certificarse en .NET 4.0 creo que será un examen que todavía tendrá tirón durante muchos años, ya que el examen no se ha retirado ni mucho menos, y en muchas empresas si el responsable técnico controla un poco el tema de las certificaciones  y quiere tener gente preparada en su equipo, estoy seguro de que se seguirá valorando mucho este examen aunque no sea obligatorio.


En mi opinión (y el de otra mucha gente dedicada a la formación) es un grave error que hayan retirado este examen. Se pueden dar casos de personas que se certifiquen como Technology Specialist en Aplicaciones Windows o en Desarrollo Web y que, realmente, no sepan hacer la «O» con un canuto en lo que respecta a programar en .NET. Y esto más bien pronto que tarde se notará a la hora de trabajar en una empresa.


¡Así que no descartes el 70-536 tan rápido!


Ya estoy certificado en VS2008 ¿cómo me actualizo a VS2010?


Existen dos exámenes de certificación que te permiten saltar de MCPD en VS2008 a MCPD en VS2010, el 70-521 (Windows) y el 70-523 (Web). Al hacerlos automáticamente tienes las tres MCTS y el MCPD correspondientes.


Ahora bien: el que se piense que porque es un solo examen la cosa es fácil está muy equivocado. En nuestra experiencia en Krasis de personas que se han presentado a ese examen, en realidad es casi como si hicieras los cuatro exámenes necesarios para certificarte ya que es muy largo, se divide en las diferentes partes (una por tecnología) y entra lo mismo prácticamente que en el caso de prepararlos por separado.


En conclusión: si quieres actualizar la certificación hazte uno de estos dos exámenes (te ahorras dinero), pero prepárate como si fueras a presentarte cada uno de los otros exámenes que hemos visto por separado :-S


¿Y cómo puedo preparar los exámenes con garantías?


Aprobado GarantizadoAquí es donde viene la pequeña cuña publicitaria.


En campusMVP hemos creado cursos on-line de preparación de algunos de estos exámenes. Son los mejores cursos que hemos hecho hasta la fecha, os lo garantizo.


Y además, si vives en España, tenemos la promoción de Aprobado Garantizado. Es decir, estamos tan seguros de que preparándolos con nuestros cursos y nuestra metodología vas a aprobar, que si suspendes te devolvemos el dinero íntegro del curso (consulta las condiciones en la propia ficha de los cursos).


Y aunque no quieras presentarte al examen, los cursos están pensados para ir mucho más allá de sacar el examen. El objetivo de verdad es que domines la tecnología objeto de estudio.


Para los escépticos de la formación on-line diré que en la mayor parte de los casos es la mejor forma de aprender a programar. Y tenemos miles de alumnos que lo pueden atestiguar 🙂


Actualmente disponemos de estos cursos (pulsa para más info):


 


Pero en los próximos meses vamos a tener más.


¡Yo soy tutor en el de desarrollo Web, y contestaré on-line a todas tus dudas!


Anímate a certificarte, aunque cometas el error de no hacerlo en campusMVP 😉


Espero que el artículo te haya sido útil y te haya aclarado cómo funcionan las nuevas certificaciones.

Memristores: el futuro está ya (casi) aquí

En esta ocasión me he decidido a salirme un poco de la temática habitual en este blog para hablar de una tecnología muy nuevamuy poco conocida, revolucionaria y que está llamado a cambiar el mundo tecnológico en los próximos años.

Al contrario que en otras ocasiones, sí se trata de un salto cualitativo que puede tener un impacto realmente grande en las cosas que podremos construir en el futuro, y que puede hacer palidecer a la Ley de Moore si se cumplen la mitad de las expectativas depositadas en esta tecnología.

Se trata de los memristores. Son el cuarto componente fundamental de la electrónica, deducidos matemáticamente en los años ’70 pero que no existían en la práctica hasta hace muy poco. Quédate con la palabra porque en el futuro va a ser importante.

Como el tema es amplio he escrito un artículo en el que describo con bastante detalle en qué consisten estos dispositivos, cuáles son las aplicaciones prácticas que tienen, qué proyectos están ya en marcha y cuáles van a ser las tecnologías que nos traerán en el futuro próximo.

Sólo unas ideas que traerán los memristores, que seguro que llaman tu atención y que, aunque suenen a «humo» están a la vuelta de la esquina: almacenamiento permanente super-masivo, ordenadores que nunca se apagan y cerebros artificiales.

Te dejo ya, si te interesa, con el artículo que he escrito y hemos publicado en Scribd a través de Krasis Press:

Memristores: el futuro está ya (casi) aquí

Diferencias entre conversiones de tipos explícitas y mediante la clase Convert

Encajar¿Qué diferencia existe en C# entre hacer una conversión implícita y usar un método de la clase Convert? 


En realidad lo que hacen por debajo la mayor parte de las veces los métodos de Convert es llamar a conversiones implícitas. Es fácil comprobarlo viendo el código fuente de la plataforma con, por ejemplo, Reflector.


Sin embargo sí puede haber diferencias cuando se hacen conversiones entre tipos que pueden llevar a pérdida de información. Por ejemplo convertir desde un Int32 a un Int16, donde es posible que se pueda perder información ya que un Int32 puede contener números mayores que un Int16.


En estos casos sí que podría haber diferencias ya que las conversiones explícitas y los métodos de conversión se comportan de forma ligeramente distinta puesto que los últimos introducen alguna lógica para avisarte de que se producen excepciones.


Por ejemplo, si usas este código:

double d = 123456.76;
long l = (long)d;
long l2 = Convert.ToInt32(d);

La variable « contendrá el número 123456, pero la variable «l2″ contendrá 123457. El motivo sale enseguida si examinas el código del método Convert.ToInt32:

public static int ToInt32(double value)
{
if (value >= 0.0)
{
if (value < 2147483647.5)
{
int num = (int) value;
double num2 = value – num;
if ((num2 > 0.5) || ((num2 == 0.5) && ((num & 1) != 0)))
{
num++;
}
return num;
}
}
else if (value >= -2147483648.5)
{
int num3 = (int) value;
double num4 = value – num3;
if ((num4 < -0.5) || ((num4 == -0.5) && ((num3 & 1) != 0)))
{
num3–;
}
return num3;
}
throw new OverflowException(Environment.GetResourceString(«Overflow_Int32»));
}

Fíjate que lo que hace es redondear los decimales de forma diferente, y además si el valor no está en el rango permitido, devuelve una excepción porque perderías información, cosa que no ocurre con una conversión explícita en este caso.


Otro ejemplo más fácil de ver:

int i = 32765;
byte b = (byte) i;
int b2 = Convert.ToByte(i);

En este caso « contendrá el valor 253 porque la conversión explícita ha convertido a Byte incluso con pérdida de información. Sin embargo el método ToByte devuelve una excepción de de desbordamiento, porque se perdería información. El código del método ToByte es similar al anterior.


En MSDN detallan las conversiones que pierden y no pierden información.


¡Espero que te resulte útil!

Cómo recuperar correos borrados definitivamente de Outlook

Mail_Mate_ShredderAyer una persona de mi empresa eliminó sin querer una carpeta entera de su Outlook con varios miles de mensajes de trabajo. Lo típico: te crees que tienes seleccionado un mensaje pero en realidad el foco está en el árbol de las carpetas en el lateral, por lo que cuando pulsó MAY+DEL se cargó todo el contenido de la carpeta y sus subcarpetas sin pasar por la papelera. ¡Desaparecido en un segundo!


Como esta persona tenía el portátil fuera del dominio su PST no salía en las copias de seguridad, así que la tragedia se mascaba en el ambiente :-S


Sin embargo hay una manera de solucionarlo y recuperar todos los correos borrados que creo que le puede interesar a todo el mundo.


La teoría es la siguiente: Outlook guarda los correos en el PST que no es más que una base de datos propietaria. Cada mensaje o elemento de Outlook es una entrada en esa base de datos, por lo que cuando borras algo en realidad no se borra físicamente sino que se borra el puntero que hacía salir a la superficie ese elemento. Este es el motivo de que aunque borres correo sea necesario que compactes tu PST de vez en cuanto. El proceso de compactación lo que hace es buscar esos registros desvinculados y eliminarlos físicamente del PST, moviendo el resto para ocupar su hueco y haciendo que el archivo al final del proceso ocupe mucho menos.


Por eso, aunque se habían borrado los mensajes, al no haber compactado todavía el PST en realidad toda la información seguía en el archivo. La cuestión ahora era ¿cómo sacar esa información del PST?.


Lo primero y más importante es cerrar Outlook para evitar que el archivo PST se modifique más. Cuanto más lo usemos más probabilidad hay de que se sobrescriba la información.


Existe una herramienta llamada Scanpst.exe que viene incluida con Outlook (en la carpeta C:Program FilesMicrosoft OfficeOffice14 o análoga, según la versión que tengas) y que se usa para reparar los PST dañados. Lo que hace esta herramienta es recuperar información de los PST estropeados mediante la lectura secuencial los registros que hay en su interior, sin tener en cuenta si realmente están referenciados ya o no en alguna carpeta:


scanps


Así que lo único que nos falta por hacer es estropear el PST para que esta herramienta haga su trabajo y recupere los correos que hay dentro del PST borrados de manera tan brusca.


Para estropear el PST haz lo siguiente:



1.- Busca el .PST en el que estaba la información que borraste. Para ello vete a Inicio·Panel de control·Correo y en la ventanita que aparece pulsa el botón «Archivos de datos» para mostrar los .pst que estás utilizando.


MailSetup



2.- Haz una copia del .PST por si acaso te lo cargas.


3.- Abre el .PST con un editor Hexadecimal cualquiera. Los editores Hexadecimales son como cualquiera otro editor sólo que nos dejan editar archivos binarios (como los .pst) que si los abriésemos en el bloc de notas se verían con caracteres no imprimibles y «extraños». A mi, por ejemplo, me gusta mucho HxD, que es gratuito, no necesita instalación y es muy sencillo de usar.


4.- Altera unos cuantos bytes del comienzo del PST para corromperlo. A base de prueba y error puedes conseguirlo, pero te diré que los mejores bytes para estropear son los que están a partir del séptimo. Por ejemplo, pon espacios en los bytes que van del 7 al 12 o 13 y será suficiente (los primeros 6 son una cabecera del PST). Para ello sólo tienes que seleccionar del carácter 7 en adelante en la parte derecha del editor y pulsar la barra espaciadora hasta que tengas 00 en todos ellos:


corromperPST



5.- Pásale ScanPST.exe. Ahora ya tienes el PST corrompido por lo que si le pasas scanPST.exe lo detectará como tal y recuperará toda la información que hay dentro del mismo. Ejecuta Scanpst.exe y selecciona el archivo que acabas de corromper. Ejecútalo:


Scanpst


 


¡Listo! Ahora abre Outlook de nuevo. Verás que las carpetas y elementos borrados vuelven a aparecer en su sitio. OJO, recuperará más cosas que hayas borrado desde la última compactación, por lo que, aparte de lo que borraste accidentalmente, te aparecerán más cosas que habías borrado con anterioridad, así que tendrás que hacer una nueva limpieza de tus correos. Pero es un pequeño precio a pagar por recuperar algo importante 🙂


¡Espero que te sea útil!