JASoft.org

El blog de José Manuel Alarcón Aguín. Programación web y mucho más...

MENÚ - JASoft: JM Alarcón

Cómo procesar correctamente en .NET fechas de un AS/400

Esto es bastante básico, pero a los usuarios más noveles puede que le resulte complicado y precisamente llegué a ello a raíz de la pregunta de un alumno hace poco… El caso es que los sistemas AS/400 suelen devolver los campos de fecha en un formato similar a este: 20110422, que es tal y como esta almacenado en la base de datos tipo texto. Es decir, el formato es YYYMMDD. ¿Cómo las conviertes en fechas de pleno derecho en .NET? Si es un campo de texto y siempre tiene este mismo formato exactamente (es decir, cuatro cifras para el año, 2 para el mes y 2 para el día) es muy fácil convertirlo en una fecha usando el método ParseExact de la clase DateTime: DateTime.ParseExact("20110422", "yyyyMMdd", CultureInfo.InvariantCulture) Simplemente le indicas la fecha, el formato como segundo parámetro (en este caso cuatro cifras para el año, dos para el mes (ojo, el mes es una M mayúscula, la minúscula son minutos) y dos para el día del mes) y listo. También podrías ha... [Más]

Cómo poner un tono de teléfono propio en Windows Phone 7.5 "Mango"

La nueva versión de Windows Phone 7, la 7.5 que es conocida como "Mango", tiene por fin una capacidad muy trivial pero que hasta ahora no era posible: la posibilidad de usar un archivo de sonido propio como todo del timbre del teléfono. En la versión original de WP esto no era posible. Sin embargo en Mango tampoco existe una forma muy intuitiva de conseguirlo, aunque sí es muy fácil. En el MarketPlace existen diversas aplicaciones que contienen tonos de audio que podemos elegir para incorporar al teléfono, ya que ahora conseguir eso mediante programación es realmente fácil. Pero ¿qué pasa si queremos usar nuestro propio sonido e incorporarlo sin complicarnos la vida?. Es muy sencillo conseguirlo usando Zune, aunque hay que saber el "truco". Condiciones Los sonidos de tono de llamada para el teléfono deben cumplir la siguientes condiciones: Formatos admitidos: MP3 y WMA, sin protección (DRM). Menores de 1 MB de tamaño Máximo 39 segundos de duración ... [Más]

Cómo detectar un cambio de sesión o que el usuario bloquea la sesión en Windows

En ocasiones resulta muy útil detectar desde tu aplicación Windows el hecho de que el usuario actual se esté conectando o desconectando a la sesión actual, o simplemente que se haya bloqueado el escritorio. Por ejemplo, si el usuario tiene el escritorio bloqueado es una tontería mostrarle mensajes o globos de notificación ya que no va a haber nadie para verlos ¿no? ¿Cómo podemos detectar estas circunstancias? La API de .NET dispone de un espacio de nombres especial llamado Microsoft.Win32 que contiene clases que encapsulan funcionalidad atada al sistema operativo Windows. Dentro de este espacio de nombres existe una clase llamada SystemEvents que ofrece multitud de eventos estáticos que nos permiten responder a diversas cuestiones que ocurren en el sistema operativo: cambio de los ajustes de pantalla, agregar o quitar fuentes, que el equipo se está apagando o suspendiendo, cambios de preferencia de usuario, cambio de la hora del sistema, etc... Es realmente útil, y utiliza por debajo... [Más]

Recibir resultados de una página en otra: Transferencias y Cross-page posting

Hay ocasiones en las que tenemos una página muy poblada de controles que se deben mostrar en pasos sucesivos. Desde una simple recogida de datos que se haya complicado un poco, hasta varios pasos de un asistente, por ejemplo. Existen muchas maneras de solucionar esta situación y hacer que las páginas estén un poco más despejadas. Por ejemplo, podemos usar un control Wizard nativo de ASP.NET Web Forms. Sin embargo una forma mucho más natural de conseguirlo es recibir los resultados de la primera página en una nueva que los procesa y continúa el flujo de la aplicación. De hecho, en los paradigmas de programación convencionales (o sea, en todo lo que no sea Web Forms, incluyendo ASP.NET MVC pero también PHP, etc...) realmente es como se ha hecho siempre: unas páginas pasan datos a otras para procesarlos. Transferencia en el lado del servidor En ASP.NET disponemos de la instrucción Server.Transfer que nos permite derivar la ejecución actual de una página hacia otra, como si se ejecutase... [Más]