Lecturas recomendadas · abril 2018
Inspirándome en el blog Variablenotfound de José M. Aguilar voy a iniciar una recopilación de enlaces que me han resultado interesantes.
Overriding methods in classes-dependencies
Vladimir Khorikov
Las clases que combinan lógica de negocio y conectan con servicios externos violan el principio de responsabilidad única.
FP vs. OO
Robert C. Martin (Uncle Bob)
Si bien OO (Object-Oriented) y FP (Functional-Programming) son ortogonales, no son mutuamente excluyentes. Un buen programa funcional puede (y debería) estar orientado a objetos. Y un buen programa orientado a objetos puede (y debe) ser funcional. Pero para lograr este objetivo vamos a tener que definir nuestros términos con mucho cuidado.
Coalescing Composite as a monoid
Mark Seemann
¿Por qué querrías utilizar el patrón Compuesto con dos repositorios? Un escenario sería dónde tuvieses un almacén de datos antiguo que te gustaría mover a un nuevo almacén de datos. Por un tiempo, ambos almacenes convivirían a la vez y tendrías la necesidad de escribir datos en ambos, pero uno de ellos sería el almacén de datos 'principal', y de este es de donde quieres leer los datos.
Endomorphic Composite as a monoid
Mark Seemann
Imagina que tienes que implementar una funcionalidad de planificación de tiempos. Por ejemplo, tienes que planificar algo que que ocurra en un mes a partir de ahora, pero debería suceder en un "día que el banco trabaja" en horario comercial, y quieres saber cuál será la fecha y hora resultante.
Programar no es desarrollar
Juan María Hernández
Igual que ser capaz de escribir no te hace escritor, ser capaz de programar no te hace desarrollador. Hay mucho más que eso.
Lo mínimo a entender sobre transacciones
Juan María Hernández
Cualquiera que se dedice a esto de desarrollar software conoce el concepto de transacción. O al menos eso quiero pensar. Otra cosa es ya hasta qué punto seamos conscientes de lo que realmente implica utilizar una transacción, cuándo y por qué debe usarse, los distintos tipos que existen, etc.
Vertical Slice Architecture
Jimmy Bogard
Una arquitectura "limpia" tradicional en capas / cebolla / es monolítica en su enfoque:
El problema es que esta arquitectura solo es apropiada en una minoría de las solicitudes típicas que recibe un sistema. Además, tiendo a ver estas arquitecturas difíciles de testear, con reglas rígidas en torno a la gestión de las dependencias. En la práctica, he encontrado que estas reglas rara vez son útiles, y acaban por obtener muchas abstracciones sobre conceptos que realmente no deberían abstraerse (el controlador DEBE hablar con un servicio que DEBE usar un repositorio).
Using Entity Framework DbContext with Dependency Injection
Matthew Jones
Inyectar Entity Framework DbContext en clases que lo necesitan es tan simple como inyectar cualquier otra clase, siempre y cuando se tengan en cuenta algunas particularidades.
Cómo incluir scripts en la página desde vistas parciales ASP.NET Core MVC con DynamicSections
José M. Aguilar
Vamos a hacer posible que cada vista parcial o componente pueda registrar código HTML que luego sea renderizado en un lugar específico de la página. El objetivo sería algo similar a lo que conseguimos con la definición de secciones
@section
y@RenderSection()
, pero aplicable a cualquier tipo de vista parcial.
Blazor, Razor, WebAssembly, and Mono
How the pieces fit together.
Dave Glick
Blazor es un nuevo y emocionante framework web del equipo ASP.NET que usa Razor, WebAssembly y Mono para permitir el uso de .NET en el cliente. Hay mucha expectación acerca de las posibilidades que esto presenta, pero también ha habido confusión sobre cómo encajan las diferentes partes. En este post intentaré aclarar cosas y mostrar exactamente qué hacen cada una de estas tecnologías y cómo funcionan juntas para habilitar .NET en el navegador.
Get started with Azure for .NET developers
Scott Hanselman & Rob Caron
Scott y Barry hablan sobre como los desarrolladores de .Net pueden empezar fácilmente con Azure.
Por qué todo lo que subo a Azure está mal
Fernando Escolar
Hoy he venido contaros mis experiencias ayudando a diferentes empresas en la subida de sus aplicaciones a Azure, y concretamente a Azure PaaS. Así que en realidad no son mis experiencias, son las de esas empresas. Y si soy totalmente sincero, no son sus experiencias, en realidad de lo que os voy a hablar es de sus quejas.