Mutex vs Semaphore
Published 24/11/2009 9:41 | Mario Ropero
El otro día estaba leyendo y encontré un sitio que exponía algunas preguntas que hacía Google en su entrevista de trabajo y ví una de ellas y me pareció curiosa (sobre todo porque creía saber la respuesta) y era “ ¿Diferencia entre Mutex y Semaphore? ” y como ahora estoy a ver si aprendo un poco de concurrencia y esas cosicas me dije, esta es fácil a ver si soy capaz de explicarla de una forma sencilla.   Lo primero decir es que tanto el Mutex como el Semaphore son herramientas para controlar...
[FW 3.5] Obtener los miembros recursivamente de un grupo en directorio activo
Published 17/11/2009 20:00 | Mario Ropero
Hola a todos, con el FW 3.5 hay una opción para recoger todos los miembros de un grupo en modo recursivo, así que ya se acabó de ir buscando los miembros del grupo y ver si tenía a su vez miembros y todo el rato lo mismo.   Es que estos chicos de .NET son muuuuuy listos. Os pongo un ejemplillo pero es sumamente sencillo. El espacio de nombres a usar es System.DirectoryServices.AccountManagement   string nombreGrupo = "grupo" ; string nombreDominio = "dominio" ; using...
System.Transactions y concurrencia
Published 3/11/2009 10:00 | Mario Ropero
  Hola a todos, llevo bastante tiempo desconectado y es que el verano me ha sentado mal y estoy muy perruno, pero bueno vamos a ver si podemos hacer algo para remediarlo. Hace tiempo conté un problemita que me surgió con los TransactionScope y su abuso.   Esta vez el problema estaba en que un proceso hacía una operación y en un momento llamaba a un hilo en background para procesar otro trabajo, pero todo tenía que estar dentro de la misma transacción o al menos que sólo se hiciese commit...
Compilar en tiempo de ejecución
Published 8/10/2009 14:30 | Mario Ropero
Hola a todos, seguro que muchos de vosotros ya sabéis de que va todo esto, pero es que es una de las cosas que más gracia me hizo cuando descubrí cómo hacerlo. Vamos a ver cómo gracias a una librería muy maja ( System.CodeDom ) podemos compilar en tiempo de ejecución y gracias a la reflexión (ya sabéis que es la raíz de todo mal) podemos ejecutarlo.   El uso que se le puede dar a esto es prácticamente ilimitado aunque no es tan fácil de ver (al menos en mí caso), así que me encantaría que me...
[WCF] DataContractSerializer y la propiedad IsReference. .NET 3.5 SP1
Published 29/9/2009 19:00 | Mario Ropero
  Hola a todos, siguiendo al hilo de mi anterior post y haciendo caso a un señor que de esto sabe un rato, se puede pasar por referencia los objetillos sin necesidad de generar un behavior especial, simplemente con una propiedad del atributo DataContract.   Sigo pensando exactamente lo mismo que antes, que esto, aunque solucione muchos problemas es posible que enmascare un desconocimiento de fondo por parte de los desarrolladores del proyecto, y que las cosas dejen de funcionar correctamente...
[WCF] Vuelta a la realidad,… y jugando con el DataContractSerializer
Published 21/9/2009 13:00 | Mario Ropero
Hola a todos!!!!, han pasado muchas semanas sin que haya actualizado el blog, de hecho ni me he acercado a él. Necesitaba desconectar y vaya que si lo he hecho… :). Pero todo se acaba, así que aquí vuelvo a soltar rollazos a troche y moche (tampoco muchos, que esto de escribir cansa…).   Uno de mis mayores problemas que he encontrado cuando se trabaja con un patrón proxy (como Remoting, WCF,…) es que mucha gente no tiene claro dónde van sus objetos y cómo se pasan los valores por referencia...
CERRADO POR VACACIONES!!!!!
Published 31/7/2009 12:20 | Mario Ropero
  El armario se cierra por vacaciones, qué ilusión que me hace poder decir esto. Voy a pasar las siguientes 6 (seis!!!!!!!) semanacas descansando, intentaré aprovechar para leer algo y culturizarme un poco, pero no creo que tenga mucho tiempo para escribir, así que dejaremos la actividad por un tiempo.   Un saludo y disfrutad los que podáis.   Mario Ropero.
AYUDA : Validaciones vs Excepciones
Published 28/7/2009 9:23 | Mario Ropero
Hola a todos, estamos en pleno periodo vacacional para algunos, otros no (nos queda poco, poco) y me ha surgido un problema, que espero que podáis ayudarme a resolver. Se refiere al tema de trabajar con validaciones o trabajar con excepciones y su rendimiento.   A la hora de desarrollar un método cuando este recibe parámetros lo “ideal” es comprobar que los parámetros que nos llegan son válidos para utilizarlos en nuestra lógica posterior, así que según dicho esto lo que yo creo como ideal,...
Ejecutar un servicio de Windows en 32-bit en un Windows de 64-bit
Published 17/7/2009 7:54 | Mario Ropero
Hola a todos, llevo un tiempo apartado de los maravillosos mundos de internés , porque estamos en fase de puesta en producción en mi proyecto actual, y ya sabéis como es eso. Muchos nervios por parte de la jefatura, se ven algún que otro látigo de siete colas, alguna que otra frase graciosa del tipo “¿Dormir? Para que necesitas dormir… a trabajar…” y cosas similares. Bueno, pues unos de los diversos cambios que se hizo fue en la plataforma y pasamos de un bonito Windows Server 2003 32 bit a su esplendido...
Una de TransactionScope por favor!!!!
Published 8/7/2009 8:48 | Mario Ropero
Buenos días a todos, no tenía pensado en escribir nada de este maravilloso elemento, pero estamos haciendo una pequeña refactorización de código porque algún DBA nos dijo que en nuestra aplicación teníamos un poco de contención con las transacciones y yo pensé “Transacciones?? Si prácticamente no las usamos”, infeliz de mí, luego hice una búsqueda sencilla por el código y aquí estoy quitando código y escribiendo sobre esto.   Lo que me he encontrado hasta la saciedad es esto using (TransactionScope...
[WCF] Pasar información entre las distintas “capas” del servidor
Published 7/7/2009 7:49 | Mario Ropero
Hola a todos, siguiendo con los artículitos de WCF, os vengo a hablar de una solución que implementamos en un cliente para pasar información a través de su parte servidora sin tener que tocar la firma de los métodos, porque había unos cuantos. Esto se implementó a través del OperationContext que nos ofrece la activación del servicio WCF y la verdad es que funciona de vicio. Pero cómo me dijo un gran crack sobre esto, hay que tener cuidado con el OperationContext porque no deja de ser una sesión de...
[MSBuild] Crear y depurar una task personalizada
Published 30/6/2009 12:02 | Mario Ropero
Hola a todos, vengo a hablar de una cosa que es tan sumamente sencilla que no haría falta escribir sobre ella, pero justamente por eso vamos a describirla. Vamos a crear una task personalizada para que nuestras builds automatizadas del VSTFS las ejecuten por nosotros. Lo primero sería deciros que las task sirven para casi cualquier cosa que se nos ocurra en nuestras build, en mi caso particular la última vez que hice una era para sustituir un fichero .bat que organizaba unos...
[WCF] InstanceContextMode.Single y variables globales
Published 25/6/2009 10:10 | Mario Ropero
Los servicios WCF (esos grandes amiguitos), tiene varios modos de instanciación (PerCall, PerSession y Single), la documentación oficial la podéis encontrar aquí , pero quería hablaros del comportamiento del single. En mi proyecto actual se decidió cambiar la forma de instanciación de los servicios a Single para ganar rendimiento, y en un principio viendo el coste del cambio, “unas dos líneas de código”(jajajajajaja), se decidió hacerlo. Yo en un principio era un poco escéptico porque conocía como...
[WCF] Usar ClientMessageInspector para añadir información a las soapHeaders
Published 14/6/2009 9:56 | Mario Ropero
Hay ocasiones que queremos pasar información del cliente al servidor, o vicerversa y no queremos cambiar la fachada de nuestros métodos, o bien porque implicaría mucho cambio, o bien porque la información que queremos transportar es una información de “estado” que no tiene sentido que esté en la fachada de nuestros métodos. Pues esto lo vamos a poder hacer a través de los behavior de los endpoint y de los MessageInspector, que existen de dos clases, los de cliente (IClientMessageInspector) y los...
Producir, producir y producir!!!!
Published 11/6/2009 18:51 | Mario Ropero
Actualmente, estoy trabajando desplazado en un cliente ayudándoles (o al menos intentándolo) al sacar adelante su aplicación interna de gestión, el trabajo es duro y el tiempo es corto… vamos que estamos en la mejor de las situaciones que imagino que muchos de vosotros, por desgracia, conoceréis.   De ahí, el tema del “post”, en una situación como la actual lo que se pide a los desarrolladores es que produzcan, produzcan y que produzcan… y que además lo produzcan bien (bueno esto último es un...