JASoft.org

Usar un ObjectDataSource con un DataSet tipado en ASP.NET 2.0

Usar un ObjectDataSource con un DataSet tipado en ASP.NET 2.0
El objeto ObjectDataSource que viene con ASP.NET 2.0 es estupendo ya que permite usarlo como origen de datos para enlazar rejillas y otros controles (como DetailsView por ejemplo) con objetos de negocio. Esto va muy bien, por ejemplo, para enlazarlo con servicios Web ubicados en otras máquinas o con componentes de la capa de negocio que encapsulan las validaciones y verificaciones de seguridad aislándonos de la capa de datos (al interesado en estos temas le recomiendo el curso "Desarrollo de aplicaciones de datos en N-Capas con .NET 1.x y 2.0" de campusMVP). Por otro lado tenemos la potencia del nuevo modelo de TableAdapters que va unido a los nuevos DataSet tipados que se crean visualmente en Visual Studio 2005. Estos enlazan los DataSet tipados con el propio acceso a datos y, en la práctica, constituyen por si mismos una verdadera capa de datos, sin necesidad de escribirla nosotros como pasaba en versiones anteriores del entorno. La verdad es que son muy potentes y encima independ... [Más]

Añadiendo parámetros a consultas desde ADO.NET 2.0 y porqué desaparecerá en el futuro el método clásico

Añadiendo parámetros a consultas desde ADO.NET 2.0 y porqué desaparecerá en el futuro el método clásico
Este tema me lo ha recordado hoy por la mañana un alumno de mi curso de "Técnicas de escritura de código seguro" de campusMVP. Me parece muy interesante comentarlo aquí y de paso contestarle a él el porqué de que ocurra... (Gracias por recordármelo, Iván). Resulta que en ADO.NET 1.x (ya "clásico"), estamos acostumbrados a hacer algo similar a lo siguiente: SqlCommand cmd = new SqlCommand("SELECT * FROM Tabla WHERE campo = @Parametro");cmd.Parameters.Add("@Parametro", 1); suponiendo que, por ejemplo, el parámetro "@Parametro" es un valor numérico. Hasta aquí todo normal. El caso es que si en un programa escrito con ADO.NET 2.0 escribimos exactamente lo  mismo, aunque funcionará por compatibilidad, el compilador y el propio entorno de Visual Studio nos darán un aviso diciendo que el método 'Add' está obsoleto (deprecated en inglés) y que es mejor que usemos el método AddWithValue. ¿Por qué este cambio tan aparentemente arbitrario? De hecho en Microsoft dicen que en versiones poste... [Más]

Llamadas asíncronas a servicios web con .NET 2.0

Llamadas asíncronas a servicios web con .NET 2.0
En la versión 1.x de .NET, cuando generábamos un proxy para acceder al uso de un servicio Web, para cada método disponible en el servicio se generaban una pareja de métodos para lamadas asíncronas. Estos métodos se llamaban igual que el método original pero su nombre comenzaba por Begin y End respectivamente. Por ejemplo, si teníamos un método llamago GetClientes, se generaban los métodos BeginGetClientes y EndGetClientes. Con ellos se podían realizar llamadas asíncronas al método siguiendo una mecánica coherente con la que existe en el resto de la plataforma. Sin embargo en la versión 2.0, el generador de proxies a servicios Web utiliza una estrategia diferente. Los métodos Begin y End ya no aparecen y a más de uno le puede despistar esto. Lo cierto es que en esta nueva versión es mucho más sencillo hacer estas llamadas asíncronas ya que no dependemos de IAsyncResult y otras interfaces esotéricas, sino que es tan fácil como declarar un evento para responder a las llamadas. Veamos un... [Más]

Cómo cambiar los parámetros de un ObjectDataSource en ASP.NET 2.0

Cómo cambiar los parámetros de un ObjectDataSource en ASP.NET 2.0
El nuevo control ObjectDataSource es muy útil a la hora de enlazar una rejilla u otro control de ASP.NET 2.0 con un objeto de negocio, como por ejemplo un Servicio Web o un objeto propio. Los métodos de selección, inserción, actualización o borrado de registros pueden tener parámetros que es necesario ajustar. Por ejemplo en la siguiente figura el método de selección dispone de un paráemtro "Pais" que es necesario ajustar para poder obtener los datos: El propio diálogo de configuración nos ofrece la posibilidad de asociarle a cada uno de los parámetros, aparte de un control por defecto, algún origen que sirva para asignarlo (una cookie,uncontrol, etc...): Aunque esto llega en la mayor parte de los casos y es muy cómodo, puede darse el caso de que necesitemos cambiar nosotros dinámicamente el valor de un parámetro usando cualquier código de cosecha propia. Lo primero que cabe pensar es acudir a la propiedad SelectParameters del control ObjectDataSource, y escribir algo así: O... [Más]

Un par de utilísimos complementos para Visual Studio 2003

Un par de utilísimos complementos para Visual Studio 2003
Hoy he leído desde la página principal de mi flamante Visual Studio 2005 RTM (versión definitiva) un artículo muy útil de James Avery titulado "Visual Studio Add-Ins Every Developer Should Download Now". Había varias cosas bastante útiles pero me han gustado especialmente dos de ellos: 1.- Smart paster 1.1: permite copiar el contenido de texto que haya en el portapapeles pero de manera "inteligente", de ahí el nombre. Fíjate en las opciones que ofrece: Es decir, puedes pegar el texto como un comentario, como un literal de tipo cadena correctamente formateado para el lenguaje que utilices (VB o C#), como una serie de líneas de código que generan la misma cadena pero a partir de un StringBuilder, y tal cual está pero metido dentro de una región. Me parece muy útil si debes embeber en el código líneas un tanto largas (como por ejemplo alguna consulta "a pinrel" que haya quedado extensa) y cosas por el estilo. Lástima que de momento no haya versión para VS2005. Descargas desde: http:... [Más]

Anexo a mi post de Avalon

Anexo a mi post de Avalon
En el post sobre Avalon y XAML que hice el otro día, comentaba que WPF me gustaba, entre otras cosas, porque en teoría no era dependiente del sistema operativo y por lo tanto se podría portar (en teoría, ya digo) a otros sistemas operativos. Hoy leo en la edición impresa de Noviembre de Microsoft Directions, la revista independiente que trata sobre todo lo que tiene que ver con Microsoft, que al parecer habrá una versión (algo recortada) de WinFX-Avalon ¡para Linux y MacOS! Me ha sorprendido mucho pero desde luego me parece una gran noticia y me reafirma en lo que decía en aquel post. Ya veremos que pasa al final, porque como se suele decir "del dicho al hecho hay un trecho" ;-)

Curiosidad: Las distintas formas de averiguar la ruta actual de una aplicación

Curiosidad: Las distintas formas de averiguar la ruta actual de una aplicación
¿Cómo averiguamos la ruta en la que está un ejecutable? Hay varias formas para todos los gustos: desde los que van a lo práctico a los que les "mola" complicarse la vida. Veámoslas todas ;-) - Solución 1 (fácil): private static string RutaActual(){     return Environment.CurrentDirectory;} - Solución 2 (fácil): using System.IO;private static string RutaActual(){     return Directory.CurrentDirectory;} - Solución 3 (media): using System.Diagnostics;private static string RutaActual(){     string arch = Process.GetCurrentProcess().MainModule.FileName;     return arch.Substring(0, arch.LastIndexOf("\\"));} - Solución 4 (super-rebuscada: como la hace la plataforma .NET y usando la API): private static string RutaActual(){      string text2;      StringBuilder builder1 = new StringBuilder(0x105);      if (Win32Native.GetCurrentDirectory(builder1.Capacity, builder1) == 0)      {            __Error.WinIOError();      }      string text1 = builder1.ToString();      if (text1.En... [Más]

¿Por qué me gusta XAML?

¿Por qué me gusta XAML?
XAML (eXtensible Application Markup Language) es el lenguaje XML que define elementos de la interfaz de usuario en Windows Presentation Foundation (Avalon). Avalon está muy bien y permitirá crear interfaces avanzadas que hoy en día son casi impensables. Sin embargo no es eso lo que más me gusta. hay varias cuestiones que me parecen importantes: · Como programadores de ASP.NET tendremos una gran ventaja frente a muchos programadores tradicionales de aplicaciones Windows ya que el desarrollo en el futuro con WPF se va a parecer mucho más al actual ASP.NET que a cualquier otra cosa. · Aunque los "controles" de Avalon parecen botones, listas, etc... en realidad son entidades tridimensionales Direct 3D definidas en la memoria de la tarjeta gráfica. Adios a la API de Windows por debajo. Hola elevado rendimiento y (en teoría) portabilidad. · Las interfacesde usuario, aparte de ir compiladas dentro de un ensamblado como hasta ahora (usan recursos que son versiones binarias optimizadas de... [Más]

Ready!!!! - Mañana es el día "D"

Ready!!!! - Mañana es el día "D"
Pues sí, mañana día 7 de noviembre se presentan oficialmente las versiones definitivas de Visual Studio 2005, SQL Server 2005 y Biztalk Server 2006. Por supuesto ¡Estás invitado!. Team System, el componente de gestión de proyectos de Visual Studio 2005 se retrasa hasta Enero, al igual que la versión en castellano del entorno. Yo por lo de pronto ya estoy usando la versión definitiva en inglés de estos productos y me encantan. Mañana por lo visto es un día de presentaciones. En España nace el nuevo canal de televisión Cuatro. De momento lo que he visto anunciar no me tiene muy buena pinta pero era de esperar si queire competir con la telebasura que nos ponen en España desde hace años :-(((

Acceder a discos Linux desde Windows

Acceder a discos Linux desde Windows
Hoy he descubierto esta estupenda utilidad: http://www.fs-driver.org/  Se trata de un controlador en modo Kernel para Windows que permite utilizar particiones Ext2 de Linux nativamente desde el sistema de Microsoft. Esto implica que con él es posible acceder, leer, escribir y utilizar en general cualquier partición Ext2 como si fuera NTFS o FAT32, con las consabidas ventajas para administradores de sistemas, programadores, y manitas en general. Por no mencionar lo que facilita compartir información entre ambos sistemas. ¡Ah!, y es gratuita, claro :-)

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