Uncategorized
update-database y LocalDb en una aplicación de escritorio
· ☕ 4 min · ✍️ eiximenis
Estos días he estado desarrollando un aplicación de escritorio (wpf aunque eso es lo de menos) que va a hacer uso de LocalDb para guardar datos. Ciertamente no es un escenario muy habitual, ya que al instalar la aplicación en un ordenador cliente se requiere instalar LocalDb pero en este caso eso era asumible. Otras opciones para escritorio podrían pasar por usar algúna BBDD de proceso (como VistaDb o similares).

Securizando tus servicios WebApi usando OWIN
· ☕ 5 min · ✍️ eiximenis
Hace algún tiempo escribí un post acerca de mecanismos para hacer tus servicios WebApi seguros. En este post mencionaba tres mecanismos para que tus servicios web solo sean accesibles a través de usuarios autenticados: Atributo Authorize custom: no recomendado para autenticación (es para autorización). Message Handler (DelegatingHandler): Mecanismo recomendado dentro de WebApi para autenticación. HttpModule: Solución a nivel de IIS. En el post comentaba que si tu aplicación depende de IIS puedes usar un HttpModule, pero que si quieres evitar tener una dependencia con él (ya que WebApi admite escenarios selfhost) debes usar un DelegatingHandler.

Securizar tu WebApi con Azure Mobile Services
· ☕ 9 min · ✍️ eiximenis
El escenario es el siguiente: tenemos un conjunto de servicios WebApi que no tienen porque estar desplegados en Azure pero queremos que esos servicios solo sean accesibles para usuarios que se hayan autenticado previamente a través de un proveedor externo (p. ej. Twitter) usando la infrastructura de Azure Mobile Services. Creación y configuración de Mobile Services Esa es la parte fácil… Una vez hemos creado nuestro mobile service debemos irnos a la pestaña Identity y colocar los valores que nos pide según el proveedor de autenticación externo que queramos usar.

ASP.NET WebApi: Subida de ficheros
· ☕ 4 min · ✍️ eiximenis
Buenas! Vamos a ver en este post como podemos tratar la subida de ficheros en WebApi. En ASP.NET MVC la subida de ficheros la gestiona un model binder para el tipo HttpFilePostedBase, por lo que basta con declarar un parámetro de este tipo de datos en el controlador y automáticamente recibimos el fichero subido. En WebApi el enfoque es muy distinto: en el controlador no recibimos ningún parámetro con el contenido del fichero.

Angular y React (1/n): Empezando
· ☕ 4 min · ✍️ eiximenis
¡Buenas! Empiezo con esta una serie de posts, que no se lo larga que será, comparando (en el buen sentido, nada de buscar un ganador ni un perdedor) un poco Angular con React. Antes que nada el típico disclaimer: Angular y React no cubren los mismos aspectos del desarrollo web. Sí Angular cubre todo el espectro MVC, MVVM o como quieras llamarlo, React cubre solo la V: las vistas. Es pues, de funcionalidad más limitada que Angular.

ASP.NET MVC–Traduciendo las validaciones de CompareAttribute
· ☕ 3 min · ✍️ eiximenis
Muy buenas! Seguimos ese tour de force sobre las traducciones de los mensajes de validación de Data Annotations. En el primer post de esta serie vimos como crear adaptadores de atributos para permitirnos fácilmente y a nivel centralizado establecer las propiedades ErrorMessageResourceName y ErrorMessageResourceType. El post terminaba con una lista de los distintos adaptadores que tiene ASP.NET MVC y que podíamos usar como clases base. Hay adaptadores definidos para casi todos los atributos de Data Annotations (Required, StringLength,…) pero no hay ninguno para el CompareAttribute.

ASP.NET MVC–Traduciendo las validaciones implícitas
· ☕ 6 min · ✍️ eiximenis
En el post anterior vimos como localizar los mensajes de validación de Data Annotations en ASP.NET MVC usando adaptadores de atributos. Pero además de esos mensajes ASP.NET MVC tiene algunos mensajes de traducción implícitos. P. ej. si tenemos una propiedad de tipo Int y le intentamos poner un valor no numérico ASP.NET MVC mostrará un mensaje de error. Este mensaje de error no proviene de Data Annotations, por lo que no podemos usar la técnica descrita en el post anterior para traducirlo.

ASP.NET MVC–Traducir los mensajes de error de DataAnnotations… otra vez.
· ☕ 4 min · ✍️ eiximenis
Pues sí… la verdad es que esa es una cuestión recurrente en ASP.NET MVC. Y es que con las distintas versiones de MVC han aparecido distintas maneras de conseguir este propósito. Nota 1: Para tener una idea de como eran las cosas en MVC2 echad un vistazo al post que publicó el Maestro hace tiempo: Modificar los mensajes de validación por defecto en ASP.NET MVC 2. Por favor léete dicho post, pues en cierto modo mi post es una “continuación”.

C#- Vitaminiza tus enums con métodos de extensión
· ☕ 2 min · ✍️ eiximenis
Buenas, un post cortito y sencillito 😉 En C# los enums son relativamente limitados: básicamente se limitan a tener un conjunto de valores y nada más. En otros lenguajes como Java o Swift, los enums pueden declarar métodos. A priori puede parecer que no es muy necesario que un enum tenga un método, y de hecho no es algo que se suela echar en falta. Pero en algunos casos puede ser útil, especialmente para tener nuestro código más bien organizado.

ASP.NET MVC–Vigila los nombres de los parámetros de tus acciones
· ☕ 4 min · ✍️ eiximenis
Muy buenas! Un post cortito para contaros un problemilla que nos hemos encontrado en un proyecto ASP.NET MVC5. Aunque seguro que aplica a todas las versiones de MVC desde la 2 al menos. Es uno de aquellos casos en que, evidentemente hay algo que está mal, pero a simple vista todo parece correcto. Luego das con la causa del error puede que o bien no entiendas el porqué o bien digas “¡ah claro!