Menú de navegaciónMenú
Categorías

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

750 artículos publicados

Java: ¿Por qué no me funciona la comparación de cadenas? Literales, clases y el repositorio de cadenas

Una pregunta habitual de los que comienzan con Java (e incluso en entrevistas de trabajo para puestos que usan este lenguaje) tiene que ver con las comparaciones entre cadenas de texto. Si vienes de otros lenguajes puedes estar acostumbrado a comparar cadenas con el operador igualdad == o, simplemente, te puede parecer la forma más evidente y obvia de hacerlo. En Java, no lo es, y si la usas te llevarás alguna que otra sorpresa. Vamos a ver el porqué y cómo funciona todo esto por dentro. [Más]

Lenguaje C#: interfaces y qué diferencia existe entre implementarlas explícita o implícitamente

Las interfaces son una abstracción estupenda que nos ofrecen la mayor parte de los lenguajes de programación orientados a objetos. Básicamente nos permiten definir un "contrato" sobre el que podemos estar seguros de que, las clases que las implementen, lo van a cumplir. En este artículo vamos a repasarlas en C# y vamos a ver la diferencia que existe entre las dos maneras de implementarlas en una clase en este lenguaje. [Más]

Novedades de ASP.NET Core 3.0

Microsoft acaba de presentar, en el marco del evento .NET Conf 2019, la nueva versión de .NET Core y el conjunto de tecnologías y frameworks relacionados. Si bien para ASP.NET Core no se trata de una versión especialmente revolucionaria, sí que viene acompañada de algunos breaking changes y novedades que vale la pena comentar. A continuación veremos los principales cambios introducidos con esta versión. [Más]

C# y .NET: Tuplas y cómo devolver más de un objeto como retorno de una función

A lo largo de la vida de un programador, a veces se encuentra con dilemas de diseño a la hora de escribir el código. Sin ir más lejos, seguramente alguna vez te has hecho la pregunta con la que titula este artículo. Y es que, en ocasiones, no llega con devolver un único valor como resultado de la llamada a una función. En estos casos lo tradicional es usar parámetros por referencia o de tipo out, o bien devolver clases o estructuras propias. Pero esto no siempre es lo más adecuado. En este artículo te contamos cómo funcionan las tuplas y cómo te ayudan a resolver con elegancia estos casos. [Más]

Introducción rápida a LINQ con C#: manejar información en memoria nunca fue tan sencillo

Como programadores, es muy habitual tener que trabajar sobre colecciones de datos por un motivo u otro, seleccionar datos, agruparlos, sumarlos... Y no sólo colecciones en memoria: bases de datos, archivos en disco, datos en XML o en Excel... Una manera muy socorrida de trabajar con este tipo de datos es recorrer la colección. Sin embargo, hay una manera mucho mejor y con una potencia enorme que te va a facilitar la vida mucho: LINQ. En este artículo te presentamos la tecnología y su uso básico. [Más]

Paquetes en Java: qué son, para qué se utilizan, y cómo se usan (con vídeo)

Los paquetes son el mecanismo que usa Java para facilitar la modularidad del código. Un paquete puede contener una o más definiciones de interfaces y clases, distribuyéndose habitualmente como un archivo. Para utilizar los elementos de un paquete es necesario importar este en el módulo de código en curso, usando para ello la sentencia import. En este artículo+vídeo vamos a ver qué son, cómo funcionan y cómo se utilizan. [Más]

¿Qué diferencia existe entre const y readonly en el lenguaje C#? - Más de la que crees...

Una pregunta típica que hace la gente al empezar con .NET es la que da título a este artículo. Seguro que si ya tienes experiencia con C# te sabes la respuesta habitual. Pero, más allá de las diferencias básicas estándar, que también se explican aquí, existe una diferencia enorme, mucho menos evidente, que ni siquiera muchos programadores experimentados conocen. Sigue leyendo... [Más]

async y await en C#: cómo manejar asincronismo en .Net de manera fácil

Una de las cosas que más te pueden frustrar cuando empiezas en el mundo de la programación es ver que, cuando a base de mucho esfuerzo has conseguido que tu programa funcione, el resultado es que funciona... pero se bloquea la interfaz, no escala bien, etc. Has oído o leído algo sobre "hilos de ejecución" y te decides a probarlos, pero ves que tienes que manejarlos, que sincronizarlos, preguntarles qué tal están de vez en cuando... Un trabajo tedioso y que muchas veces no es necesario porque existe una herramienta para ello. Este es el caso del asincronismo que conocemos hoy en día. Desde hace ya mucho tiempo (desde la versión 5.0 de C#) tenemos a nuestra disposición 2 palabras clave que nos permiten manejar estas situaciones multi-hilo con una lógica y una sintaxis verdaderamente asíncrona. Vamos a verlo... [Más]

Cómo crear operadores personalizados para clases propias en C#

En cualquier aplicación .NET lo más normal es tener que crear clases propias para representar entidades y trabajar con ellas. Aunque .NET de serie ofrece muchos operadores (suma, resta... comparaciones, etc...) que funcionan con los tipos por defecto, con nuestros propios tipos no funcionan por defecto. En este artículo vamos a descubrir cómo podemos crear versiones de cualquier operador que permitan trabajar con nuestras propias clases. [Más]