2010/11/27

CHM Viewer

Por razones que desconozco se me rompio el visor de .CHM (archivos de ayuda) de Windows.
Por eso, en lugar de buscar soluciones o reparaciones del mismo decidí buscar un nuevo programa que lo reemplace.

Fue ahí cuando me tope con KchmViewer  (http://www.kchmviewer.net/) un visor de archivos .chm (WinHelp) basado en C++/Qt que ademas es multiplataforma y opensource.

Por lo pronto mi experiencia con el mismo es excelente, no tuve ningun inconveniente al instalarlo y usarlo sobre Windows 7 y puede navegar los archivos de ayuda lo mas bien, muestra los links e imagenes de manera normal tambien.

Así que ya saben cuando quieran un visor de archivos de ayuda .chm recomiendo KchmViewer, el link de descarga es el siguiente: http://sourceforge.net/projects/kchmviewer/files/

2010/09/30

Nuevo Chrome Canario

Esta nueva edición de Chrome es especial para GEEKs, ya que es la versión mas adelantada del navegador Chrome, con funciones especiales habilitadas que no poseen los usuarios de Chrome Comunes.

La url de descarga es la siguiente: http://tools.google.com/dlpage/chromesxs

Es importante destacar que la instalación de Google Canary Build, es una instalación independiente pudiendo conservar al mismo tiempo la instalación de Google Chrome anterior.

Una vez descargado propongo probar los siguientes ejemplos de la tecnología WebGL:
https://sites.google.com/a/chromium.org/dev/developers/demos-gpu-acceleration-and-webgl

Siendo mis dos preferidos:
-El Acuario (http://webglsamples.googlecode.com/hg/aquarium/aquarium.html)
-La pared de imágenes (http://cooliris-wall.appspot.com/)

Pruebenlo, y me cuentan...

2010/09/05

Validacion en UserControls

Los UserControls nos permiten encapsular cierto funcionamiento de manera que pueda o no interferir con el funcionamiento global de la pagina que lo contiene.

Hay situaciones en las que deseamos que el funcionamiento sea completamente independiente, en estos casos queremos que también la validación (a través de RequiredFieldValidator, RangeValidator, ValidationSummary, etc) sea independiente.

Para estos casos necesitamos hacer uso de una propiedad que poseen los controles llamada: ValidationGroup
De esta forma lo que haremos en encapsular la validacion de un UserControl con un codigo unico para que no modifique el funcionamiento habitual de la pagina, por ejemplo, un boton de la pagina contenedora no se verá afectada por los campos requeridos de nuestro UserControl.

Una manera de asegurarnos que el codigo del grupo de validacion sea unico es agregar una propiedad interna a nuestro UserControl:

protected string UniqueValidationGroup { get { return this.ClientID + "MyValidationGroup"; } }


Y luego desde el código usarla para setiar el ValidationGroup, en cada control que lo necesite los cuales serán tipicamente los controles de validación (RequiredFieldValidator, RangeValidator, ValidationSummary, etc) asi como tambien los botones que deberian causar esas validaciones dentro de nuestro UserControl.

ValidationGroup='<%# UniqueValidationGroup %>'

2010/09/01

Globalization en ASP.NET

La globalizacion nos permite que un sitio tenga una cultura definida y que no dependa de la cultura del browser del cliente.

Para fijar la cultura debemos poner lo siguiente en el web.config
<globalization uiCulture="es" culture="es-AR" />

El mismo va colocado dentro del tag:
<system.web>
    ...

En este caso estamos setiando el idioma Español y la cultura de Argentina.

AjaxControlToolkit Error

Si tenemos el error:

Could not find any resources appropriate for the specified culture or the neutral culture. Make sure "AjaxControlToolkit.Properties.Resources.NET4.resources" was correctly embedded or linked into assembly "AjaxControlToolkit" at compile time, or that all the satellite assemblies required are loadable and fully signed.

 Se soluciona simplemente agregando lo siguiente en la parte superior de la pagina donde usemos AJAX

<asp:ScriptManager ID="ScriptManager1" runat="server"><asp:ScriptManager>

2010/08/18

ASP.NET Framework 2.0 y 4.0 en el mismo servidor

Es posible correr en un mismo servidor sitios que esten hechos con el Framework 2.0 (fwk 2.0) y sitios que esten hechos con el Framework 4.0 (fwk 4.0), pero para eso debemos realizar un paso previo y uno posterior.

El problema es que las aplicaciones (sitios webs) que corran con diferentes frameworks no pueden estar sobre el mismo proceso de ejecucion, por ende debemos separar en diferentes procesos los sitios de fwk 2.0 y fwk 4.0

-Primero: desde el IIS manager debemos crear una nueva instancia en el 'Grupo de Aplicaciones', en esta caso lo llamaremos 'NetVersion4' (ver imagen adjunta), con esto lo que estamos haciendo es crear la instancia para un proceso nuevo

-Luego agregamos el sitio nuevo, como lo hariamos normalmente.

-Finalmente en las propiedades del sitio, desde la solapa de 'Directorio Particular' debemos cambiar el grupo de aplicacion, del default al que acabamos de crear en nuestro caso 'NetVersion4' (ver imagen adjunta), luego en la solapa ASP.NET, debemos seleccionar el fwk 4.0



Finalmente cabe aclarar que estos cambios nos obligara reiniciar el IIS por lo tanto se recomienda realizar el proceso en momentos de bajo trafico.

2010/08/11

2010/08/03

Instalacion de ASP.NET MVC sobre IIS (Internet Information Server)

Para instalar ASP.NET MVC / MVC2 sobre IIS tenemos varias opciones las cuales dependeran practicamente de la version de Windows del servidor.

Para Windows 2003 Server, tendremos disponible la version 6.0 del IIS (IIS6), para Windows 2003 Server no se puede actualizar a la version de IIS7 (version 7.0 del IIS) con lo cual deberemos realizar varias tareas para realizar la implementacion.

En este blog, estan explicados muy bien los pasos a seguir para cada caso:
http://haacked.com/archive/2008/11/26/asp.net-mvc-on-iis-6-walkthrough.aspx

Para Windows 2008 Server / Windows 2008 R2 Server tenemos disponible la versión 7.0 del IIS (IIS7), con lo cual la instalación es transparente.

2010/07/23

Error SQL Server linked Server

El proveedor OLE DB "Microsoft.Jet.OLEDB.4.0" para el servidor vinculado "x" devolvió el mensaje "La operación debe usar una consulta actualizable."

Cuando obtenemos este error al querer realizar sobre el linked server una operación de actualizacion debemos verificar dos cosas:

1) Los permisos del login remoto, es decir, en este caso del Access al cual queremos acceder; por default el login es 'admin' y password vacio.

2) Los permisos de escritura del archivo fisico, es decir el .mdb, en el filesystem

2010/07/19

Temas y ASP.NET MVC (Themes and ASP.NET MVC)

Si el tema por default que nos viene en nuestro proyecto MVC no nos gusta podemos cambiarlo por alguno de los temas disponibles en el sitio de oficial de ASP.NET

http://www.asp.net/mvc/gallery/


UPDATE:
Nuevo sitio con templates, gracias a la gente de MVCContrib
http://mvccontribgallery.codeplex.com/

Todos los templates completos los podemos descargar de el tab "Source":
http://mvccontribgallery.codeplex.com/SourceControl/list/changesets

2010/07/11

Validación de fechas con expresiones regulares (Regular Expression)

Para validar fechas en un textbox a traves de expresiones regulares podemos hacer uso de las siguientes simples expresiones:

Formato (MM/dd/yyyy):
([1-9]|1[012])[- /.]([1-9]|[12][0-9]|3[01])[- /.](19|20)\d\d

Formato (dd/MM/yyyy):
(0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[012])[- /.](19|20)\d\d

Por supuesto estas validaciones son muy básicas, y no contempla la cantidad de días del mes así como tampoco el manejo de años bisiestos, por ello, para validaciones mas estrictas podemos usar las siguientes expresiones regulares bastante mas complejas:

Formato (MM/dd/yyyy):
^(?:(?:(?:0?[13578]|1[02])(\/|-)31)|(?:(?:0?[1,3-9]|1[0-2])(\/|-)(?:29|30)))(\/|-)(?:[1-9]\d\d\d|\d[1-9]\d\d|\d\d[1-9]\d|\d\d\d[1-9])$|^(?:(?:0?[1-9]|1[0-2])(\/|-)(?:0?[1-9]|1\d|2[0-8]))(\/|-)(?:[1-9]\d\d\d|\d[1-9]\d\d|\d\d[1-9]\d|\d\d\d[1-9])$|^(0?2(\/|-)29)(\/|-)(?:(?:0[48]00|[13579][26]00|[2468][048]00)|(?:\d\d)?(?:0[48]|[2468][048]|[13579][26]))$

Formato (dd/MM/yyyy):
^(?:(?:0?[1-9]|1\d|2[0-8])(\/|-)(?:0?[1-9]|1[0-2]))(\/|-)(?:[1-9]\d\d\d|\d[1-9]\d\d|\d\d[1-9]\d|\d\d\d[1-9])$|^(?:(?:31(\/|-)(?:0?[13578]|1[02]))|(?:(?:29|30)(\/|-)(?:0?[1,3-9]|1[0-2])))(\/|-)(?:[1-9]\d\d\d|\d[1-9]\d\d|\d\d[1-9]\d|\d\d\d[1-9])$|^(29(\/|-)0?2)(\/|-)(?:(?:0[48]00|[13579][26]00|[2468][048]00)|(?:\d\d)?(?:0[48]|[2468][048]|[13579][26]))$

Considerar en caso de usar javascript para la validación el costo computacional en el cliente de una expresión y otra.

2010/07/10

Reset al Visual Studio

Reset Visual Studio

Para resetiar las configuraciones del Visual Studio (sin re-instalar) debemos utilizar los siguientes comandos, desde la linea de comandos.

Reset Settings


  1. El comando "devenv /resetsettings" resetea a la configuración original "de fabrica" de Visual Studio.
  2. El comando "devenv /setup" forza al Visual Studio a unificar la metadata de los paquetes de recursos.
  3. El comando "devenv /ResetSkipPkgs" resetea las opciones de los paquetes adicionales de Visual Studio.

Estos comando son especialmente útiles cuando el Visual Studio se cierra al querer hacer algo sin ninguna razón/error aparente.

Error de instalación SQL Server Management Studio Express

Para un sistema Windows 7 x64 se instalo Visual Studio 2010, el cual viene con la opción de instalar SQL Server 2008 Express.

Hasta ese momento tenemos solo la parte de servidor del SQL Server 2008 Express, ahora bien, si queremos tener una interfaz para interactuar con ese servidor, tenemos dos opciones, usar el Visual Studio 2010 o sino bajar el SQL Server Management Studio Express, esto ultimo se puede hacer directamente a través del Microsoft Web Platformhttp://www.microsoft.com/web/

El problema se presentara al querer instalar el  SQL Server Management Studio Express, con el siguiente error:


"SQL server setup media does not support the language of the OS or does not have ENU localized files."

En un principio el error parecía tratarse de un problema con el idioma.
Por eso, intente bajar la versión en español del mismo a través del siguiente enlace:
http://www.microsoft.com/downloads/details.aspx?displaylang=es&FamilyID=08e52ac2-1d62-45f6-9a4a-4b76a8564a2b

Fue ahí cuando salto la verdadera causa del error, la cual era que el SQL Server 2008 Express, que venia con el Visual Studio 2010 ya tenia una actualización.
Entonces, la verdadera solución para mi fue actualizar el SQL Server 2008 Express a SQL Server 2008 Express R2 (algo así como el service pack 2 actualizado para 2010 del SQL Server 2008 Express)


En esta nueva versión viene integrado el SQL Server 2008 Express R2, con su correspondiente SQL Server Management Studio Express, adicionalmente si bajamos la versión FULL también tendremos soporte para Reporting ServicesFull-Text Search 


http://www.microsoft.com/express/Database/InstallOptions.aspx


Finalmente, con este nuevo instalador, podemos hacer una instalación nueva o actualizar la versión que viene con Visual Studio 2010 si ya la hemos instalado.