Ejecutar acciones al finalizar la transacción: TransactionCompleted vs....
Hace unas semanas me encontré con la necesidad de realizar una acción al final de una transacción, pero sólo si dicha transacción había sido completada. Imaginemos que queremos enviar un mail de aviso,...
View ArticleRedescubriendo SQL: APPLY
Mientras curioseaba en las sentencias SQL que genera EF descubrí que utilizaba un operador un tanto olvidado: APPLY. A simple vista, su uso y aplicaciones pueden recordar a los de la cláusula JOIN y,...
View ArticleQué es yield y por qué hay que usarlo
Seguro que alguna vez has utilizado en C# la palabra clave yield. Se usa para indicar al compilador que estamos dentro de un bloque de iteración y nos permite acceder a los elementos de una lista...
View ArticleTesting: Dobles de acción y estado vs. comportamiento
Agregar tests a nuestros proyectos es muy rápido. Tan sólo hemos de añadir un proyecto de tipo Test a nuestra solución y Visual Studio nos deja ante un método Test1 listo para rellenar de Asserts Pero...
View ArticleMotivación vía planificación en Scrum
Como desarrolladores de software, nuestro trabajo tiene un componente creativo sustancial y, como en cualquier trabajo creativo, la motivación con que lo encaremos determinará en gran medida nuestra...
View ArticlePrimeros pasos con las estimaciones
Las primeras veces que tenemos que estimar historias se nos hace muy cuesta arriba. ¿Cómo empiezo? ¿Y si me equivoco? ¿Hemos de estimar tiempo, complejidad o ambas? ¿Cómo demonios sé lo que voy a...
View ArticleClausuras, bucles y variables locales en C#
Empiezo el post de hoy con un acertijo ¿Cuál es la salida de este código? static void testClosureForeach() { var values = new int[] { 100, 110, 120 }; var funcs = new List>(); foreach (var v in...
View ArticleError en Azure Storage Emulator: The process cannot access the file
Ayer me dí cuenta de que me había dejado de funcionar el emulador del Azure Storage. Concretamente, el servicio de blobs; el emulador de colas y las tablas sí que arrancan o_O El mensaje de error que...
View ArticlePaso a paso: FileUpload con ASP.NET MVC3 en Azure
Si hay una necesidad habitual al desarrollar una aplicación web esa es que el usuario pueda subir archivos al servidor. Por ejemplo, su foto. Como vamos a ver, hacer esto con ASP.NET MVC3 y Razor es...
View Article¿Claves primarias naturales o subrogadas?
¿Clave primaria natural (generalmente una candidata compuesta, de ahí nace parte del debate) o subrogada? Cada vez que en un proyecto me he enfrentado al diseño de una base de datos he encontrado...
View Article