Cómo instalar y configurar swagger en .Net Core usando OAuth2

Vengo utilizando swagger para documentar mis desarrollo con API desde que lo descubrí, y ahora que estoy empezando a utilizar .Net Core para mis desarrollos, no podía dejar de utilizarlo.

En esta entrada te voy a explicar como instalar y configurar swagger íntegramente desde el startup de tu servicio de .Net Core.

Leer más…

Cómo crear dinámicamente un contexto de Entity Framework Core en tiempo de ejecución

A medida que me introduzco más en arquitecturas de microservicios, trato de explotar sus diferentes ventajas. Una de ellas es poder usar una tecnología diferente para cada microservicio, por lo que es la oportunidad perfecta para explorar dotNet Core.

Ya he creado una entrada previa centrada en Core, para validar un token generado desde un servicio creado con .Net Framework. Ahora presento esta otra entrada donde he vuelto a aprovechar la arquitectura de Unit of Work, Repository Pattern y Entity Framework Code First de la que hablo en una de mis primeras publicaciones, en esta ocasión se trata de usarla con Entity Framework Core y además reforzarla con la creación de contextos de datos de forma dinámica en tiempo de ejecución y manteniéndola desacoplada de las demás capas, de forma que Entity Framework sea algo particular de la capa de datos.

Leer más…

Error de serialización con objetos que aplican herencia.

Recientemente me he encontrado con un error al comunicar un objeto entre dos sistemas aplicando NServiceBus. Me ha resultado bastante curioso y creo que merece la pena una entrada para andarse con ojo con el tipo de asignación que hacemos entre objetos que aplican herencia entre sí.

A continuación te explico cuál es el problema. 

Leer más…

Validar token OAuth v2 entre .Net framework y .Net core

Con la llegada de .Net core y el uso de microservicios, es posible que te enfrentes a la necesidad de que un nuevo microservicio que utiliza tecnología .Net core sea capaz de validar un token generado por un viejo microservicio (por ejemplo .Net 4.5 o .Net 4.6) que se encarga de la autenticación del usuario y la generación del mencionado token. Debido al cambio de algunas de las librerías de seguridad en .Net core, y según como tengas construido tu provider de OAuth v2 para generar el token, lograr esta validación puede no ser una tarea inmediata.

En esta entrada te muestro una de las posibles soluciones para lograrlo. 

Leer más…

Flow expectation test con Rhino Mocks – Parte 2

En la primera entrada sobre Rhino Mocks presento una primera aproximación a los flow expectation test. En esa entrada hablo sobre validar que todas las llamadas a otros métodos son realizadas por el método que deseas probar. En ese caso se esta utilizando una misma interfaz, por lo tanto los flow expectation test son bastante sencillos. Esta situación no siempre se va a dar, tendrás muchos casos donde tus servicios llamen a métodos de distintas interfaces, y te será necesario combinar diferentes mocks para hacer este tipo de test, en esta entrada te presento como hacerlo con Rhino Mocks.

Leer más…

Flow expectation test con Rhino Mocks – Parte 1

En varias de mis entradas sobre unit testing hablo sobre la potencia de esta librería de rhino mocks para hacer unit test, como en ésta sobre herramientas para unit test. Pero no solo sobre unit test debe sustentarse tu aplicación.

Hay otro tipo de test para probar el flujo de tu lógica de negocio, que son los culpables de que tome mi decisión sobre usar esta librería rhino mocks sobre otras librerías de testing. Sobre este tipo de test hablo en una entrada reciente, dando motivos para implementar este tipo de test y una arquitectura que los permita.

En esta entrada voy a entrar al detalle de como usar rhino mock para hacer diferentes flow expectation test. 

Leer más…

Flow expectation test como parte de tus unit test.

En mi entrada sobre porque usar la librería Rhino Mock para unit test explico brevemente su utilidad para testear el “qué” hace un método o tu SUT (Sistem under test). A este “probar el qué” hace una función, sin entrar a los detalles técnicos sobre como cumple con su función se le puede conocer como test de flujo esperado o flow expectation test. En esta entrada te hablo sobre sus ventajas y su importancia.

Leer más…