Menú de navegaciónMenú
Categorías

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

924 artículos publicados

TRUCO: Cómo averiguar si una ventana ha sido cerrada por el usuario

Las ventanas de Windows (formularios Windows Forms) se pueden cerrar, bien por parte del usuario, o bien mediante programa con el método Close(). Pero ¿cómo distinguir ambos casos? En Visual Basic "clásico" era muy fácil hacerlo dentro del evento QueryUnload gracias al parámetro UnloadMode. Sin embargo en .NET no es tan sencillo averiguarlo. Aunque no es tan flexible como el evento QueryUnload mencionado, la solución que se expone a continuación soluciona el problema. Se trata de subclasificar el procedimiento de la ventana y verificar que el mensaje que se está produciendo es WM_SYSCOMMAND con el parámetro SC_CLOSE, ... [Más]

TRUCO: Cómo determinar el tamaño de las Bases de Datos de Contenido de SharePoint con PowerShell

Una de las tareas habituales de administración de un ambiente de SharePoint es la de tener un cierto control de los tamaños de las bases de datos de contenido disponibles en la granja. Aunque hay varias posibilidades para obtener esa información, mi recomendación pasa por aprovechar las ventajas que PowerShell nos aporta en las tareas de administración de despliegues SharePoint para obtener de forma rápida y sencilla el espacio ocupado por todas las bases de datos de contenidos disponibles. Para crear y ejecutar el script es recomendable hacer uso de ISE (Integrated Shell Script Environment) disponible en Windows Server (Versiones 2008 a 2012 R2) y... [Más]

Detectar la existencia de una instancia previa de nuestra aplicación

En Visual Basic "clásico" existía una propiedad del objeto App llamada PrevInstance que permitía averiguar de manera sencilla si ya se estaba ejecutando la aplicación actual, de forma que era inmediato evitar que se ejecutase dos veces el mismo programa. En .NET no existe nada similar pero es muy fácil simularlo gracias a la clase Process del espacio de nombres System.Diagnostics. El siguiente código permite conseguirlo: private static bool PrevInstance(){      Process[] procesos = Process.GetProcessesByName(Process.GetCurrentProcess().ProcessName);      return (procesos.Length > 1);} Lo que h... [Más]

TRUCO: Cómo obtener los nombres de una enumeración

En muchos programas se suelen dar a los usuarios una serie de opciones para que escoja. Por ejemplo un tipo de búsqueda a realizar, un rango de posibles valores para parametrizar algún comportamiento, etc... Lo más habitual es que estas opciones se "mapeen" después a elementos de una enumeración en el código de la capa de negocio. De esta forma si definimos una similar a esta: public enum EstadoCivil{  Casado,  Soltero,  Divorciado,  Viudo,  Religioso,} lo más común será que en la interfaz de usuario exista un modo de seleccionar algún valor equivalente, por ejemplo a través de una li... [Más]

FAQ: Al pasar al servidor de producción me deja de funcionar la seguridad y me da un error ¿por qué?

Una pregunta frecuente que recibimos tanto en los cursos de campusMVP como en eventos es la de:

"¿Por qué cuando paso mi aplicación a producción de repente me deja de funcionar todo lo que tiene que ver con Membership, Roles, etc...? De hecho obtengo un error de que no se puede conectar a la base de datos..."

El problema que tienes con la base de datos es que, por defecto, el proveedor de SQL Server que viene con ASP.NET parte de la base (equivocada generalmente) de que vas a usar SQL Server Express Edition. Esta base de datos tiene la particularidad de que... [Más]

TRUCO: Validación de direcciones IP desde código .NET

Para validar una dirección IP (del estilo xxx.xxx.xxx.xxx) introducida por un usuario, disponemos de multitud de opciones; desde analizar la cadena separándola por los puntos hasta utilizar expresiones regulares. Sin embargo en .NET hay una forma más fácil de conseguir lo mismo sin complicarnos tanto la vida, y es el utilizar la clase IPAddress del espacio de nombres System.Net. Ésta posee un método Parse que, aunque su objetivo es obtener una instancia de la clase a partir de una cadena que represente una IP, la podemos utilizar indirectamente para validar este tipo de cadenas. De este modo, una función que nos permite validar una IP conten... [Más]

TRUCO: Bibliotecas para detección de caras en fotografías

Seguro que si has usado Facebook u otras redes sociales te has fijado en cómo se detectan de manera automática las caras en las fotografías, para que podamos “tagear” a los que aparecen en ellas. Hacer detección de caras en una fotografía arbitraria es algo bastante más complicado de lo que parece. Seguro que conseguirlo desde cero es un estupendo proyecto para un reto personal en los fines de semana. Pero si tenemos que implementarlo en una aplicación real en el trabajo y de manera confiable, será mucho mejor encontrar una solución más rápida. Existen varias soluciones comerciales y Open Source enfoca... [Más]