Chalalo Land

Tecnologías ASP.NET y un poco Más

Contacto


 Si quierer cooperar, yo feliz, muy agradecido :)

De donde me Visitan?

Locations of visitors to this page

Generic Content

Si te gustaron los articulos, y te animas te estaría muy agradecido!


Recent Posts

Tags

Community

Blogs de MVP

Amigos Geeks

Blogs Imperdibles

GODS

Archives

Email Notifications

June 2009 - Artículos

JQuery en Gadget de Windows 7 (JQuery + JSon + Gadget + WS)

Hola que tal? ya habíamos hablado sobre JQuery + ASP.NET , y un día antes de la charla que tuve que dar sobre Gadget y Win7 , pensé “y que tal JQuery?”, y claro que si, se puede utilizar JQuery en Gadget, en este Post vamos a revisar como conectarnos a un WebService desde el Gadget mediante JQuery, el esquema sería el siguiente:

image

Para este ejemplo vamos a crear un WS el cual va a retornar un número aleatorio entre 0 y 100, de manera de servir como un indicador, en el escritorio, de algún proceso con acceso a recursos de servidor, además el WS va a tener un retardo de tiempo, esto con la intención de programar un “Cargando” en nuestro Gadget.

Para revisar como conectarse a un WS desde JQuery, te invito a revisar mi Post:
http://geeks.ms/blogs/gperez/archive/2009/05/13/invocando-asp-net-webservices-desde-jquery-con-notaci-243-n-json.aspx

El Código del Servicio Web

<WebMethod(Description:="Numero Aleatorio entre 0 y 100 ")> _    Public Function ObtNumero() As Integer
          System.Threading.Thread.Sleep(3000)
 
        Dim i As New System.Random
 
        Return i.Next(0, 100)
End Function

Diseño del Gadget

El Gadget tiene un diseño Básico, en donde mostramos en un <span> el porcentaje (devuelto por el WebService) y un <span> en donde muestra el estado (cargando), junto a un gif animado que nos presenta un ajax loading.

image 

El primer paso es configurar el Manifiesto XML, si quieres saber más sobre los manifiestos de Gadget puedes visitar:
http://msdn.microsoft.com/es-es/library/aa965879(VS.85).aspx

La idea del manifiesto setear los parámetros del Gadget, como nombre, descripción, imágenes, namespace, página htm de interfaz de usuario del gadget entre otras cosas.

image

 

 

Ahora veamos el código del Gadget

<
script src="jquery-1.3.2.js" type="text/javascript"></script>
<script language="javascript">

 

        $(document).ready(function() {
                $("#estado").show();
                cargaWS();
        });

 

    function cargaWS() {
            $("#estado").show();
            $.ajax({
              type: "POST",
              url: http://localhost:3568/Service1.asmx/ObtNumero",
              data: "{}",
              contentType: "application/json; charset=utf-8",
              dataType: "json",
              success: function(msg) {
                    AjaxOK(msg);
                },
                error: AjaxError
            });
        }

 

   function AjaxOK(result) {
            $("#texto").show();
            $("#estado").hide();
            texto.innerHTML = "<b>" + result.d + "%</b>";
            setTimeout(cargaWS, 5000);
        }

 

   function AjaxError(result) {
            $("#texto").show();
            $("#estado").hide();
            texto.innerHTML = " - Error – ";
            setTimeout(appendDateToBody, 30000);
       
    </script>

Utilizamos JQuery para la conexión al WS y para mostrar/ocultar  los span según corresponda. Utilizamos setTimeout para realizar la llamada al WS cada cierto tiempo (5 segundos si esta todo bien, 30 segundos si hay un error). Puedes ver un muy buen artículo sobre setInterval y setTimeout aca:
http://weblogs.asp.net/bleroy/archive/2009/05/14/setinterval-is-moderately-evil.aspx

Vista del Diseño del Gadget (desarrollado con Visual Web Developer Express)

image

Como decíamos, es simplemente una página web, y vamos a dejar dentro de una tabla los span para mostrar la información al usuario.

Y Listo!, ya tenemos nuestro Humilde Gadget conectándose a un WS y con un indicador de carga!

image

Si quieres el código e imágenes del  Gadget lo puedes descargar acá:
Puedes buscar más artículos relacionados en este blog sobre gadget pinchando:
http://geeks.ms/blogs/gperez/search.aspx?q=gadget

Espero que te sirva!
Saludos,
Gonzalo

ScreenCast de Desarrollo de Gadgets en Windows 7

image

Hola!
Acabo de ver en
http://www.microsoft.com/latam/windows/7x7/
Que ya está publicado mi ScreenCast, se me enredó un poco el habla, jejejej y como anécdota, como mi casa estaba en remodelación, estaba sentando en el suelo  ya que esa mesa no tiene mas de 45 cm de alto, con una cámara al frente me ponía más nervioso, entonces me equivoqué varias veces (trabado de habla), una vez que lo logre (yo muy feliz), mi esposa se dió cuenta que la mesa estaba llena de polvo (de la remodelación), por lo que tuve que hacerlo nuevamente…(fail!) jjejeje.

Échale un vistazo a 7x7 ya que se van a estar presentando 7 videos por 7 semanas, lo que dan 49 videos en donde vas a conocer las nuevas características de Windows 7.

Si quieres ver mi ScreenCast (que lo hice con mucho empeño), visita :
http://www.mslatam.com/latam/mediacenter/default.aspx?v=13fbd60a-3b1f-4bf8-a4ba-2a24f5ecc8c9

Nos vemos!!!!
(y recuerda votar por mi blog en : http://www.blogit.ms/)

image

Convocatoria para BlogIT.ms

Esta es una muy buena noticia, si quieres participar en el concurso, solo debes registrar tu blog (yo ya registré el mío)

clip_image002

Puedes votar por mi blog  pinchando acá:

Get Microsoft Silverlight

A concursar (y no te olvides de pinchar mi aviso!)

Saludos,
gonzalo

[Tips] RollOver Sencillo con JQuery.

Hola que tal, hace unos días buscando buscando por la red, encontré un código y tras unas modificaciones me sirvió bastante para hacer imágenes de Sustitución, (Sorry por la palabra en ingles, a algunos les molesta).

La idea es tener una función que haga la precarga de las imágenes y que cuando se pase el mouse por encima de ella, se reemplace, esto es lo lógico, pero veamos la forma de hacerlo de manera más eficiente (por lo menos eso creo yo)

Código:

<script src="jquery-1.3.2.js" type="text/javascript"></script>  <script language="jscript" type="text/jscript">

 

      $(document).ready(function() {
          $(".roll").each(function() {
             rollsrc = $(this).attr("src");
              rollON = rollsrc.replace(/.jpg$/ig, "_over.jpg");
              $("<img>").attr("src", rollON);
          });

 

    $(".roll").mouseover(function() {
         imgsrc = $(this).attr("src");
         matches = imgsrc.match(/_over/);
         if (!matches) {
           imgsrcON = imgsrc.replace(/.jpg$/ig, "_over.jpg"); 
           $(this).attr("src", imgsrcON);
              }
          });
          $(".roll").mouseout(function() {
              $(this).attr("src", imgsrc);

          });
      });
  </script> 

Lo primero que hacemos es realizar la precarga de las imágenes que están marcadas con el atributo Class=”roll” estoy es muy importante para el ejemplo , debido a que, al hacer mouseover sobre la imagen marcada con nav y contenga un link(a) lo que vamos a hacer es reemplazarla por una imagen que tenga el el mismo nombre, pero termine en _over.jpg

image

Aunque no se note mucho la imagen de la derecha es más clara, (para el efecto rollover), recuerda el tag de la imagen (class):

<a href="SituacionesApendizaje.aspx"><img class="roll" src="images/menu4_docente.jpg"

Ahora puedes tener seteado en tu carpeta imágenes  las img normales y las over, y setear tu class =roll y automágicamente vas a tener tu Rollover sin mucho esfuerzo. :)

Espero que te sea de ayuda, ahhh y otra cosa, te pido un favor grande, en varios post vas a ver este logo:

Get Microsoft Silverlight

 

Me puedes ayudar en este concurso?, mil gracias!

[Link] 24 Mejores Prácticas en el Desarrollo con JavasScript

Súper Interesante este post sobre mejores prácticas

http://net.tutsplus.com/tutorials/javascript-ajax/24-javascript-best-practices-for-beginners/

Espero que lo disfruten tanto como yo!, me di cuenta que en algunas cosas, tengo malas prácticas! jejeje

Saludos,
Gonzalo

Posted: 18/6/2009 17:32 por Gonzalo Perez | con no comments
Archivado en:
[Tips] Report.NET ,Libreria para para generar PDF en ASP.NET

 

image Alguien me podrá decir que es un post viejo, que no sirve, pero la experiencia de bloggero me dice que los tips más sencillos, son los más vistos, así que me decidí a postear este tip.

Mucha gente busca una librería que le permita generar pdfs programáticamente y de manera fácil (sin utilizar Crystal Reports), bueno, es ahí cuando una vez me tope con Report.NET

Paso 1
Descárgalo!
http://sourceforge.net/project/showfiles.php?group_id=58374&package_id=83913&release_id=463074

Paso 2

Agrega la Referencia

image

Paso 3 A Mover los dedos programado( casi nada!)

El Diseño(aspx) es algo parecido a esto:

image

En seguida, en el botón agregamos el código al botón:
(acá está todo el código)

Imports Root.Reports
Partial Class _Default
    Inherits System.Web.UI.Page

    Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim report As New Report(New PdfFormatter())
        Dim fd As New FontDef(report, "Helvetica")
        Dim fp As FontProp = New FontPropMM(fd, 25,    Drawing.Color.Red) 
        Dim page As New Page(report)
        page.AddCB_MM(80, New RepString(fp, tx_texto.Text))
        RT.ViewPDF(report, "MiInforme.pdf")
    End Sub
End Class

Paso 5
A Probarlo!!!

image
Súper Sencillo!

Ejemplos en la página del Autor:
http://report.sourceforge.net/

Están en C# si los quieres en VB.NET te recomiendo utilizar el convertidos de Código de telerik:

Convertidor de Código Fuente
http://converter.telerik.com/

Espero que te sea de utilidad!.
Saludos,
Gonzalo

Posted: 12/6/2009 7:27 por Gonzalo Perez | con 78 comment(s)
Archivado en:
[Off-Topic] Cthulhu con boina y bastón, en mi sala!

100_1379

Soy fanático de HP Lovecraft, y hace años encargué que hicieran la figura de Cthulhu en madera, de ciprés de más de 100 años de antigüedad. Hubiese sido genial que el artesano hubiese muerto grotescamente sobre la estatua, le abría dado un toque preciso, bueno eso no ocurrió, y de hace unos años Cthulhu se ha portado bien, no destruye nada y adorna el comedor de la casa.

"Que no está muerto lo que yace eternamente,
y con el paso de los evos, aun la muerte puede morir".
 

Gracias HP Lovecraft por tantas bizarras historias que tanto inquietan!!!

Si quieres comenzar a leer sus historias te recomiendo que vayas a:

http://www.hplovecraft.com/

[lovecraft.jpg]

Bueno, no todo debe ser 10101010 verdad?
Saludos y gracias por leer este post mega super off-topic!!!

Saludos,

Invitación Oficial: Install Fest Windows 7!!

 

Links de Inscripciones para las Instalaciones:

Opción 1 de Instalación:de 10 a 11hrs.
http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032417992&Culture=es-CL


Opción 2 de Instalación:de 11 a 12 hrs
http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032417993&Culture=es-CL

Opción 3 de Instalación: de 12 a 13 hrs.
http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032417994&Culture=es-CL

Opción 4 de Instalación:de 13 a 14 hrs
http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032417995&Culture=es-CL

Opción 5 de Instalación: de 15 a 16 hrs
http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032417996&Culture=es-CL

Opción 6 de Instalación:16 a 17 hrs
http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032417997&Culture=es-CL

Posted: 10/6/2009 15:08 por Gonzalo Perez | con no comments
Archivado en:
Acelerar Visual Studio 2008 , Consejos…

O como tener muchas visitas en el blog en poco tiempo, pero recopilando info (tratando de acelerar un poco más Visual Studio para no entrar en un día de furia) encontré estos consejos:

Primero, instala del HotFix de VS2008 (enfocado a acelerar el diseñador web)https://connect.microsoft.com/VisualStudio/Downloads/DownloadDetails.aspx?DownloadID=10826

Luego mira los consejos de este Post (vale la pena)
http://labs.episerver.com/en/Blogs/Steve-Celius/Dates/112266/6/Speed-up-Visual-Studio/

Si todo esto no hace ni pio en tu VS2008, trata cambiando tu disco duro a uno más rapido (si estás en un portátil) o  puedes ver este post, en donde el autor cuenta sus historias con los discos ssd, tarjetas de memoria y algunas otras ideas.
http://www.clikear.com/Acelera_Visual_Studio_18845.aspx

Para VS2005:
http://tehdevs.net/2007/11/19/speed-up-visual-studio-2005/

Actualizado:

1)Pueden tambien utilizar un pendrive que tenga un tiempo de acceso relativamente corto (como los Crossair) para utilizar ReadyBoost, a mi me ha dado buen resultado.
2) Desactivar Aero, no lo vas a utilizar si estas desarrollando o no?

Si todo esto no sirve, puedes mirarte al espejo y lucir de esta manera:


Si tienen más consejos compartámoslos , por que esta foto me la saqué hoy…

;)
Saludos,
Gonzalo

 

Get Microsoft Silverlight

Install Fest Windows 7, Viernes 19 de Junio en Concepción!!

Así es! y por que Santiago no es Chile, tenemos este evento en Concepción, la agenda del evento:
Viernes 19 de Junio 2009

Charlas:
9:00 a 10:00       “Bienvenida a Install Fest y Demo Windows 7”, Alejandro Pacheco y Violeta Arévalo, Microsoft Chile
10:00 a 11:00      “Modo XP de Windows 7”, Pablo Campos
11:00 a 12:00     “Desarrollando videojuegos con Microsoft XNA” Matías Salgado, Pablo   Salgado y Juan Muñoz
Break (Coffee + sorteos )
14:00 a 15:00      “Desarrollo de Gadget en Windows 7”, Gonzalo Pérez
15:00 a 16:00      “Windows 7 + IE8, una experiencia de usuario más segura.”, Maximiliano Marín Bustos
16:00 a 16:15      Cierre Evento y Sorteo Final

Install Fest de Windows 7

10:00 a 11:00      Install Fest Windows 7 RC Horario 1
11:00 a 12:00      Install Fest Windows 7 RC Horario 2
12:00 a 13:00      Install Fest Windows 7 RC Horario 3
13:00 a 14:00      Install Fest Windows 7 RC Horario 4
14:00 a 15:00      Install Fest Windows 7 RC Horario 5
15:00 a 16:00      Install Fest Windows 7 RC Horario 6

Lugar : Universidad Andrés Bello, Sede Gran Concepción- Autopista Concepción – Talcahuano 7100

IMPORTANTE

Si vas a traer tu equipo, asegúrate de respaldar toda la información que te es relevante, ya que se van a realizar instalaciones limpias, es decir, se va a formatear el equipo, si tenias Windows Vista , trata de traer los controladores (drivers) de tu equipo para acelerar el proceso de puesta a punto de tu pc, puedes traer Notebooks, Netbooks, PC de Escritorio, etc.

Si traes tu computadora de escritorio, nosotros te facilitamos monitores, pero los demás periféricos, como teclados, mouse, webcams, incluyendo cables de poder, por favor tráelos .

Espero que puedan asistir a las charlas o al install fest! , nos vemos allá
Saludos,
Gonzalo

Posted: 4/6/2009 16:56 por Gonzalo Perez | con 8 comment(s)
Archivado en:
ScriptReferenceProfiler + CompositeScript y pensando por que no lo ocupe antes!(Optimización de request de JavasScripts)

No es que me esté pegando cabezazos contra la pared, ya que soy cabeza dura y la podría romper, pero es no había prestado toda la atención al Control ScriptReferenceProfiler y de como me iba a ayudar en optimizar las cargas dinámicas de los JS generador por Microsoft ASP.NET AJAX.

Veamos el problema primero

Vamos a hacer una pequeña aplicación aprovechando el ColorPicker del Ajax Control Toolkit, el escenario sería algo así:

image

Ahora bien, tenemos el ScriptManager, un UpdatePanel, un TextBox al cual le agregamos la extensión.

Ahora a ejecutarlo:

image

Se ve bastante bien, pero veamos que es lo que sucede haciendo una inspección a la generación de Script dinámicos por parte del ScriptManager, para esto vamos a utilizar Firebug.

image

Fíjate en la gran cantidad de “pedidos” javascript y cuando se van demorando en cargar cada uno de ellos,  cada pedido tiene un retardo de tiempo, por lo que se puede pensar que haciendo menos llamadas para obtener los Script, nos ayudará en disminuir el tiempo de carga de la página.

ScriptReferenceProfiler al rescate!

ScriptReferenceProfiler es un control que nos ayuda a obtener por pantalla  para poder “consolidar” nuestros Script , se realiza mendiante la etiqueta CompositeScript del Scriptmanager (es una mejora de ASP.NET 3.5 sp1).

Este control se puede descargar desde acá

Ahora lo vamos a agregar a la página(no te preocupes si marca error el diseñador, este control no está construido para la UI )

image

Ahora ejecutamos y ….

image

 

 

 

 

Ahora me indica las referencias encontradas en mi página, entonces, lo que vamos a hacer es un copy-paste de esta información y agregarla en la etiqueta CompositeScript del ScriptManager.

image

Se ve en la imagen anterior que copié y pegué las referencias que tenía en mi página, luego borro el control ScriptReferenceProfiler debido a que ya cumplió su utilidad y ejecuto nuevamente la página para examinar su comportamiento,ahora optimizado. (vamos a ver si es verdad)

image

 

Te puedes dar cuenta el cambio, ahora solo hace un request a las Scripts, con un tiempo considerablemente menor, optimizando la carga de Scripts y por consiguiente tu aplicación.

Espero que te sirva!
Saludos,
Gonzalo.

Posted: 4/6/2009 16:38 por Gonzalo Perez | con 7 comment(s)
Archivado en: ,,
[Off-Topic] Discos Duros de Notebook de 7200 rpms, realmente valen la pena?

Hola, hace unos días estoy tratando de encontrar info objetiva si es que un disco duro de 7200 rpms  en un notebook vale realmente la inversión, si es realmente un cambio que se percibe con facilidad de migrar de un disco de 5200 rpm, algunos me dicen que otros que no se nota, en mi caso, utilizo mi notebook como herramienta de productividad, me y me dije a mi mismo “oye mismo, para que vas a cambiar el portátil, para tener un cpu más potente, si tu cpu anda al 50% promedio utilizado?, el cuello de botella es el disco duro”

…y vi este aviso:

http://www.rigam.cl/catalogo/index.php?act=viewProd&productId=2327

Sin embargo la mejor fuente de información es la experiencia de los que han tenido y trabajado con estos discos duros.
Si postean sus opiniones, muchas gracias! (igual gracias por leer esto!)

Saludos,
gonzalo

Posted: 3/6/2009 21:58 por Gonzalo Perez | con 11 comment(s)
Archivado en:
Round 2: Estoy en las Charlas FLOSS – Kamikaze!

image
Lugar: Universidad Federico Santa María , sede Talcahuano
Fecha : Sabado 13 de Junio
19:00 – 19:50 ........ .NET ( Gonzalo Pérez | MVP Microsoft ) && Mono ( Jose Pino | MonoHispano team )
URL:
http://www.charlausm.ed00m.sinaltec.cl/

Y me voy con todo hablando de las tecnologías OS que rodean a ASP.NET , como ELMAH, NUnit, JQuery, SQL Lite (junto a Elmah). También vamos  a hablar de MONO y sus alcances.

Esta charla la daré nuevamente junto a JOIL, espero que todo resulte bien y pueda salir vivo nuevamente, jejejeje. Esta vez van desarrolladores, así que todo bien, de hecho fui invitado hace unos días a participar en un proyecto OS bajo Linux, y como hay JQuery entre medio, me metí :).

Digo que todo bien si hay devs ya que hace poco fui a una charla en donde un tipo del OS (que no vale la pena nombrarlo) dijo que el software no se podía vender, que es como vender una fórmula, las formulas no se venden, que solo se podía vender el medio en donde estaba el Sw, entonces pensé, para que hago sw todo el día, mejor me dedico a vender cds en blanco, ganaría lo mismo según si mirada, jajaja. Bueno, es un tremendo disparate, si no desarrollas software, si no vives del desarrollo y de tu código, mejor no opines tonteras, espero que no sea contagioso y a algunos se les abra la idea de que los mecánicos no deberían cobrar por arreglar el coche, por que ese conocimiento esta en un manual, o que los carpinteros no cobren por hace una casa….

Saludos,
Gonzalo

ELMAH: Módulo de Error Logging para ASP.NET

Hola que tal, hace poco leyendo un post  de Scott Hanselman, y me llamó la atención ELMAH

ELMAH: Error Logging Modules and Handlers for ASP.NET (and MVC too!)

¿Qué es ELMAH?
Es un plugin para el registro persistente de errores , se puede agregar a una aplicación ASP.NET en ejecución o a todas las aplicaciones Web ASP.NET en un equipo, sin necesidad de recompilar.

Una vez que ELMAH esté instalado y configurado adecuadamente permite:

  • Registro de las excepciones no controladas
  • Una página web para ver el registro de todas las excepciones  de manera remota
  • Una página web para ver el detalle de cada excepción registrada
  • En muchos casos , vas a poder revisar la pantalla original de la excepción,incluso si  customErrors mode esta en off
  • Posibilidad de enviar notificaciones de cada excepción por email en el momento que ocurren
  • Contar con un fuente RSS con los últimos 15 errores del log.

Más características Cool

Posibilidad de registrar el log generado en:

Revisa el website oficial para revisar todas las excelentes características que nos brinda
http://code.google.com/p/elmah/

Manos a la Obra
Una vez descargado ELMAH, hice referencia a los ensamblados, en el caso del ejemplo , hice ref. a todos (para hacer el pruebas).

image

Ahora a modificar el WebConfig, es bastante sencillo, viene todo explicado en la aplicación de ejemplo que viene junto a los ensamblados.
En el siguiente website puedes ver la documentación sobre estas opciones y cuando implementarlas, yo quiero dar una ayuda rápida de instalación simplemente.

http://code.google.com/p/elmah/wiki/DotNetSlackersArticle

Paso 1 Agregar:
<configSections>    
 
<sectionGroup name="elmah">    
      
<section name="security" requirePermission="false"
     t
ype="Elmah.SecuritySectionHandler, Elmah" />    
      
<section name="errorLog" requirePermission="false"
        type="Elmah.ErrorLogSectionHandler, Elmah" />    
      
<section name="errorMail" requirePermission="false"
        type="Elmah.ErrorMailSectionHandler, Elmah" />    
      
<section name="errorFilter" requirePermission="false"
       type="Elmah.ErrorFilterSectionHandler, Elmah" />    
 
</sectionGroup>    
</configSections>

 

Paso 2 Agregar:

<httpHandlers>  
 
<add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" />  
</httpHandlers>

Paso 3 Agregar

<system.web>  
 
<httpModules>  
  
<add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" />  
 
</httpModules>  
</system.web> 

Ahora bien para almacenar la info de log en los distintos tipos de almacenamiento vamos a agregar en el WebConfig:

En un archivo XML

<elmah>  
   
<errorLog type="Elmah.XmlFileErrorLog, Elmah" logPath="~/App_Data" />  
</elmah> 

 

image

En Memoria
Muy rápido, pero limitado, obviamente no persiste.

<elmah>  
 
<errorLog type="Elmah.MemoryErrorLog, Elmah" size="50" />  
</elmah>

 

En SQL Lite
Si no sabes lo que es Sql Lite, te cuento que es un pequeño motor de base de datos, muy muy liviano y eficiente para tareas sencillas.
<connectionStrings>  
 
<add name="Elmah.SQLite" connectionString="data
    source=~/App_Data/Elmah.SQLite.db"
/>  
</connectionStrings>  
<elmah>  
 
<errorLog type="Elmah.SQLiteErrorLog, Elmah" connectionStringName="Elmah.SQLite" />  
</elmah> 

Te recomiendo el livianisimo SQL Lite Administrator para administrar tu BD de SQL Lite. Es muy simple, portable y light. En la imagen siguiente vemos la vista de la BD que guarda el log, tu no tienes que hacer absolutamente nada, me refiero a que no tienes para que crear la base, ELMAH lo hace por tí.

 

image

 

En SQL Server
La aplicación de ejemplo se adjunta con un Script SQL para que generes la estructura necesaria para dar soporte a ELMAH. Esta es la mejor opción para entornos corporativos.

<connectionStrings>  
 
<add name="Elmah.Sql"  
    
connectionString="Data Source=.;Initial  Catalog=ELMAH;Trusted_Connection=True" />  
</connectionStrings>  

 
<elmah>  
  
<errorLog type="Elmah.SqlErrorLog, Elmah" connectionStringName="Elmah.Sql" />  
</elmah> 

 


¿Y si no quiero todos las excepciones registradas?

Puedes filtrar programática o declarativamente. Teniendo en cuenta la estructura de la clase y su funcionamiento,
image

La propiedad Dismissed indica si la excepción ha sido desestimada o no, mientras que la propiedad de Excepción contiene la excepción no manejada.

El método Dismmiss marca la excepción que no vamos a “estimar”, impidiendo que ser bien enviado por correo o registrado en el log.

Ejemplo:
void ErrorLog_Filtering(object sender, ExceptionFilterEventArgs e)    
{    
   
if(e.Exception.GetBaseException() is FileNotFoundException)  
        e
.Dismiss();  
} 

 

Lo anterior, elimina (descarta) la notificación para la excepción FileNotFoundException.

Hay muchas otras opciones que te invito a revisar en:

http://code.google.com/p/elmah/wiki/DotNetSlackersArticle

Y ahora F5 en mi Aplicación!!!
Para botar la aplicación tengo una división por Cero en el botón.

image

y al presionarlo:

image

 

y ahora al visitar:

http://localhost:53257/pruebaLog/elmah.axd

tenemos a ELMAH en acción: (espero que se alcance a notar, quize pegar toda grilla para que se vean los campos.

image
Nos da una lista de las excepciones, con información relevante y además podemos ver el detalle de cada una.

Si ves el menú superior vamos a ver:
image

Podemos suscribir RSS :), entonces, por que no suscribirnos a la fuente RSS desde el gadget de Windows 7

 image

Y ahora tenemos nuestro “sistema de monitoreo” de nuestra aplicación corriendo en el escritorio de Windows.

image

Espero que te sirva, a mi me gustó mucho :)

Saludos,

Gonzalo

Get Microsoft Silverlight
Posted: 2/6/2009 1:09 por Gonzalo Perez | con 12 comment(s)
Archivado en: ,
DCE2005 Estrella Platino con Plus

image
Aunque es un poco “vieja” la noticia pero igual lo quiero comentar, existen nuevos contenidos para la estrella Platino,
:: Platino Plus NET Framework 3.5 Enhancements Kit ::

Los contenidos, todos con Slides, Demos y Videos abarcan:

ASP.NET MVC, ASP.NET Dynamic Data, ASP.NET AJAX History, ASP.NET Routing, ADO.NET Data Services, ADO.NET Entity Framework, WCF 3.5 SP1, y .NET Framework Client Profile.

Mi recomendación  aprovechar esta oportunidad de aprender contenidos nuevos y en español, como siempre, estudiar estudiar estudiar!

Recuerda que la dirección es www.dce2005.com

Saludos,
gonzalo

Posted: 1/6/2009 7:46 por Gonzalo Perez | con no comments
Archivado en: ,