Promedio de descarga/visualización de los códigos de C sharp
Listado de los códigos con más promedio de visualizaciones realizadas por día desde su publicación en la web.
Los árboles son una de las estructuras de datos más comunes en la programación de software para almacenar y procesar datos, gracias a sus innumerables aplicaciones. En este post veremos algunas características de los árboles y las implementaciones de algunos métodos y propiedades usando C#.
Es común encontrarnos con problemas que involucran conjuntos de elementos los cuales hay manejar como tales, o sea garantizando que no contengan elementos repetidos y que estén definidas las operaciones de union, interseccion y diferencia.
Aquí dejo un ejemplo de una clase que he nombrado ObjectSet que implementa estos servicios sobrecargando los operadores +, - y * para realizar las operaciones de unión, diferencia e intersección respectivamente.
C#, como la mayoría de los lenguajes modernos permite la sobrecarga de operadores, o sea la capacidad de redefinir operadores para una clase. No todos los operadores pueden ser sobrecargados, además existen restricciones relativas a cuando pueden ser sobrecargados ciertos operadores, como la definición de == y != que debe hacerse conjuntamente.
En programación un array (muchos lo llaman vector) es una zona de almacenamiento que contiene elementos de un mismo tipo (enteros, booleanos, fechas). En principio todos las arrays son de una dimensión, pero se pueden simular fácilmente arrays multidimensionales. Los más fáciles de "ver" o imaginar son los de dos (un tablero de ajedrez) y tres dimensiones (el cubo de Rugby).
En algunas ocasiones el sentido común puede ser una guía mas bien engañosa. Sobre todo cuando tratamos problemas simples en los cuales se ven envueltos, a veces sin que estemos completamente conscientes de ello, números grandes.
El principal motivo de este artículo, es que la mayor parte de los usuarios no saben como interactuar con el usuario a través de la consola (lo cual es comprensible), y no tienen una forma dinámica de probar sus códigos. Generalmente cuando nos enseñan a programar, parten de la parte de como crear métodos, la sintaxis del lenguaje, las estructuras de control (for, foreach, etc) y se pasan por alto la parte de como crear una aplicación, donde el usuario vea resultados a través de la consola.
Este artículo describe como insertar marcas de agua en documentos PDF.
El objetivo del programa es partiendo de un archivo existente, leer el documento y "estampar" una marca de agua en cada página. El resultado de este proceso se guardara en un nuevo documento.
Antes de dibujar líneas y formas, representar texto o mostrar y manipular imágenes con GDI+ es preciso crear un objeto Graphics. El objeto Graphics representa una superficie de dibujo de GDI+ y se usa para crear imágenes gráficas.
Independientemente de si como desarrollador realiza su labor en aplicaciones de escritorio o en aplicaciones y servicios Web para dispositivos incrustados de Microsoft Windows, en este artículo se compararán los lenguajes de programación C# y Java desde el punto de vista del desarrollador de una aplicación. En el documento, que puede descargar mediante el vínculo incluido en la parte superior de esta página, se analizarán concretamente las similitudes y diferencias, así como los fundamentos de la sintaxis del lenguaje. Se incluyen tablas de ejemplo con fragmentos de código y palabras clave comparadas, junto con un completo análisis de uso. Se asume que el lector posee conocimientos de C# y/o Java, aunque basta con conocer C++, ya que ambos lenguajes guardan similitud con este último y, a su vez, C++ se suele utilizar para la comparación. Para sacar el máximo partido de la información del documento, debe tener instalado Microsoft Visual Studio .NET y el complemento J#, ya que en el artículo se incluyen vínculos a sus páginas de ayuda en pantalla respectivas.
En esta entrada vamos a ver cómo trabajar fácil y eficientemente con ficheros Json en un programa con C# gracias a la librería Json.NET.
No hay duda que el formato Json se ha convertido en uno de los estándares para el intercambio de datos estructurados en entre servicios Web multiplataforma.
El formato Json presenta algunas ventajas frente a sus competidores (como xml), como un menor tamaño de archivo, ser más fácil de entender por una persona, o una generación y procesado más rápido.
Aunque habitualmente asociamos los ficheros Json con Javascript, los principales lenguajes de programación disponen de librerías para trabajar con ficheros Json de forma cómoda.
Por supuesto, C# no es una excepción. El framework .NET soporta Json de forma nativa desde la versión 4.0. Pero su uso es aún más sencillo y eficiente gracias a la popular librería Open Source Json.NET.

Presento un método de ordenación que ha dado muy buenos resultados y es considerado el método de ordenación más rápido que existe, de ahí viene su nombre tan sugerente: QuickSort.
Estos son algunos ejemplos para que vean que en la programación hay muchas formas de hacer las cosas, aunque siempre hay una que es la más eficiente, aunque casi nunca es muy evidente.
Veamos como invertir un string de tres formas distintas. Por ejemplo, si tenemos el string “puntopeek”, el método devolvería “keepotnup”.
Los punteros son una de las más potentes características de C, pero a la vez uno de sus mayores peligros. Ahora los punteros de C en C# no se suelen usar, puesto que tenemos varias estructuras dinámicas ya creadas como parte de las bibliotecas auxiliares que acompañan al lenguaje básico. Los punteros nos permiten acceder directamente a cualquier parte de la memoria creando estructuras dinámicas. Esto da a los programas C una gran potencia y a la vez una cantidad ilimitada de problemas, y por eso es inseguro usarlos.
Pero les voy a explicar de todas formas como usar los apuntadores en el lenguaje de la tecnología .NET como si estuviéramos aprendiendo C.
Para empezar vamos a diferenciar como se declaran las variables punteros y las variables normales a las que estamos acostumbrados.

Este documento trata de mostrar de forma breve y sencilla una introducción al mundo del C#, el lenguaje estrella de .NET que ha sido construido especialmente para adaptarse de manera natural al framework y aprovechar al máximo todas sus características. No trata de ser un manual de programación sino una pequeña aproximación, los que quieran ir más allá pueden consultar las referencias de la bibliografía.
En formato pdf de 27 páginas.
1. Introducción
2. Características de C#
3. Herramientas
4. Primer programa en C#: ¡Hello world!
5. Compilación
6. Plataforma MONO
7. Clases en C#
8. Creación de Objetos en C#
9. Herencia y métodos virtuales en C#
10. Polimorfismo en C#
11. Conclusión y Bibliografía
Tarjeta de referencia rápida pra C# y .Net. En formato pdf. Contiene 2 páginas.
Los lenguajes, como casi todo en este universo que tiende a la entropía, van evolucionando y ganando complejidad con el tiempo. Así nos encontramos con la paradoja de que cuanto más completa es la sintaxis, más ilegible se puede volver el código.
Por ejemplo, la máxima que decía “escribe la menor cantidad de código, que vaya lo más rápido posible”, tiene un orden de prioridad menor frente a paradigmas de programación más modernos como Clean Code o KISS.
Por ello ahora quiero compartir una técnica para facilitar la legibilidad de nuestros programas y que trata de la sobrecarga de los métodos.
Ejemplo de como acceder a bases de datos MySQL desde .NET.
Documento que explica como evitar que una aplicación se ejecuté en más de una ocasión.

El propósito de este tema es informar de los elementos del entorno de desarrollo Visual C# Express mientras creamos un programa en C# relativamente sencillo utilizando Windows Forms. Windows Forms proporciona a nuestro proyecto los componentes que integran una interfaz de usuario de una aplicación Windows estándar, incluyendo cuadros de diálogo, menús, botones y muchos otros controles.
Este ejemplo muestra cómo crear nuestra propia aplicación basada en el navegador Web, que podemos personalizar con accesos directos a nuestros sitios Web favoritos.
En muchas ocasiones hemos necesitado generar ficheros Excel. Al usuario le gusta Excel y por eso quiere que las aplicaciones le den la posibilidad de guardar sus datos como Excel.
¿Qué pasa si en alguna en un procesos de actualización de datos de una base de datos falla a la mitad? Lo normal en la mayoría de los casos es deshacer todo lo que se ha hecho y dejar la base de datos como estaba. Este proceso sería muy complicado hacerlo a mano, por no decir imposible. Para esto están las transacciones, que de una manera muy fácil nos ayudan a resolver este tipo de problemas.
Para todo aquel que no lo conozca, Mono es el proyecto de software libre impulsado por Novell que se dedica a la creación de herramientas orientadas a desarrollar software, bajo las directivas de los estándares ECMA, que rigen las especificaciones de parte de la plataforma .NET, creada por Microsoft. En el año 2000 Microsoft presenta su plataforma .NET, toda una revolución en cuanto a lo que había desarrollado la empresa de Redmond hasta la fecha, ya que a través de ella pretendía simplificar y cambiar para siempre la forma de desarrollar servicios web, así como de aplicaciones de escritorio. A largo plazo, Microsoft quería convertir la plataforma en el sustituto natural a la Windows API.
Esta es la versión para Visual Basic 2005 del código que publiqué el 14 de Noviembre de 2002 para crear un array de controles en .NET (con ejemplos para Visual Basic y Visual C#).
Las tareas asíncronas se hacen necesarias cuando las aplicaciones se quedan congeladas debido a acciones que no terminan y no dejan que el usuario siga utilizándolas, seguramente has visto el mensaje "La aplicación no responde...". Veamos como se resuelve este problema con una nueva característica del Framework 4.5.
Tutorial donde mostramos cómo descargar e instalar la nueva versión GRATUITA de Visual Studio .NET Community 2015. Explicamos paso a paso cómo desarrollar una primera aplicación Hola Mundo en Visual C# C Sharp .Net. Mostramos el inicio del desarrollo de una App para Android con Visual Studio .NET Community y Xamarin (de pago).
Cuando se está jugando con la API de Windows, especialmente con el tema de las ventanas esta función puede resultar de muchísima utilidad. Sin embargo no existe, así que hay que implementarla.
En resumen explicare los pasos necesarios para crear una función GetProcessWindowHandler, la cual devuelve un handler a la ventana principal de un proceso.
Las expresiones lambda de C# 3.0 tienen dos facetas diferentes de representación y utilización estrechamente relacionadas entre sí: como código y como datos (en forma de árboles de expresiones), estructuras de datos capaces de representar de una manera eficiente el algoritmo de evaluación de la expresión).
La inyección de dependencias o DI por sus siglas en inglés, es una herramienta comúnmente utilizada en varios patrones de diseño orientado a objetos, consiste en inyectar comportamientos a componentes.
En esta oportunidad estudiáremos código inseguro (unsafe code) y apuntadores (pointers).Veremos que a diferencia del código administrado (managed code), el código inseguro requiere de manipulaciones más avanzadas y técnicas (refiriéndonos al tratamiento de direcciones de memoria, liberación de recursos, etc.) y de mayor cuidado por parte del programador. Esta ocasión nos brinda el medio para comprender los fundamentales sobre la manipulación de punteros y sus ventajas a la hora de escribir aplicaciones que requieren inexorablemente un alto desempeño.
Explicamos paso a paso cómo crear un servicio Windows funcional y completo usando Microsoft Visual Studio .Net 2019, con el lenguaje C#.