¿Cómo solucionar un error/problema en tu aplicación ASP.NET?

Si hay una cosa SEGURA en programación, es que os vais a encontrar más de una vez con diferentes errores y/o problemas en vuestra aplicación... ¡¡y esto no va a ser menos para ASP.NET!!

Aunque siempre vamos a trabajar en la dura tarea de evitarlo, los errores se pueden cometer y los problemas pueden llegar... el quid de la cuestión es: ¿Cómo lo solucionamos?

No hay un método mágico para ello, lo que si que hay es una metodología con la que enfrentarte a un error/problema. A continuación se muestra una serie de consideraciones que os aconsejo toméis en cuenta durante vuestra carrera de programadores.

1.- Identificar el error.
Aunque parezca una tontería, lo más importante es identificar de dónde proviene el error. Siempre que estemos en la etapa de desarrollo del programa, es conveniente decírselo a nuestra aplicación de modo que ésta esté atenta a todos los sucesos que ocurren, y si hay un error nos lo comunique con la mayor precisión posible. En este artículo tendréis más información al respecto: ¿Cómo le decimos a ASP.NET que estamos en etapa de desarrollo?

Si se trata de un error de compilación, el compilador nos avisará exactamente en qué documento y página está el problema, incluso con un poco de suerte nos propondrá una solución. Ejemplos típicos de este error son fallos en la sintaxis, parseo de variables, etc.

Si nuestra aplicación Web compila bien, pero de algún modo obtenemos un resultado que no esperamos... habrá que trabajar un poco más. En este caso, lo más importante es que tengamos muy claro lo que está haciendo el programa (no siempre es así), para de ese modo poder utilizar los breakpoints y vigilar paso por paso donde está el error. En este artículo tenéis más información sobre el uso de los breakpoints.


2.- Combatir el error/problema
Los errores de compilación son, habitualmente, muy sencillos de corregir. Los demás pueden llegar a ser mucho más complicados, pero usando debidamente los breakpoints son fáciles de localizar y corregir.

Sin embargo, no nos equivoquemos... sobretodo en nuestra época de aprendizaje nuestra mayor falta no son los errores en sí, sino que NO tenemos el suficiente conocimiento de la tecnología para llevar algo a cabo el proceso que requerimos... dicho de otro modo: o no sabemos cómo se hace, o no sabemos como lo hemos podido hacer (aunque sea a medias).

Llegado a este punto las recomendaciones son muy sencillas:
- Buscar en Google.
- Preguntar en foros.

Algo que parece tan sencillo... no lo es en realidad. Estoy seguro de que todos sabéis exprimir las posibilidades de Google al máximo, adecuando las palabras clave de vuestras dudas.

Sin embargo el tema de los foros no es tan sencillo, ya que o no sabemos dónde acudir, o no acertamos a que nos comprendan y nos ayuden.

2.1 ¿A qué foros acudir?
No lo dudéis ni un instante, durante el curso vosotros tenéis un foro exclusivo para cualquier tipo de dudas de cualquier nivel, así como foros específicos semanales. ¡Usadlos!

Por otra parte, tenemos otros foros con una gran comunidad a su alrededor a los que deberemos acudir para solicitar ayuda... y en un futuro para ser nosotros quienes ayudemos!! Estos son:
- Foros de ASP.NET en castellano.
- Foros de ASP.NET en inglés.

2.2 Cómo hacernos comprender
De nada sirve encontrar el mejor foro del mundo... si no sabemos expresar nuestros problemas. Esta parte, aunque parezca trivial, es excepcionalmente importante. Dado el carácter asíncrono de los foros, puede llegar a ser frustrante esperar varias horas a que contesten tu pregunta y te respondan algo como "por favor, podrías explicarte mejor" o "¿cuál es exactamente el error?"... en este caso, la resolución de un problema puede llegar a durar día o incluso ni tal si quiera te respondan.

Aunque el plantear bien una cuestión no es sinónimo de obtener una respuesta, a continuación se plantean una serie de consejos a seguir para el caso:
  • Haber seguido los pasos marcados en "identificar un error", que aunque no nos hayan resuelto el problema, es seguro que nos han servido para comprenderlo mejor y, por ende, expresarlo mejor.
  • Si lo creéis necesario, explicad correctamente algunos datos de la configuración de vuestro equipo. Por ejemplo, si acudís a un foro sobre bases de datos en ASP.NET, y vosotros usáis MySQL, aseguraros de decir algo como "Uso MySQL 4, conectando con ODBC, ASP.NET 2.0 y Windows2003".
  • De haber distintos tipos de foros (algo habitual) dedicad un tiempo a decidir cuál es el foro adecuado a vuestra pregunta. De no hacerlo así, puede que simplemente os borren la pregunta.
  • En caso de tratarse de un error específico es imperativo adjuntar la máxima información posible acerca del error. No sólo el mensaje exacto del error, sino también su traza (trace).
  • Como más vale un error que mil palabras, es esencial que mostréis el código que produce el error/problema, o al menos el que sospecháis que lo produce (acordaos de los breakpoints).
Sobretodo no seáis ni egoístas ni vagos. Tener un error y rápidamente preguntarlo en el foro no os aportará nada y jamás aprenderéis.
De hecho, la gran mayoría de veces las respuestas que os darán nos sean exactamente lo que buscáis, sino que simplemente serán un camino para que por vosotros mismos encontréis al solución. Así es como se aprende.

Aunque tengamos mucha prisa por resolver un problema, más vale invertir 5 minutos en expresarnos lo mejor posible que perder 5 días (si no más) en hacernos comprender.

En los foros de este curso se os "exigirá" este comportamiento.
En otros foros, si no seguís este camino o no obtendréis jamás una respuesta o de obtenerla apenas aprenderéis.


3.- No rendirse
A pesar de lo que en ciertos momentos creamos: el problema/error SÍ TIENE SOLUCIÓN. No humanicemos nuestro código. Siempre hay un motivo por el cual algo no funciona como debería, y por tanto se puede solucionar.

Hay que pensar en el código con lógica pura y absoluta, y sobretodo no desesperar. Cuando creamos que nos vamos a volver locos, es que nuestro planteamiento no es el correcto. Reiniciemos nuestra mente y agrandemos los límites que estamos abarcando.

Incluso en ocasiones se puede caer en la tentación de pensar que el problema sea un "bug de la aplicación". ¡Y no! No es un bug, y en caso de serlo seguro que está tratado, lo podréis encontrar en Google, y en caso de no tener solución... tocará plantearse otro modo de hacer lo mismo ;)