JASoft.org

Problema: Campos calculados de un DataTable, la función IIF y division por cero

Problema: Campos calculados de un DataTable, la función IIF y division por cero
Este asunto es de los que te pueden tener una mañana entretinido como un bobo mientras intentas averiguar qué #%$# está pasando... Hoy estuve tocando una aplicación vieja escrita en .NET 1.1. El caso es que el programador había metido una campo calculado en un DataTable que incluía una división, así: tabla.Columns.Add( new DataColumn( "Rentabilidad", typeof(decimal), "Beneficio / Ingresos"); El problemilla es que algunos registros tienen los ingresos a cero, por lo que en cuanto creabas el campo se obtenía una divisón por cero, claro. Lo primero que se te ocurre hacer (parte de meterlo en la consulta de la base de datos, que es lo primero que este programador debería haber hecho) es lo siguiente: tabla.Columns.Add( new DataColumn( "Rentabilidad", typeof(decimal), "IIF(Ingresos = 0, 0, Beneficio / Ingresos)"); Es decir, que si los ingresos son diferentes a cero que haga la divisón, si no que no la haga. Vale, el problema es que simplemente esto no funciona y sigues obteniendo todo... [Más]

TRUCO RÁPIDO: intellisense transparente en Visual Studio 2008

TRUCO RÁPIDO: intellisense transparente en Visual Studio 2008
Nadie duda que Intellisense es una ayuda impresionante para todos los programadores. Yo, que tengo una memoria de pez, no sería capaz de programar sin esta característica :-) Sin embargo tiene un defecto que siempre me ha molestado: cuando estás programandoy aparece el Intellisense, muchas veces te puede tapar el código que hay debajo (o encima si estás muy al borde inferior) y a lo mejor necesitas consultarlo para ver cómo se llama una variable o algo: Bueno, pues con Visual Studio 2008, si nos pasa esto, lo único que tenemos que hacer es pulsar la tecla CTRL. Al hacerlo, mientras no la soltemos, la ventana de Intellisense se vuelve transparente en casi su totalidad: Con lo que problema resuelto. Estos tíos de del equipo de Visual Studio están en todo. :-) Espero que te resulte útil. JM.

Truco tonto para Internet Explorer 7: negrita en un editor

Truco tonto para Internet Explorer 7: negrita en un editor
A ver, esto es bastante Off-topic, pero creo que a alguno le puede resultar útil. Yo soy un asiduo usuario de la edición HTML usando Internet Explorer 7. De hecho este mismo texto lo estoy escribiendo con un editor embebido en este navegador, y muchas de las aplicaciones Web de Krasis utilizan uno de este tipo también. El caso es que cuando salió Internet Explorer le cambiaron las teclas rápidas para la edición de formatos. Antes de IE7 éstas coincidían con las de cualquier otro programa, como Word por ejemplo, y eran loclizadas al idioma del sistema operativo. Es decir, para pponer una negrita usabas CTRL+N, una cursiva CTRL+K, etc, etc... Con IE7 independientemente del idioma del sistema operativo esas teclas se convirtieron en (siempre) las del inglés. Es decir, para negrita es CTRL+B o para cursiva CTRL+I. Hasta aquí no demasiado problema. Yo estoy acostumbrado a ambos juegos de teclas rápidas porque mis dos sistemas están, uno en inglés y el otro en castellano. El problema es ... [Más]

Hotfix para desarrollo web con Visual Studio 2008

Hotfix para desarrollo web con Visual Studio 2008
El equipo de Visual Studio 2008 ha liberado hoy un parche para desarrolladores Web que solventa algunos problemas en el entorno de desarrollo. En concreto este parche resuelve lo siguiente (copiado y pegado de la página de Scott Guthrie): HTML Source view performance Source editor freezes for a few seconds when typing in a page with a custom control that has more than two levels of sub-properties. “View Code” right-click context menu command takes a long time to appear with web application projects. Visual Studio has very slow behavior when opening large HTML documents. Visual Studio has responsiveness issues when working with big HTML files with certain markup. The Tab/Shift-Tab (Indent/Un-indent) operation is slow with large HTML selections. Design view performance Slow typing in design view with certain page markup configurations. HTML editing Quotes are not inserted after Class or CssClass attribute even when the option is enabled. Visual Studio cra... [Más]

Microsoft ESP: simulación de juegos y aplicaciones hiperrealistas con datos geográficos

Microsoft ESP: simulación de juegos y aplicaciones hiperrealistas con datos geográficos
Estos días he tenido la oportunidad de conocer un nuevo producto de Microsoft que, francamente, no deja de sorprenderme. Se trata de Microsoft ESP, un entorno de simulación hiperrealista destinado a simuladores de vuelo, sistemas de entrenamiento y, por qué no, juegos. Antes de que nadie me lo pregunte: ESP no es un acrónimo, no significa nada y no tengo ni idea de porqué le han llamado así. Estas dos imágenes están sacadas del vídeo de demostración. Puede simular el mismo terreno con toda fidelidad en distintas estaciones del año u horas del día, ciudades enteras, prácticamente toda la información geográfica del mundo y más de 10.000 estrellas georeferenciadas. Se trata realmente del motor, los datos y las herramientas que forman el núcleo de Fligh Simulator, pero llevadas un paso más allá y orientadas incluso a sistemas militares (o sea, que la cosa va muy en serio). Se supone que los más de 200.000 complementos existentes en el mercado para Flight Simulator van a funcionar con... [Más]

Detectar si hay conectividad en el equipo (Métodos 4 y 5) (fin)

Detectar si hay conectividad en el equipo (Métodos 4 y 5) (fin)
Pues nada, ya toca acabar con esta miniserie de posts sobre lo de detección de conectividad. Los métodos cuatro y cinco realmente ya los he tratado en este blog en el pasado y es que ambos están relacionados con caracerísticas que aparecieron en la versión 2.0 de .NET, y los metí cuando estaba hablando de esas novedades hace mucho tiempo. El primero es el típico 'ping' a un servidor. Haciendo ping y detectando las respuestas al eco podremos saber claro está si hay o no conectividad (salvo que el cortafuegos nos impida recibir estos ecos de respuesta). El artículo en cuestión donde lo explicaba es del 7 de Julio de 2005 (ya voy viejo, jeje): Nuevo espacio de nombres NetworkInformation - Ejemplo de Ping. El segundo método de hoy también lo traté en Julio de 2005 (unos días después, el 16) y pasa por el uso de la clase NetworkInformation, que ya trae de serie muchas cosas interesantes, y no sólo para detectar la conectividad en primera instancia. El artículo completo está aquí: Cómo de... [Más]

Detectar si hay conectividad en el equipo (Método 3)

Detectar si hay conectividad en el equipo (Método 3)
Siguiendo con esta serie vamos a ver el tercer método para conseguir detectar conectividad. Este es un poco rebuscado, y para ser franco no se me ocurrió a mi ni tampoco recuerdo ahora mismo en dónde lo aprendí o quién me lo contó :-( Pero bueno, ahí va... Este pasa por comprobar si hay resolución DNS, y parte de la base (deduzco) de que el equipo local no es un servidor DNS, claro. Entonces lo que se hace es comprobar si se puede hacer la resolución de la IP del equipo actual, ya que si hay conectividad se puede consultar el servidor DNS. El código sería el siguiente:    public static bool IsConnected3     {         get         {             try             {             &nb... [Más]

Detectar si hay conectividad en el equipo (Método 2)

Detectar si hay conectividad en el equipo (Método 2)
En mi post anterior sobre este tema hablé de un primer método de detección basado en la APi de Windows. Hoy me toca hablar de otro similar, si bien usando una API completamente diferente. Los restantes métodos que veremos no necesitan ya el uso de la API. En esta ocasión usaremos la API del servicio de notificación de eventos del sistema, o sea, la System Event Notification Service (SENS) API. En concreto haremos uso de la función IsNetworkAlive, que se define así: [DllImport("sensapi.dll")]private static extern bool IsNetworkAlive(ref uint flags); Este método devuelve verdadero o falso en función de si hay o no conexión a la red. ¡Ojo!, a la red, no necesariamente a Internet, pero en muchas ocasiones lo que querremos es eso (si trabajamos sólo en una red local). Así, podemos definir nuestra propiedad IsConnected con esta función así: public static bool IsConnected2 {     get     {        &n... [Más]

Vídeo de campusMVP sobre las nuevas certificaciones de Visual Studio 2008

Vídeo de campusMVP sobre las nuevas certificaciones de Visual Studio 2008
Hola holita vecinitos: Es posible que, ante la inminente aparición en el mercado español de Visual Studio 2008, si estás pensando en obtener una certificación te encuentres en un mar de dudas respecto a qué es mejor hacer, cómo va a afectar la nueva versión de la plataforma en las certificaciones, y muchas otras cuestiones por el estilo. Con el comienzo del año muchos han sido los alumnos de campusMVP que nos han llamado o escrito preguntándonos cosas como estas, pero no había apenas información pública al respecto por parte de Microsoft. Por fin, el pasado jueves por la tarde tuvimos la oportunidad de participar en una conferencia con los responsables de estas certificaciones en Redmond. Al día siguiente yo mismo ofrecí en Madrid una explicación sobre todas estas novedades, la cual se grabó en directo y desde campusMVP la hemos puesto a disposición de todos en Internet. En este (creo que) completo vídeo explico el estado actual de las certificaciones para desarrollad... [Más]

Detectar si hay conectividad en el equipo (Método 1)

Detectar si hay conectividad en el equipo (Método 1)
Últimamente he estado trabajando bastante con la nueva API de Sincronización de Microsoft (Microsoft Sync Framework) que ahora mismo se encuentra en CTP (Community Technology Review), es decir, todavía no es la versión definitiva (pero casi). Esta plataforma te permite crear aplicaciones capaces de trabajar conectadas o desconectadas, y además sincronizar bases de datos, carpetas locales y remotas o información RSS se convierte en un trabajo sencillo. La API es bastante extensa y no voy a hablar de ella aquí (pronto leereis un artículo mío sobre el tema en DotNetMania). En lo que me quiero centrar es en el hecho de que, para trabajar desconectado, primero hay que saber qué realmente lo estamos ¿no? De hecho en la API no hay referencia alguna a esto, y muchos de los que la usen se preguntarán "vale, ya sé trabajar en local cuando no hayconexión y sé cómo sincronizarla con una remota (o con la de cualquier otro equipo en redes P2P también soportadas por la API) cuando recupere la conexi... [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