sábado, 22 de abril de 2017
Linq Extended Joins
Hace unos años leí un artículo de C. L. Moffatt (link), donde se explicaba de forma clara y concisa los diferentes tipos de joins en SQL, y tomé la idea de escribir un artículo similar pero enfocado a LinQ, ya que había visto en muchas ocasiones muchas preguntas en foros dirigidas a este tema, pero no he encontrado ninguna en la que aune todos y cada uno de los casos.
Espero dar algo de luz con las líneas que siguen.
lunes, 10 de abril de 2017
Visual Studio Collection Visualizers
Hace tiempo, varios años atrás, estuve desarrollando un
programa en .NET, la cual contenía una gran cantidad de comparaciones
entre secuencias. El tamaño de estas colecciones eran bastante grandes y el
debugeo y la comprobación de los resultados se convertía en un infierno el
navegar entre los treeviews de resultados.
Decidí construir una dll
que me permitiera poder visualizar las secuencias y los filtrados y las
comparaciones entre ellos. Un tiempo después lo actualicé a un visualizer, simplificaba bastante el
trabajo. Ya que el resultado fue bastante satisfactorio, hoy lo comparto con
todos vosotros.
martes, 4 de abril de 2017
System.Diagnostics Acciones Útiles
jueves, 23 de febrero de 2017
WPF Copy/Paste Excel Fácil
He desarrollado una forma sencilla de copy y pegar
datos entre Excel y una aplicación WPF. Este código es compatible con
controles que heredan de System.Windows.Control.ItemsControls,
ósea que poseen la propiedad ItemsSource.
Algunos de estos controles son DataGrid, ListBox, ListView, etc.
Es de código abierto y su código está en GitHub.
Su uso es extremadamente sencillo y se puede instalar fácilmente
desde nuget.
Una vez instalado simplemente configuraremos un import en el XAML y unas
AttachProperties
en el control en cuestión.
jueves, 9 de febrero de 2017
WPF SearchAll Control (básico)
SearchAll es un control de WPF que realiza de filtrados
de manera extremadamente sencilla. SearchAll reduce el tiempo y el esfuerzo y
posee una interfaz muy amigable y cuidada. Este control está basado en el
control de búsqueda de la página de formación Pluralsight, con la diferencia de que SearchAll es válido para cualquier
tipo de datos, ya que es un control completamente genérico.
Vamos a ver todas sus bondades.
miércoles, 8 de febrero de 2017
viernes, 20 de enero de 2017
Clonando Objectos en .NET Framework Parte II
Cuando publiqué la primera parte del artículo, decidí dejar fuera un modo más de clonación, el impulsado por Reflection. La decisión de dejarlo fuera vino principalmente porque hubiera querido abordarlo profundamente y pensaba que se podía alargar mucho y perder el sentido. A la vez en los comentarios de otras páginas especializadas me sugirieron también el modo mediante Expressions Trees, algo que no conocía en este planteamiento, pero tratándose de Arboles de Expresiones, no era para nada lo que se puede decir sencillo.
Buscando más información, me topé con 2 fantásticas
librerías en Git Hub, accesibles
mediante Nuget, que
funcionaban perfectamente bien y que hacen el trabajo de forma maravillosa, así
que ¿para qué reinventar la rueda?
En esta segunda parte trataré de explicar ejemplos con Nuclex y CloneExtensions, que nos permiten realizar clonados profundo,
tanto en modo Reflection como Expression Trees.
martes, 27 de diciembre de 2016
Clonando Objectos en .NET Framework
En esta entrada vamos a tratar un par de formas o estrategias para realizar clonación de objetos en .NET Framework. Analizaremos los pros y las contras por cada uno de los métodos, ya que a día de hoy no existe una fórmula infalible para realizar esta tarea.
Todo lo que vamos a ver está dirigido al uso de clases, ósea a tipos por referencia que no sean clases inmutables (strings, delegados, structuras, etc), ya que éstas tienen un tratamiento diferente en memoria que se queda fuera del objetivo de este post.