Narciso Cerezo

Tecnología y emprendizaje

Junio del 2004

Contenedores Ligeros y Arquitecturas de Plugins: Inyección de Dependencias y Localizadores de Serv

Durante muchos años he ido de un proyecto con tecnologías Microsoft a otro en entornos Java/Unix, jugando en ambos campos casi simultáneamente. De hecho, la compañía en la que pasé la mayor parte de esos años (Digital / Compaq) me certificó nada mas empezar como MCSE + Internet, así que estaba algo más atraido por el entorno Microsoft.
Sin embargo, debo admitir que entonces Java y J2EE presentaban una aproximación más atractiva hacia las soluciones orientadas a objetos, tanto desde el desarrollo como desde la arquitectura. Durante los últimos tres años he estado muy centrado en este enotrono Java y J2EE, adquiriendo un buen nivel de conocimientos, pero dejando atrás las soluciones .NET que surgieron justo al principio de este periodo.
En estos últimos meses he estado jugando con .NET, básicamente aprendiendo C# que creo que es el mejor de los lenguajes en .NET para desarrollo orientado a objetos. C# tiene toda la facilidad que antes sólo tenía VB, pero con una verdadera orientación a objetos nativa.
Creo que desde hace algún tiempo C# se está llevando a bastantes desarrolladores Java a su propia arena, y muchos de ellos tratan de llevar a .NET las soluciones que se han desarrollado en Java durante todos estos años. Esto ocurre con muchas soluciones Open Source, como Ant (NAnt) o JUnit (NUnit), por nombrar un par de ellas.
Creo además que este fenómeno está llevando muchas buenas cosas a la comunidad .NET, y es genial.
Pero no hemos de olvidar que Microsoft diseñó .NET con el conocimiento de las cosas que no estaban bien o faltaban en Java y J2EE, y que además lo hizo con el potencial de una gran cantidad de cabezas pensantes e innovadoras. Esto significa que muchas de las cosas resultas por terceros en Java y J2EE lo están de forma nativa en .NET.
Un buen ejemplo: Actualmente hay mucho esfuerzo y discusión entorno al patrón de Inyección de Dependencias o Inversión de Control y los contenedores ligeros. Sabemos que hay frameworks como Spring en Java, que ahora se están portando a .NET y C#, cuando resulta que .NET ya proveé una solución para todo esto.
Lo mejor del hecho de que esto esté implementado en el propio corazón de .NET es que es algo sobre lo que puedes construir, sabiendo que es algo soportado y que todo el mundo puede usar desde el principio sin tener que descargar e instalar nada.
Daniel Cazzulino explica en su blog cómo funciona todo esto en .NET, y discute por qué hay ciertas desventajas apuntadas por Fowler que quedan solucionadas por el hecho de ser una parte integral de .NET.

Lightweight Containers and Plugin Architectures: Dependency Injection and Dynamic Service Locators in .NET

Carreras Técnicas en Microsoft

Con seguridad, habrás buscado información sobre cómo hacer un currículum bueno o cómo enfrentarse a una entrevista de trabajo. Y sin duda, habrás encontrado mucha información al respecto. Sin embargo, en mi opinión, esa información es básicamente la misma en todos sitios, y constituye en muchos casos un cliché que hay que tomar con cierta precaución en algunos aspectos.
Recientemente, he encontrado un lugar en Internet ciertamente diferente y refrescante en este sentido: el blog de carreras técnicas de Microsoft EE.UU (Technical Careers @ Microsoft). La información está en inglés, pero es francamente muy interesante por la aproximación informal y sincera, y los contenidos directos y de gran valor.