JASoft.org

Cómo impedir que una aplicación se ejecute más de una vez

Cómo impedir que una aplicación se ejecute más de una vez
La mejor manera de conseguir que sólo pueda existir una copia de una determinada aplicación ejecutándose en cada instante en un equipo es mediante el uso de Mutexes. Los Mutexes son objetos del sistema operativo pensados para sincronizar procesos y subprocesos. La siguiente función permite averiguar mediante el uso de un Mutex si la aplicación se está ejecutando o no: public bool EnEjecucion(){   Mutex miMutex = new Mutex(false, "NombreÚnicoDeMiAplicación");   return = !miMutex.WaitOne(0, false);} Su funcionamiento se basa en establecer un Mutex con un nombre único y dependiente de nuestra aplicación, y posteriormente en la segunda línea, solicitar su propiedad con la función WaitOne. Este método devuelve true si el proceso se ha apoderado con éxito de él y false si no es así. Dado que la primera instancia de la aplicación se apodera de él ya no está disponible para las siguientes hasta que ésta primera termine, por lo que las siguientes obtendrán un false al usar WaitOne. Sencil... [Más]

Una diferencia importante entre los Bucles 'for' en C# y VB.NET

Una diferencia importante entre los Bucles 'for' en C# y VB.NET
Consideremos el sigueinte bucle 'for' escrito en C#: int n = 10;   for (int i=0; i < n; i++)  {   Console.WriteLine(i.ToString());   n--;  } Muy sencillo. La pregunta es: dado que dentro del bucle modificamos el valor de la variable "límite" (n), ¿cuántas veces se ejecutará? ¿10 o 5? Parece una pregunta tonta pero no lo es tanto. Depende de cómo se haya implementado internamente el bucle en el compilador de C#. Es posible que se ejecute 10 veces si el bucle almacena el valor al principio y en cada vuelta compara con este valor incial (esto puede ser más eficiente en muchos casos). Por otra parte si se compara el valor real en cada vuelta en realidad el bucle se ejecutará sólo 5 veces. La respuesta a la pregunta es la siguiente: en C# el valor real se compara en cada vuelta por lo que el bucle se ejecutará sólo 5 veces. Si por el contrario consideramos el mismo bucle escrito en VB.NET (o, para el caso VB Clásico o VBScript): Dim n As Integer = 10  Dim i As Integer  For i = ... [Más]

Por fin reacciona Microsoft... Microsoft lanza una nueva versión de Internet Explorer

Por fin reacciona Microsoft... Microsoft lanza una nueva versión de Internet Explorer
Ya era hora. Desde luego que es lamentable que Internet Explorer esté en la situación de abandono que está aparentemente, así que es una gran noticia que se reactive por fin la guerra de los navegadores mientras todos los actores en juego respeten los estándares y se dediquen a mejorar el producto, la seguridad y la experiencia de usuario. Paso a reproducir la noticia según IBLNews: ----- Hemos decidido hacer una nueva versión del Internet Explorer, se denomina IE 7", dijo Gates durante la Conferencia sobre Seguridad de RSA que se está celebrando en San Francisco. El mayor fabricante de software del mundo no había indicado previamente si planeaba presentar una nueva versión del IE. Recientemente, sin embargo, la aplicación de Microsoft se ha enfrentado por primera vez en años a la competencia de Firefox, un programa web gratuito desarrollado por una red de programadores de software. La nueva versión de IE, que estará disponible para realizar las pruebas preliminares este verano, te... [Más]

Transferencia de información entre páginas llamadas en secuencia

Transferencia de información entre páginas llamadas en secuencia
Un problema que se plantea muchas veces a los programadores de ASP.NET y que, normalmente, les cuesta solucionar es el siguente: Disponemos de una página que realiza determinadas consultas a una base de datos o recopila un volumen relativamente grande de información en su código. Tras procesarla (o en un PostBack) debemos llamar a otra página ASPX que debe utilizar la misma información costosa de obtener. ¿Qué hacemos? Existen muchas posibles soluciones, sólo que la mayoría no nos sirven de mucho o presentan muchos problemas. Entre otras tenemos las siguientes, que seguramente serían las que intentaría un programador de ASP clásico: Hacemos que la segunda página vuelva a recuperar los mismos datos. En fin, no arreglamos nada así. Metemos la información en un campo oculto de un formulario y lo enviamos por POST a la siguiente página. Esto es aún peor. Tiene un costo alto de ancho de banda y velocidad de descarga, es muy propenso a errores y problemas de seguridad y no es adecuad... [Más]

Diferencias al usar Clases y Estructuras en matrices

Diferencias al usar Clases y Estructuras en matrices
No voy a entrar aquí a explicar las diferencias "de bulto" entre clases y estructuras en .NET. Todo programador de la plataforma debería conocerlas pues es lo primero que se aprende. Sin embargo sí me gustaría resaltar una cuestión simple consecuencia de sus diferencias y que a muchos les puede pasar inadvertida. Se trata del comportamiento obtenido al instanciar una matriz. Imaginemos que tenemos una sencilla estructura como esta: struct Usuario{   public string Nombre;   public string Apellidos;} Si creamos una matriz de estructuras de este tipo así: Usuario[] usuarios = new Usuario[10]; podremos inmediatamente asignar valores a cada elemento de la matriz, ya que la estrucutra al ser un tipo por valor está disponible para que la usemos: usuarios[0].Nombre = "Pepe"; //No fallará Sin embargo si cambiamos la definición de Usuario conviertiéndola en una clase: class Usuario{   public string Nombre;   public string Apellidos;} El código de asignación anterior fallará deb... [Más]

Kit de desarrollo gratuito para TabletPC

Kit de desarrollo gratuito para TabletPC
El SDK para TabletPC que proporciona Microsoft está muy bien y comenzar a desarrollar aplicaciones con él no es complicado. Sin embargo hay ciertas cosas que no son tan fáciles de hacer como debería ser. Por ejemplo, si tienes un TabletPC o has jugado con alguno conocerás y amarás la aplicación Journal (o si tienes Office pues entonces OneNote). Intenta meter toda la funcionalidad de Journal en una de tus aplicaciones. Te reto ;-) La cosa ya no es tan fácil ¿verdad? Pues para ponértelo liso y llano la empresa Agilix ofrece su producto InfiNotes para Visual Studio. Lo que hace es incluir unos espectaculares controles que sólo con arrastraR y soltar ofrecen todo tipo de impresionantes características para hacer aplicaciones para TabletPC. Hacer una réplica de Journal es casi inmediato. El producto tiene dos versiones, la Standard y la Professional. La Standard es gratuita y la puedes descargar desde su página inmediatamente. En realidad la paga Microsoft para facilitarte que crees ... [Más]

Microsoft llevará al cine "Halo"

Microsoft llevará al cine "Halo"
Al gigante de Redmond  no le llega con el mercado del software y de Internet que quiere también comerse el cinematográfico :-) Microsoft ha contratado al guionista Alex Garland ("La Playa", o "28 Días Después") para que adapta la historia a la gran pantalla. Finalizado este proceso, Microsoft ofrecería el texto (sin derecho a alteraciones) a alguno de los grandes estudios de Hollywood Entre los candidatos que suenan para dirigir la versión cinematográfica de Halo figura Ridley Scott tras el interés mostrado por los productores Ronald Shussett y Daniel Alter. El argumento del juego se sitúa en una cruenta guerra entre la raza humana y una especie de alianza alienígena conocida como El Pacto. Halo2 ha sido uno de los grandes superventas de la industria de los videojuegos durante la recien finalizada temporada navideña. Se situó justo por detrás de GTA San Andreas, ambos aparecidas exclusivamente en versiones para consolas. Microsoft consiguió el record de 2,4 millones de copias vendi... [Más]

Windows Scripting Host para .NET

Windows Scripting Host para .NET
No sé hasta que punto es conocido por los programadores (no así para los administradores de sistemas) esa pequeña joya del sistema operativo llamada Windows Scripting Host (WSH). WSH permite ejecutar directamente con un doble-click código escrito en un lenguaje de script tradicional (VBScript y JScript sobre todo) y llevar a cabo así multitud de tareas automatizadas, no relacionadas a la fuerza con la administración de sistemas. De hecho yo lo uso a menudo para probar código de todo tipo, hacer prototipos rápidos de algoritmos, automatizar muchas cosas (desde cargas de datos hasta procesamiento de directorios o cifrado de archivos pasando por monitorización de servidores). Es realmente útil porque permite el uso de cualquier objeto COM automatizable, lo cual incluye ADO o incluso aplicaciones como Excel o Word. Como también se pueden usar sus archivos (con extensión .vbs, .js o .wsh) en el administrador de tareas programadas sirve incluso para realizar tareas periódicas (mis copias de... [Más]

El blog directamente desde el móvil

El blog directamente desde el móvil
Nokia ha anunciado el lanzamiento de 'Nokia LifeBlog 1.5', un programa interactivo que permite montar un 'blog' en el móvil a partir de los mensajes, imágenes o vídeos que cada usuario almacena durante el día. Los espacios personales en la Red se han convertido en los protagonistas del último año, y la nueva tecnología de Nokia permite que sus usuarios puedan organizar contenidos dentro de su móvil como un 'blog' en la Red. Durante 2004, el fenómeno del 'weblog' se ha extendido y muchos internautas se han atrevido a convertirse en emisores de información en la Red con tan sólo tres sencillos pasos. Un informe publicado por la empresa Pew Internet of American Life Project en enero de este año aseguraba que el número de adeptos a los 'blog' en EEUU había aumentado un 58% durante 2004. El nuevo programa informático lanzado por la compañía finlandesa permite crear un diario personal móvil al habilitar un espacio para añadir anotaciones a los elementos que el usuario va guardando en su ... [Más]

Interesante descarga sobre mobilidad en Microsoft

Interesante descarga sobre mobilidad en Microsoft
Microsoft acaba de publicar la Small IT Solution for Mobility v1.0 (Beta). Se trata de una colección de documentos que ofrecen guía sobre planificación, distribución y operación de soluciones basadas en sistemas móviles (Microsoft Mobile 2003) en la empresa pequeña y mediana (PYME). habla también de cómo combinarlos con Exchange y SBS 2003. Se puede descargar gratuitamente desde aquí.

Este soy yo y este es mi blog técnico, dedicado al software y a la programación.

¡Sígueme en Twitter!

Mis otros blogs

- JM Alarcón @ campusMVP.es
Contenido técnico en español orientado a desarrolladores
- JMAlarcon.es
Blog personal no técnico: sociedad, innovación, empresa...

Krasis

- campusMVP.es:
Los mejores cursos online de programación en español

- SELF LMS:
La plataforma de elearning más potente del mercado.

Histórico