Unit testing, the way I test my ViewModels

Unit testing, the way I test my ViewModels If you’re a MacOS developer, I wrote some related posts with the tooling and the code coverage. Please, check them because maybe they are useful. Unit testing tools using your MacOS terminal Unit testing tools using VSCode. This article is part of the October Xamarin Best Practices Challenge, you can read about it in Github of Claudio Sanchez. Introduction Nowadays the unit test is something required and we shouldn’t negotiated if we have to do it or not, we’ve been applying new design... [Leer más]

Unit testing tools using VSCode

Unit testing tools using VSCode This post is the second part of the post Unit testing tools using your MacOS terminal. They are related because the topic it’s the unit testing and the tools we have mainly in MacOS (they existing in Windows/ Linux enviroments too). Since I’ve been developing .Net Standard libraries I had to include a new tool in my tool belt, but this time, it wasn’t a new IDE. The choosen one was an editor. Visual Studio Code helps me to code my .Net Standard projects/ libraries, cover them with unit testing I have only... [Leer más]

Unit testing tools using your MacOS terminal

Unit testing tools using your MacOS terminal I’ve been a MacOS user for many years and I’ve been working /suffering with Visual Studio for Mac and Mono Studio and let me say that their integrated tools to work with unit testing IMHO are not enough so I had to include new tools to make my work easy. When I run my tests in a terminal window or in Visual Studio for Mac, the information they give me it’s only the final test result, i.e. how many tests are in red or how many tests are in green but I... [Leer más]

Meetup Prism 101 - Introduction

Meetup Prism 101 - Introduction The last week I were talking about a MVVM framework called Prism in the Xamarin Madrid Meetup group. Let me share with you the two Youtube videos (spanish audio) with the full content. It was my first Meetup as presenter but maybe not the last. You can download the repo from my Github. See the first video in Youtube. See the second video in Youtube. [Leer más]

Extraer base de datos SQLite de un terminal Android

Introducción Tarde o temprano en el desarrollo de una aplicación móvil nos encontramos con la necesidad de persistir datos de manera local y una de las opciones que tenemos es SQLite. No es buena práctica “persistir” todo el estado de nuestra app en clases estáticas ya que si la app hiciera crash en algún momento nos quedaríamos sin ningún dato. ¿Qué beneficios tiene SQLite? Es un motor de base de datos auto-contenido (sin dependencias externas), de alta fiabilidad (no da problemas, simplemente funciona), embebido (serverless- no hay un proceso de servidor intermediario), y de dominio público ya que es... [Leer más]

Extraer base de datos SQLite de un emulador iOS

Introducción Es la continuación del post Extraer base de datos SQLite de un terminal Android pero orientado absolutamente a como extraer una BBDD SQLite de un emulador iOS. De hecho, debebería haber sido el primero de los post ya que utilizo iOS como plataforma por defecto para ejecutar los proyectos de Xamarin Forms ya que tengo que reconocer que aunque los emuladores de Android son excelentes y más después de las últimas actualizaciones del SDK, el emulador de iOS es algo más ágil e incluso el tener abiertos varios emuladores/ simuladores no parece que vaya a despegar de... [Leer más]

Evitar magic string al internacionalizar una aplicación ASPNet Core

Evitar magic string al internacionalizar una aplicación ASPNet Core Introducción En el post sobre la internacionalización de una aplicación ASPNet Core uno de los puntos más negativos que encontré es el uso de magic strings a la hora de localizar los recursos y en este post/ píldora quiero comentar la aproximación que se me ha ocurrido para evitarlo. ¿Qué son las “magic strings”? Son valores de cadenas que se especifican directamente dentro del código, y el tufo suele saltar cuando especificas esa “magic string” en más un sitio. Uno de los mecanismos que existen para evitarlo... [Leer más]

Internacionalizar una aplicación ASPNet Core

Internacionalizar una aplicación ASPNet Core Introducción, conceptos Internacionalización (I18n). Es el proceso de diseñar aplicaciones que soporten distintos idiomas y culturas/ regiones. Localización (L10n). Es el proceso de preparar/ adaptar nuestra aplicación a una cultura/ región específica. Según la Wikipedia también se le puede denominar regionalización. Globalización (G11n). Es una convección creada por IBM y Sun Microsystem para cubrir tanto la internacionalización como la localización. Lo que está entre paréntesis (I18n, L10n, G11n) se denominan numerónimos que no es otra cosa que una palabra que contiene números con el... [Leer más]

Acceder a IIS Express desde un equipo remoto

Más de una vez hemos querido hacer que nuestro IIS Express sea accesible desde fuera de nuestra máquina de desarrollo para probar algo de forma puntual. Y como es costumbre no nos lo han puesto nada fácil por lo que deberemos seguir los siguientes pasos: Enlazar nuestra aplicación a una dirección IP pública Para enlazar nuestra aplicación a una dirección IP pública deberemos añadir un nuevo binding (enlace) a nuestra aplicación. Para ello deberemos modificar el archivo applicationhost.config que desde la versión 2015 de Microsoft Visual Studio se encuentra en la misma ruta del proyecto, exactamente dentro de /.vs/config.... [Leer más]

Entendiendo Semantic Versioning

Tengo que renocer que nunca he prestado demasiada importancia al tema de las versiones de los componentes que he utilizado tanto en los proyectos llevados a cabo nivel empresarial como en mis proyectos personales. Pero una vez metido en el desarrollo de Node.Js y revisando el archivo package.json que es el que contiene entre otras cosas las referencias a componentes externos (dependencias), me he dado cuenta de que no puedo estar más tiempo sin conocer y entender el sistema de versionado. Y en este caso quiero revisar Semantic Versioning que vino para quedarse ya que resuelve el famoso “infierno... [Leer más]