JASoft.org

AJAX con ASP.NET 2.0 (The "a pelo" series): Script Callbacks (I)

AJAX con ASP.NET 2.0 (The "a pelo" series): Script Callbacks (I)
Seguro que recuerdas que no hace mucho estuve haciendo en el blog una serie sobre AJAX (1, 2, 3, 4, 5, 6 y 7) "super-a-pelo", es decir, usando sólo JavaScipt y tu imaginación, nada de Atlas y compañía. La verdad es que tuvo bastante éxito y muchas visitas, referencias, trackbacks, etc... Viendo que el tema suscita interés voy a continuarlo un poco pero esta vez haciéndolo con una nueva característica que es nativa a ASP.NET 2.0 y que se denomina Script Callbacks. Esto facilita bastante el trabajo con AJAX respecto a hacerlo todo uno mismo, pero aún así sigue siendo más complicado que usar una biblioteca estilo AJAX.NET o la propia Atlas de Microsoft que ahora está en beta. Por este motivo y dado que sigue siendo una técnica algo rupestre denominaré a esta nueva serie como AJAX con .NET: The "a pelo" series ;-) Bueno, veamos primero un poquito de teoría y en los siguientes post pasaremos ya a la práctica de esta técnica nativa de .NET a la que podremos sacar bastante partido... [Más]

Excelente libro: SPAM

Excelente libro: SPAM
Estos días he estado leyendo un libro que, la verdad, me ha resultado de lo más interesante y por eso lo reseño aquí. Se trata de 'SPAM', ISBN:84-415-1864-5 de Anaya Multimedia y autor anónimo (firma como spammer-X). El libro habla con todo lujo de detalles y sin demasiados escrúpulos sobre el oscuro mundo del Spam y todo lo que lo rodea. Además está escrito de primera mano ya que su desconocido autor se reconoce como un experto spammer de toda la vida. Y la verdad es que es bastante verosimil ya que todo lo que cuenta se ajusta muy bien a la realidad y parece conocer perfectamente las técnicas existentes. Se trata de un libro que explica muy bien qué es el spam, cómo se hace para ser un spammer y cómo es la economía que hay debajo de ello. Pero sobre todo es muy útil para comprender lo que hay debajo y ayuda a luchar contra él. Hay explicaciones bastante "light" con otras cuestiones mucho más técnicas pero aún así comprensibles para todo el mundo. En un apéndice final explica como d... [Más]

Esta es muy buena: producto "milagroso" que usa sin problemas Oracle y SQL Sever

Esta es muy buena: producto "milagroso" que usa sin problemas Oracle y SQL Sever
¡Esta es buenísima! La acabo de leer en los foros de The daily WTF (no me puedo quedar de Rodríguez que me vuelvo más friki que de costumbre). Resulta que hay una empresa llamada Initech (no sé cual de las miles que aparecen en Google será porque no lo dicen) que tiene una serie de productos que trabajan sobre Oracle. La empresa sin embargo dice que soporta sin problemas SQL Server y que encima no tienes que hacer absolutamente nada para que el cambio funcione. Uno, que ya sabe de que va esto, se imagina que lo que hará será detectar que gestor estás usando y lanzar las consultas pertinentes según sean para uno u otro, aparte de que tengan una capa de abstracción del proveedor de datos, claro.. Pues no. Resulta que tienen algo llamado "Oracle Transparent Gateway for SQL Server" que independiza todo sin problemas. Lo que pasa es que tiene ciertos "problemillas": - Coste: Tienes que comprar el producto milgroso este que cuesta unos 15.000 dólares por cada servidor. Tie... [Más]

Acojonante: los pasaportes RFID de los EEUU pueden servir para explotar bombas

Acojonante: los pasaportes RFID de los EEUU pueden servir para explotar bombas
Leo en el Blog de George Ou que durante el pasado BlackHat 2006 (la mundialmente famosa y virguera conferencia de seguridad) la empresa Flexilis Inc demostró una protección inadecuada de los nuevos pasaportes basados en tecnología RFID propuestos por el gobierno de los EEUU pueden ser empleados para activar artefactos explosivos que encima sólo se activarían para ciudadanos de determinadas nacionalidades. El vídeo no tiene desperdicio: Tanta seguridad y tanta cosa y luego resulta que pasan cosas como esta. Los que legislan no saben mucho de tecnología generalmente...

Reproducir MP3, vídeo y otros tipos de archivos con .NET

Reproducir MP3, vídeo y otros tipos de archivos con .NET
En mis dos anteriores post comentaba la manera de reproducri archivos de sonido del sistema con .NET, tanto en la versión 1.x como en la 2.0. En el último un visitante preguntaba cómo podemos reproducir MP3 desde .NET. La solución más sencilla es la de toda la vida: recurrir a la API de MCI para hacerlo. MCI es el acrónimo de Media Control Interface. se trata de una API basada en comandos de texto que permite controlar los diferentes dispositivos multimedia de reproducción y grabación que hay en el sistema. Gracias a MCI podemos reproducir vídeo, audio, CDs, MIDI, etc.. . así como grabar desde micrófonos, cámaras y demás, todo ello de forma estándar e independiente del dispositivo real que haya detrás. La única función importante de MCI que nos interesa para nuestro ejemplo de reproducción de MP3 es 'mciSendString'. Ésta permite enviar comandos MCI para abrir dispositivos y operar con ellos. Para reproducir un archivo MP3 (o realmente cualquier otro) sólo necesitamos conocer dos co... [Más]

Reproducir sonidos del sistema en nuestra aplicación .NET 1.x

Reproducir sonidos del sistema en nuestra aplicación .NET 1.x
Este post surge a raíz del anterior en el que explicaba como reproducir sonidos en .NET 2.0 (viene muy facilito), ya que un asiduo lector de este blog ha preguntado cómo se harí en versiones anteriores. La respuesta a esta pregunta es: ¡usando la API de Windows!. Los que llevamos unos cuantos años programando con tecnologías Microsoft (los dinosaurios que usábamos ActiveX y estas cosas) estamos todos muy acostumbrados a usar la API de windows y no nos suena raro. En .NEt se sigue usando para algunas cosas, pero la verdad es que está todo tan mascado que pocas veces suele hacer falta. En este caso la función clave de la API MessageBeep. Esta función permite reproducir sonidos predefinidos del sistema con sólo pasarle su código numérico. Por tanto lo único que necesitamos para replicar la funcionalidad de la clase que viene con .NET 2.0 es declarar esta función y conocer las constantes. así que una clase similar a la anterior sería la siguiente (código completo): using System;u... [Más]

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

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!

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

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

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]

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