ASP.NET y jQuery AJAX

Muchos programadores “expertos” denigran a javascript, considerándolo un lenguaje muy sencillo y poco funcional. La verdad es que este lenguaje es muy poderoso, y a la vez, con cierto grado de complejidad.

Un de los principales beneficios de javascript ha sido AJAX, que nos permite ejecutar funciones del servidor sin invocar al submit del formulario. La ventaja de esto es evitar recargar la página completa, y solamente llamar a un método, recibir un resultado y manipularlo de la forma que necesitemos. Esto lo podemos ver en sitios como Facebook, donde la mayoría de las acciones que realizamos no recargan la página, sino que modifican solamente una parte.

Claro que, como dije, esto tiene su complejidad. Trabajar con Javascript no debe implicar dejar de lado la programación web tradicional (ejecutar código al presionar el submit del formulario), ya que no podemos estar seguros si el código se ejecutará correcto, mucho menos si el usuario tiene javascript habilitado, y aquí es donde tendremos la mayor carga de trabajo.

El archivo que adjunto es una aplicación web hecha en ASP.NET 4.0, que incluye una página aspx que realiza operaciones en el servidor de ambas formas: por medio de un servicio web asmx invocado desde AJAX de jQuery y por medio del code-behind de la página.

*Actualización (16/06/2017)

Subí el código a GitHub. La solución es de Visual Studio 2017, pero el proyecto sigue siendo de .NET Framework 4.0.

Código fuente (VS2015/.NET 4.0)

 

ToString

El método ToString lo podemos utilizar en cualquier objeto de .NET, y sirve para mostrar a ese objeto convertido a texto. ¿Pero sabemos realmente lo que esto significa, o cómo utilizar este método?

Sigue leyendo “ToString”

.NET: Redimensionar imágenes

Importante: Junto con este artículo y el anterior (Subir archivos al servidor/base de datos), recomiendo leer un artículo más nuevo: Redimensionar y guardar imágenes en ASP.NET, con el cual se resuelven algunos detalles de este.

Como dije en mi último post, si vamos a permitir que el usuario suba imágenes en una aplicación, hay que tener controlado el tamaño de dichas imágenes. Dejar que los usuarios suban imágenes de cualquier tamaño es muy riesgoso, tanto en sobrecarga de información en el servidor de almacenamiento como en la transferencia de datos en la red (local o Internet).

Tampoco podemos ponernos estrictos con el usuario y decirle “la imagen debe ser máximo de 320×240”, o algo así. No todos somos diseñadores. No todos tenemos Fireworks, Photoshop, Paint.NET o algún programa para modificar imágenes. Lo mejor es que nosotros mismos hagamos ese ajuste a las imágenes, una vez que el usuario las haya subido y antes de guardarlas en nuestro servidor.

Sigue leyendo “.NET: Redimensionar imágenes”

ASP.NET: Subir archivos al servidor/base de datos

Importante: Junto con este artículo y el siguiente (Redimensionar imágenes), recomiendo leer un artículo más nuevo: Redimensionar y guardar imágenes en ASP.NET, con el cual se resuelven algunos detalles de este.

A veces, es necesario permitirle al usuario cargar archivos desde su computadora, como imágenes, documentos, o archivos de cualquier tipo.

Por ejemplo, si estamos haciendo un sistema para una tienda, podemos permitirle al usuario cargar fotografías de los productos cuando los registra en el catálogo.

Lo que el usuario sube lo podemos guardar de dos formas: directamente en una carpeta de nuestra aplicación web ó en una tabla de una base de datos.

Sigue leyendo “ASP.NET: Subir archivos al servidor/base de datos”

ASP.NET: Cómo usar Response.Write

Posiblemente todos los que desarrollamos aplicaciones web usando ASP.NET conocemos la instrucción Response.Write. El problema es que generalmente la usamos mal.

Sigue leyendo “ASP.NET: Cómo usar Response.Write”

.NET – Restar objetos DateTime

Hoy es mi cumpleaños 😛 Felicítenme.

Ni al caso con el post, dirán. Pero en realidad sí tiene que ver. Ayer varios me estuvieron felicitando, pensando que ése día fue mi cumpleaños. Al final, uno me dijo que Hotmail decía que ayer cumplí años. No creía haber puesto mal la fecha, así que entré a Hotmail, a mi perfil, y vi que decía “Fecha de nacimiento: 23 de sept. de 1985 (26 años)”.

¿Cómo que 26 años, si todavía me faltaba un día? Saquen la cuenta: 2010 – 1985 = 25. No cuenta 2011 porque todavía no llegaba el 23. Pero bueno, ya era tarde y no me iba a preocupar por eso.

Hoy que llegué al trabajo, me resurgió la duda. Ya que el sitio de Hotmail está hecho en .NET (o al menos la extensión de las páginas web dice eso), hice una aplicación en .NET para hacer la prueba.

Sigue leyendo “.NET – Restar objetos DateTime”

.NET WinForms – Crear forma con barra de título personalizada

La primera aplicación que me tocó ver que no usaba la barra de título de Windows fue Winamp 2. Me parecía rara… y fea.

Pero la tendencia actual, al menos en aplicaciones para Windows, es que cada aplicación tenga el diseño que le venga en gana al programador. Lo podemos ver en los navegadores (todos queriéndose parecer a Chrome), Office 2007 en adelante, Adobe CS, FoxitPDF, y demás. También nosotros podemos hacer esto en nuestras aplicaciones en .NET.

Aquí cubriré lo más elemental. Cuestiones de diseño y el hacer que se vea bonito ya corre por cuenta de cada quien. Se los advierto: se verá feo, pero funcional (Y)

Sigue leyendo “.NET WinForms – Crear forma con barra de título personalizada”

.NET – Actualizar una aplicación

Crear un instalador para nuestras aplicaciones en .NET no tiene mucha ciencia. El problema es cuando modificamos esa aplicación y recompilamos el instalador. Al ejecutarlo de nuevo en la computadora donde ya teníamos instalado nuestro programa, nos aparecerá este mensaje:

Ya está instalada otra versión de este producto. La instalación de esta versión no puede continuar. Para configurar o quitar la versión existente de este producto, utilice Agregar o quitar programas del Panel de control.

Toda aplicación tiene un código único, que sirve al sistema como referencia al programa instalado. En .NET, un proyecto de instalación tiene una propiedad (vista en el panel de Propiedades) llamada ProductCode. Basta con cambiar este código para que el nuevo instalador funcione correctamente.

Sin embargo, la manera más "correcta" de hacerlo es actualizando la versión de la instalación.

Toda aplicación tiene (o debería tener) su número de versión (1.0.0, 1.0.0.5, 2.1, etc.). El control de la versión de un programa depende de su desarrollador, pero lo recomendable es seguir estándares. En .NET la versión de la aplicación se define en la ventana de propiedades del proyecto o en el archivo AssemblyInfo

Cambiar la versión de la aplicación no afecta al instalador, ni a su ProductCode. Lo que sí podemos hacer al respecto es cambiar la versión al proyecto del instalador.

Así es. Los instaladores tienen su propio número de versión, independiente del programa que instalan. Éste lo podemos ver en el panel de propiedades del proyecto de instalación (seleccionando el proyecto en el Explorador de soluciones y presionando F4). Ahí veremos la propiedad Version, que por defecto tiene el valor 1.0.0.

Al cambiar esta propiedad, se nos permitirá cambiar el ProductCode automáticamente, para que nuestra instalación se aceptada como una nueva en el sistema cliente.

No es obligatorio cambiar la versión de una aplicación, y menos la del instalador. Pero es una buena práctica, como un control histórico de nuestra aplicación.

ASP.NET Evitar borrado de password en PostBack

Cuando una página web hace PostBack, los controles de tipo password siempre son limpiados. Lo cual puede ser muy molesto, por ejemplo, si estamos queriendo registrar usuarios, y por algún problema de validación, o un error en el funcionamiento, la página se recarga con el password vacío.

Sigue leyendo “ASP.NET Evitar borrado de password en PostBack”

ASP.NET – Invocar JavaScript desde el servidor

La interacción entre el código del lado cliente y el código del lado servidor en una página de ASP.NET es algo complicada. Debemos comprender bien la diferencia entre ambos ambientes para saber cómo utilizarlos y qué limintaciones tenemos.

Sigue leyendo “ASP.NET – Invocar JavaScript desde el servidor”