All posts by jmalarcon
Men? de navegaci?nMen?
Categorías

La mejor forma de Aprender Programación online y en español www.campusmvp.es

¿Qué son los filtros de excepciones en el lenguaje C#?

Los filtros de excepciones son una característica de la gestión de errores de .NET que han estado disponibles en el framework desde siempre. Los programadores de VB.NET han tenido acceso a ellos también desde el origen de los tiempos, pero los "sufridos" programadores de C# se tenían que conformar con simularlos de manera chapucera. No fue hasta la aparición de C# 6.0, allá por el verano de 2015, que los programadores de C# le pudieron sacar partido a esta útil característica por primera vez. Un filtro de excepciones lo que nos permite es establecer una cláusula catch específica no solo para un tipo de excepción concreta, sino también filtrando la excepción según algunas condiciones adicionales sobre la misma. En este artículo vamos a aprender a usarlos mediante un ejemplo concreto. [Más]

GAMBADAS: Agricultores hackeando sus tractores con firmware ucraniano ¿qué podría salir mal?

Es indudable que el mundo se mueve hacia los servicios de suscripción. Y ni siquiera los sectores más tradicionales se escapan de esta tendencia. Lo cual no quiere decir que siempre vaya a ser buena para todos los implicados. Y sino que se lo pregunten a los dueños de tractores John Deere en el EEUU profundo.... En este artículo te contamos qué les está ocurriendo, cómo lo están solucionando utilizando para ello métodos poco seguros y qué implicaciones tiene esto en la vida de todos los consumidores, también aquí en Europa. [Más]

FRIKADAS: Ofuscación extrema de código JavaScript con JSFuck

Hace unos meses os hablábamos aquí mismo de los lenguajes esotéricos. Estos lenguajes se caracterizan por ser súper-crípticos, es decir, incluso teniendo el código delante es casi imposible saber qué hacen. Uno de los más famosos es BrainFuck, que se caracteriza por utilizar tan solo unos pocos símbolos como el mayor (>), menor (<) la suma (+), etc... Inspirándose en BrainFuck, el programador alemán Martin Kleppe ha creado el lenguaje JSFuck. Aquí te explicamos en qué consiste y cómo funciona por debajo. Una frikada antológica... [Más]

¿Cuál es la diferencia entre final, finalize y finally en Java? (y sus equivalentes en C#)

Aunque estas palabras clave no tienen nada que ver entre sí, dado que se parecen mucho, a veces puede resultar complicado para los principiantes saber para qué sirve cada una. Para evitar que esto te ocurra y que puedas tener estar referencia a mano por si la necesitas, a continuación te hacemos un resumen de su utilidad con un ejemplo de uso de cada una... [Más]

VÍDEO: Cómo exportar una base de datos SQL Server a un script (incluyendo los datos)

Existen muchas maneras de poder enviar una base de datos de un servidor SQLServer a otro. Puedes hacer un backup, puedes desvincular la base de datos y copiar los archivos .mdf y .log para copiarlos y transportarlos hasta el otro servidor... Pero una de las maneras más sencillas y universales es generar un script de T-SQL que reconstruya la base de datos en cualquier lado. Esto te permite copiar la información en un formato manejable (al fin y al cabo es solo texto), poder retocar cualquier cosa si lo necesitas, y no da problemas por diferencias en el almacenamiento binario entre una versión y otra de SQL Server... [Más]

Boxing y UnBoxing de variables ¿Qué significa?

Un efecto importante a tener en cuenta a la hora de usar los tipos por valor, es el conocido como Boxing. Éste consiste en que el compilador se ve forzado a convertir un tipo por valor en un tipo por referencia, y por tanto a almacenarlo en el montón en lugar de en la pila.
Esto tiene importantes consecuencias en el rendimiento y en el consumo y gestión de memoria. Vamos a estudiar en qué consiste este efecto y cuáles son estos efectos. [Más]

Qué son los tipos por valor y por referencia en .NET y C#

Este es un concepto clave para programar y al mismo tiempo uno de los que más le cuesta entender a los principiantes, así que vamos a intentar explicarlo lo mejor posible a continuación. Antes de empezar, necesitamos comprender dos conceptos importantes que paso a resumir de manera sencilla: La pila o “stack”: es una zona de memoria reservada para almacenar información de uso inmediato por parte del hilo de ejecución actual del programa. Por ejemplo, cuando se llama a una función se reserva un bloque en la parte superior de esta zona de memoria (de la pila) para almacenar los parámetros y demás variables de ámbito local. Cuando se llama a la siguiente función este espacio se “libera” (en el sentido de que ya no queda reservado) y puede ser utilizado por la nueva función. Es por esto que si hacemos demasiadas llamadas anidadas a funcione... [Más]

Ghost Browser: múltiples sesiones con un solo navegador

Una de las cuestiones de los navegadores modernos que más me molesta es que conservan las sesiones entre todas sus instancias. Es decir, si abres un navegador y entras con unas credenciales en un determinado servicio de la Web pero al mismo tiempo quieres entrar desde otra pestaña o ventana al mismo servicio con otras credenciales diferentes, tendrías muy pocas opciones. Con GhostBrowser esto se acabó... [Más]

GAMBADAS: Los tres principales pecados al gestionar errores y excepciones

La gestión de excepciones es una de las cosas más comunes y sencillas que realiza cualquier desarrollador. Se trata de prever y gestionar los posibles problemas que puedan surgir durante la ejecución de nuestro programa, de modo que sea más robusto al saber "reaccionar" de la manera adecuada. Incluso cuando se producen excepciones que no habíamos tenido en cuenta hay que tener un "Plan B" para gestionarlas y evitar que la aplicación rompa. Pero ni siquiera en este caso es admisible el primero de los errores típicos que vamos a comentar a continuación... [Más]

Cómo leer y escribir archivos de texto con .NET

Uno de los objetivos de cualquier plataforma de programación es ofrecer servicios de bajo nivel para tareas comunes que cualquier programador pueda necesitar. Es decir, nos evita "reinventar la rueda" todo el tiempo, proporcionándonos cientos de tareas y utilidades ya hechas. Gracias a ello, tareas como la que nos ocupan (y otras muchísimo más complejas) son extremadamente fáciles. En este caso, para leer y escribir archivos de texto a disco podemos utilizar las clases StreamReader y StreamWriter respectivamente. Vamos a verlo... [Más]