Categories
.NET Varios

Plugin: Coloreador de sintáxis para Windows Live Writer

Después de haber realizado unas cuantas pruebas a Windows Live Writer, creo que temporalmente estaré escribiendo posts con esta herramienta, a modo de preparar el terreno para los siguientes posts, me decidí a desarrollar un simple plugin para colorear sintáxis de algunos lenguajes de programación.

Aquí algunas imágenes:

Plugin de Windows Live Writer

Figura 1: El plugin en la barra de Windows Live Writer.

Ventana principal del Plugin

Figura 2: Ventana principal

Ventana con código C# coloreado

Figura 3: Ventana con código C# coloreado.

Código coloreado en formato HTML

Figura 4: Código coloreado en formato HTML.

Ventana de configuración del plugin

Figura 5: Ventana de configuración.

En el siguiente post publicaré el código del plugin y una breve explicación del desarrollo del mismo. Posiblemente también suba el código a Google o CodePlex

Actualización: Pueden descargar el código fuente desde este blog o desde CodePlex, publiqué el código en éste último para hacer pruebas con el Team Foundation Server

Actualización 2 (por braulio): Para instalar el plugin sólo es necesario copiar el contenido del archivo en la carpeta C:\Archivos de programa\Windows Live Writer\Plugin (Esta es la ruta donde se instala por defecto).

Información relacionada

Categories
.NET

Liberado el Service Pack 1 de Visual Studio .NET 2003

Después de una larga demora, finalmente ya está disponible el Service Pack 1 para Visual Studio 2003.

Esta descarga instala el Service Pack 1 de Microsoft® Visual Studio® .NET™ 2003. Las correcciones incluidas en este Service Pack están relacionadas con las mejoras de estabilidad y seguridad realizadas en muchas áreas del producto. Una lista completa de revisiones solicitadas por los usuarios desde el lanzamiento de Visual Studio® .NET™ 2003 e incluidas en este Service Pack se puede encontrar siguiendo el vínculo correspondiente, situado en esta página bajo Recursos relacionados.

Release Notes

Fuente: Blog de Rob Caron

Categories
.NET Varios

Tip: Como acelerar la carga de las páginas de MSDN2 (documentación)

Todos aquellos que se hayan dado una vuelta por la nueva documentación en línea de MSDN, se habrán dado cuenta que demora una eternidad en cargar, al menos para los que tienen una conexión lenta -como es mi caso.

El truco para que cargue rápidamente, es que tu navegador se identifique como si fuera uno de bajo nivel, al hacer esto, sólo se visualiza una página bien sencilla conteniendo la documentación de la sección a la que se accede. (ver la entrada Problemas validando el código que genera ASP.NET? para una breve explicación de este comportamiento).

Personalmente utilizo Firefox, que con ayuda de la extensión User Agent Switcher, hago pasar a mi navegador como el bot de Google.

Google Bot User Agent

Espero que esto les ahorre un poco de ancho de banda :-D.

Categories
ASP.NET

ViewState

Dave Reed explica en un extenso artículo, los errores que normalmente se cometen al hacer uso del ViewState, las consecuencias de estos errores y las posibles soluciones para éstas.

MISUNDERSTANDING OF VIEWSTATE WILL LEAD TO...

  • Leaking sensitive data
  • ViewState Attacks - aka the Jedi Mind Trick -- *waves hand* that plasma tv is for sale for $1.00
  • Poor performance - even to the point of NO PERFORMANCE
  • Poor scalability - how many users can you handle if each is posting 50k of data every request?
  • Overall poor design
  • Headache, nausea, dizziness, and irreversible frilling of the eyebrows.

WHAT DOES VIEWSTATE DO?

  • Stores values per control by key name, like a Hashtable
  • Tracks changes to a ViewState value's initial state
  • Serializes and Deserializes saved data into a hidden form field on the client
  • Automatically restores ViewState data on postbacks

WHAT DOESN'T VIEWSTATE DO?

  • Automatically retain state of class variables (private, protected, or public)
  • Remember any state information across page loads (only postbacks) (that is unless you customize how the data is persisted)
  • Remove the need to repopulate data on every request
  • ViewState is not responsible for the population of values that are posted such as by TextBox controls (although it does play an important role)
  • Make you coffee

Sin duda una excelente referencia para los que desarrollan aplicaciones con ASP.NET.

Categories
.NET ASP.NET

Problemas validando el código que genera ASP.NET?

Cuando se procesa una página, ASP.NET examina la información de la solicitud sobre el explorador actual y basándose en el tipo de explorador (cadena de agente de usuario), representa el marcado que es apropiado para dicho explorador.

En versiones anteriores a ASP.NET 2.0, el código HTML generado por defecto era HTML 3.2, ya que se consideraba a Internet Explorer como el único "navegador moderno" (irónico no? :-P), según este artículo de MSDN Magazine, en ASP.NET 1.x las características del navegador se toman de %windir%\System32\inetsrv\browscap.ini (se dá mayor importancia a IE, aunque existen definiciones de versiones muy antiguas de otros navegadores) y de la sección browserCaps del Web.config, para finalmente crear una instancia de la clase HttpBrowserCapabilities, accesible desde el request actual.

Felizmente, en ASP.NET 2, muchas cosas se han corregido en este aspecto, ya que por defecto se incluyen una serie de archivos xml con extensión .browser, donde se especifica el nivel de compatibilidad de distintos navegadores (pueden revisar %windir\Microsoft.NET\Framework\v2.0.50727\Config\Browsers). Por otro lado, también ofrece la posibilidad de modificar la salida de cualquier control (pueden ver un demo en http://asp.net/CSSAdapters/Default.aspx).

Con la breve introducción expuesta, el motivo de la entrada es para comentar que si quieren validar sus páginas hechas en ASP.NET 2, necesitan especificarlo en un archivo, de modo que el navegador del validador sea tratado como uno moderno.

Si envía una página Web ASP.NET a un servicio de validación como, por ejemplo, W3C Markup Validation Service, ASP.NET podría representar una versión de la página que no sea compatible con los estándares de XHTML. Esto es porque el servicio de validación no se presenta como un tipo de explorador que ASP.NET reconozca como, por ejemplo, Internet Explorer o Mozilla. Cuando ASP.NET no puede reconocer el tipo de explorador, toma como valor predeterminado la representación de marcado a bajo nivel, la cual no incluye elementos y atributos compatibles con XHTML, o características como estilos de hojas de estilo en cascada.

Esto es lo que se tiene que incluir en el directorio especial App_Browsers de una aplicación web:

xml:

<browsers>
  <browser id="W3C_Validator" parentID="default">

    <identification>
        <userAgent match="^W3C_Validator" />
    </identification>
    <capabilities>
      <capability name="browser"              value="W3C Validator" />

      <capability name="ecmaScriptVersion"    value="1.2" />
      <capability name="javascript"           value="true" />

      <capability name="supportsCss"          value="true" />
      <capability name="tables"               value="true" />

      <capability name="tagWriter"
         value="System.Web.UI.HtmlTextWriter" />

      <capability name="w3cdomversion"        value="1.0" />

    </capabilities>
  </browser>
</browsers>

Como se menciona en la documentación, aunque ASP.NET genere un marcado compatible con XHTML, algunos controles admiten una funcionalidad opcional que, si se utiliza, podría generar un marcado no compatible.

Espero que esta entrada sirva para los desarrolladores interesados en hacer que sus sitios intenten cumplir con los estándares definidos por la W3C