Lecturas recomendadas sobre c# y .net · septiembre 2018
Aquí os dejo la lecturas interesantes sobre programación en c#.net del mes de la vuelta al trabajo.
Seeding Related Entities in EF Core 2.1's HasData()
Shawn Wildermuth
Si no lo sabes, Entity Framework Core 2.1 tiene una nueva forma de crear registros en la base de datos durante la fase de creación de EF (seed) con el método HasData()
[.NET Internals 03] Boxing and unboxing
Dawid Sibinski
(...) que es boxing y unboxing, cómo se representa en el código IL y qué implicaciones en el rendimiento puede tener.
Diferentes configuraciones en Visual Studio para generar diferentes ediciones de una aplicación
José Manuel Alarcón
Si desarrollamos una aplicación con .NET que se comercializa en distintas ediciones (por ejemplo Standard y Professional), cada una de las cuales ofrece diferentes capacidades/características y diferentes precios, es interesante poder generar físicamente distintos .exe o .dll para cada edición. Por ejemplo,
MiSuperApp-Standard.exe
yMiSuperApp-PRO.exe
.
WebJobs in Azure with .NET Core 2.1
Sander Rossel
Crear un WebJob en .NET Core no es difícil, pero tiene algunos trucos, especialmente si quieres usar algunos elementos principales de .NET como logging y DI.
The Inner-Platform Effect - The Daily Software Anti-Pattern
Matthew Jones
El Inner Platform Effect es un antipatrón que ocurre cuando un sistema de software está diseñado para ser tan personalizable que termina siendo una imitación limitada de la plataforma con la que fue diseñado. Debido a esto, se requiere un programador experimentado, en lugar de un usuario, para realizar cambios dentro del sistema afectado.
[.NET Internals 05] Garbage collection: marking, collection and heaps compaction
Dawid Sibinsky
(...) vamos a investigar cómo el garbage collector (GC) realmente libera la memoria, qué es la fase de marcado y cómo se compactan los heaps administrados para optimizar el proceso. También veremos cuándo se puede activar la recolección.
How to rethrow exception correctly in .Net
Andrii Snihyr
Relanzar una excepción puede convertir el trabajo de resolver un bug en un juego de "Buscar donde ocurrió la excepción". (...) aquí voy a discutir cuál es la forma correcta de volver a lanzar una excepción en .Net.
The Tragedy of Craftsmanship
Robert C. Martin (Uncle Bob)
¿Quién va a las conferencias sobre metodologías "Ágiles"? Los programadores no. Las personas que hacen la mayor parte del trabajo tampoco. Fueron programadores los que comenzaron esas conferencias. Los programadores comenzaron el movimiento. Pero los programadores ya no van. No son los programadores quienes han cambiado. Son las conferencias, y por lo tanto el movimiento, los que han cambiado. El movimiento Ágil se ha alejado de los programadores.
How NOT to use the repository pattern
Marcin-chwedczuk
Un problema que encuentro con estas interfaces (IRepositorioGeneral) es que violan el principio Interface Segregation Principle. Exponen todo el conjunto de operaciones CRUD, incluso para entidades para las cuales, por ejemplo, borrar no tiene sentido.
On Constructor Over-injection
Mark Seemann
El hecho de inyectar muchas dependencias en un contructor (sobre-inyección) es un code-smell, no un antipatrón.