JASoft.org

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

MENÚ - JASoft: JM Alarcón

Reproducir sonidos del sistema en nuestra aplicación .NET 2.0

Este es un truco rápido para la tarde del sábado (estoy un poco vago), pero que seguro que a más de uno le resulta útil... ¿Te gustaría que, por ejemplo, cuando muestres un cuadro de mensaje se oiga el sonido del sistema adecuado a la situación?. Por ejemplo, lanzas un mensaje de error y que suene el sonido que el usuario tenga configurado para los errores. En .NET 2.0 es algo realmente fácil gracias a la nueva clase SystemSounds del espacio de nombres System.Media. Podemos escribir: System.Media.SystemSounds.Asterisk.Play();MessageBox.Show("Error en la aplicación", "Se ha producido un error xxxxx, blah, blah", MessageBoxButtons.OK, MessageBoxIcon.Error); la primera línea hace que suene el sonido predeterminado de atención, consiguiendo un diálogo aún más realista. Los sonidos disponibles con esta clase son los siguientes: Asterisk, Beep, Exclamation, Hand y Question.

Off-topic: ¡Ya soy MCT!

Pues eso, una tontería, pero como veo que compañero en campusMVP y buen amigo Rodrigo Corral también lo ha puesto y lo hemos sacado juntos, pues yo no voy a ser menos ;-) MCT significa Microsoft Certified Trainer, es decir, profesor certificado de Microsoft. Mis competencias como profesor certificado son todas las relacionadas con las aplicaciones Web con ASP.NET 2.0 y anteriores, así como formación en los fundamentos y técnicas avanzadas de la plataforma .NET 2.0 y anteriores. Rodrigo además tiene las competencias para formar en desarrollo para Windows. Para ello hay que sacarse una certificación completa de Microsoft antes de hacerse MCT propiamente dicho. En mi caso soy MCTS (Microsoft Certified Technology Specialist) en la plataforma .NET 2.0 así como MCPD (Microsoft Certified Professional Developer) en aplicaciones Web con ASP.NET 2.0. Estas dos son nuevas titulaciones de Microsoft y tanto Rodrigo como yo somos de los primeros en obtenerlas (de hecho Rodirgo las saco inclus... [Más]

Creación de un control botón ASP.NET para regreso automático

Una cuestión común en todas las aplicaciones Web es hacer que la navegación sea lo más sencilla posible para nuestros usuarios. Una situación muy habitual es la de reutilizar una página para varios propósitos de modo que a ésta se puede llegar por diversos sitios. Si colocamos un botón de "Cancelar" o "Volver" es frecuente que tengamos que escribir bastante código para asegurarnos que devolvemos al usuario al lugar del que vino teniendo en cuenta los diferentes "postbacks" producidos por los controles de la página. El siguiente control permite aislarnos de este tipo de cosas haciendo por debajo él todo el trabajo. Añade un nuevo control de usuario y llámale "Volver.ascx". Sobre su superficie coloca simplemente un botón con el nombre cmdVolver y asígnale el texto "Volver". En el archivo de código escribe lo siguiente (en C#, en VB sería más o menos igual): using System;using System.Data;using System.Configuration;using System.Collections;using System.Web;using System.Web.Security;usi... [Más]

Excepción con 'ARITHABORT' al insertar datos en una base de datos SQL Server

Este error me pasó el otro día en una aplicación que estoy desarrollando para una empresa de logística y me pareció lo suficientemente interesante como para reseñarlo aquí. El caso es que tienes un código de actualización INSERT normal y corriente de acceso a datos, escrito directamente con código ADO.NET, a través de un procedimiento almacenado o incluso mediante el uso de un TableAdapter de un DataSet tipado (por debajo es ADO.NET normal). Cuando vas a actualziar cualquier registro, de repente, te salta el siguiente error: INSERT failed because the following SET options have incorrect settings: 'ARITHABORT' Bueno. Esta excepción es el resultado resultado directo de una particularidad de SQL Server. El caso es que si tenemos una tabla que está referenciada dentro de cualquier vista de la base de datos que sea una vista indexada, no es posible introducir nuevos registros en la tabla de la manera normal y directa. Lo típico que pasa (y de hecho fué lo que me pasó a mi): Creas va... [Más]

Otro bug de .NET que he descubierto: valores calculados en DataSet tipados.

Este bug lo he descubierto hace poco y lo puse en su día en la página de Connect de Microsoft. El caso es que hasta la fecha nadie ha dicho "esta boca es mía", pero para mi se trata de un error claro. A continuación describo la situación así como la forma de salvarla con el menor esfuerzo...: Una aplicación Web (imagino que en una Windows pasaría lo mismo, pero no lo he comprobado). Creas un DataSet tipado con su correspondiente TableAdapter para realizar el acceso a datos. A los campos devueltos le añades manualmente uno nuevo (o varios) que serán campos calculados a partir de los otros (por ejemplo, asignándole una expresión del tipo "Apellidos + ',' + Nombre"). Ahora pruebas el TableAdapter con la opción de vista previa y verás que, en efecto, todo va bien y la nueva columna muestra el valor calculado que se supone que debería tener. De acuerdo... Ahora escribes código en tu aplicación que instancia el TableAdapter y llama a la versión 'Get' del método de acceso a datos (como sab... [Más]

Comportamiento extraño con el formato de fechas en los GridView

Cuando estamos usando un GridView para mostrar datos obtenidos de una base de datos resulta muy cómodo usar el editor de columnas para definir cómo se deben mostrar los datos en el listado que se genera. Una propiedad muy interesante de las columnas enlazadas en DataFormatString, que nos permite decidir qué estilo queremos aplicar a las columnas. Sin embargo con los campos que contienen fechas pasa unacosa muy rara... Si tenemos un campo que es una Fecha y definimos una columna enlazada de modo similar a este: <asp:BoundField DataField="FechaFin" DataFormatString="{0:d}" HeaderText="Final"> esperaremos ver algo similar a lo siguiente en la columna: 13/7/2006. Sin embargo por más que cambiemos el formato veremos algo como esto: 13/7/2006 00:00:00 Es decir, no hace caso y mete el formato de fecha y hora cortas. Si queremos que una columna de tipo fecha haga caso al formato tenemos dos soluciones: 1.- Convertirla en una plantilla. Con esto funcionará sin problemas ... [Más]

EyeOS: Sistema operativo Web

Leo en el Blog de Carlos Fouz de la existencia de este proyecto originado y soportado fundamentalmente en España (en Barcelona) sobre un "Sistema Operativo" Web. Se trata de una aplicación Web 2.0 escrita en PHP 4 que va un poco más allá de Netvibes o Windows Live para simular el modo de uso y ciertas utilidades típicas de un sistema operativo. Ofrece un escritorio y diversas aplicaciones a través de un lanzador que podemos utilizar desde cualquier navegador. Tiene un editor de textos, una calculadora, anotaciones, agenda, calendario, juegos, etc... Incluso cosas tan peregrinas como ¡un navegador Web!. Cuando lo vi la verdad es que me hizo mucha gracia: un navegador simulado dentro de otro navegador... NO me digas que no tiene coña ;-) En fin, el caso es que es gratuito y merece la pena echarle un vistazo.   Ahora va bastante lento y tiene algunos fallos pero todavía es una beta. Aún así pruébalo... Por otro lado se puede descargar el código fuente y un instalador para mont... [Más]

Ya soy persona: ya vuelvo a tener Internet :-)

Los que seguís este Blog asiduamente habréis notado que durante el último mes apenas he publicado nada. El motivo es que he estado "castigado" sin conexión en casa, y desde la oficina no suelo tener tiempo para pensar siquiera en publicar algo aquí :-( La historia de todos modos es rocambolesca y además me apetece contarla para que no pille a otros por sorpresa... Mi proveedor de acceso en casa es Wanadoo. El caso es que empecé a trabajar con ellos hace tiempo con un ADSL de 512 Kbps que para el momento estaban muy bien. Poco después movieron su oferta de velocidad a 2 Mbps, lo cual me llenó de alegría porque tenía el cuádrupe de velocidad por el mismo precio. El cambio se hizo sin problemas y de forma automática. Además la línea iba muy bien (a 1,6 o 1,8 Mbps normalmente). El caso es que hace un mes vi que por el mismo precio ahora ofrecían 20 Mbps y me dije que sería estupendo aumentar la velocidad. Como de este tipo de compañías no me fío ni un pelo (bueno, mejor dicho, no m... [Más]