jueves, 23 de octubre de 2014

Regionalizacion en MVC5

Diseñaste tu modelo, hiciste tu controlador y agregaste una vista para interactuar con tus datos. Todo muy bonito hasta que te chocas con los campos con números decimales y no hay forma de hacerle entender a la aplicación que lo que estas agregando es un numero.

Te empiezan a aparecer mensajes como "The field XX must be a number" o mensajes parecidos. No hay forma por mas que utilizes la coma o el punto como separador de decimales.

La solución, instalar un paquete que contenga las distintas culturas y utilizarlo para la validación.

Paso 1. Instalar el paquete. Desde Visual Studio Express 2013para Web vamos a Herramientas->Administrador de paquetes de biblioteca->Administrar paquetes NuGet para la solución (Fig 1.).



Fig 1

Existen muchos paquetes que podríamos utilizar, en este caso utilizo Globalize. Escribimos globalize en el cuadro de búsqueda y cuando el mismo aparezca lo seleccionamos y hacemos clic en Instalar (Fig 2.).


Fig 2.
Una vez instalado tenemos que modificar la validación en cada una de las vistas donde agreguemos o editemos valores decimales. Debemos agregar lo siguiente a esas vistas:


Y al fin podemos utilizar decimales, y lo mas importante aún, utilizar la coma!

Para mas detalles consultar los sgtes links:

http://www.asp.net/mvc/tutorials/mvc-5/introduction/examining-the-edit-methods-and-edit-view
http://afana.me/post/aspnet-mvc-internationalization.aspx
http://afana.me/post/aspnet-mvc-internationalization-part-2.aspx


sábado, 3 de mayo de 2014

Montar una imagen ISO en Windows 8.1

Hay que decirlo, nunca fue tan fácil como ahora montar una imagen ISO. Ya no es necesario contar con aplicaciones de terceros. Basta con la misma funcionalidad que nos brinda Windows Explorer.

Para montar una imagen ISO simplemente debemos seleccionar la imagen que queremos montar y en el menú Herramientas de imagen de disco hacemos clic en Administrar y luego en el icono Montar o bien podemos directamente hacer clic derecho sobre la imagen y seleccionar Montar desde el menú contextual.


La imagen se monta Windows Explorer nos muestra el contenido. Podemos ver también una nueva unidad si nos paramos en Equipo en Windows Explorer.

Una vez que terminamos de utilizarla podemos desmontar la imagen haciendo clic derecho sobre la unidad recientemente agregada y luego clic en Expulsar.

jueves, 20 de febrero de 2014

Un salvavidas para el DBA accidental

Y si.... no quedo nadie que se hiciera cargo y nos toco a nosotros... Campeón.... hacete cargo del SQL Server. Y partir de ahí entramos en un mundo desconocido y extraño donde a los gurús no se le entiende lo que hablan aunque lo digan en tu idioma ... :)

Para todos ellos (me incluyo) una interesante guía:

Troubleshooting SQL Server: A Guide for the Accidental DBA

Este libro que publica Redgate tenemos la posibilidad de comprarlo en Amazon, Kindle o descargar el PDF gratis desde aquí.

jueves, 6 de febrero de 2014

Free EBooks desde MVA

Una interesante posibilidad de acceder a material acerca de las nuevas tecnologías es la que nos brida la gente de la 'Microsoft Virtual Academy'.
En el sgte link se compilan una interesante cantidad de libros gratuitos organizados por categoría. Eventualmente se puede acceder a otro material pago también, aunque con los gratuitos tenemos la posibilidad de leer una introducción a las tecnologías del momento.

http://www.microsoftvirtualacademy.com/ebooks#?fbid=A-NG8hOMqir

jueves, 24 de octubre de 2013

Crear archivos grandes

Cortita y al pie. A veces tenemos la necesidad de crear varios archivos grandes para llenar un volumen para realizar ciertas pruebas o lo que sea. Una manera rápida de hacerlo es con el comando fsutil. Desde una línea de comandos ejecutamos:

fsutil file createnew GiantFile.ext 1000000000

Y allí tendremos un nuevo archivo ( GiantFile.ext ) de 1 millón de bytes, la sintaxis es:

fsutil file createnew

miércoles, 25 de septiembre de 2013

System Center, libro gratuito

Desde el blog de Microsoft Press se anuncia un nuevo Free ebook sobre las nuevas tecnologías de MS. En este caso System Center. Para quienes quieran bajarlo y leerlo pueden encontrar el cómo desde aquí.

jueves, 14 de marzo de 2013

Compare-Object: o comparando archivos y directorios con PowerShell

Para ir entrando en tema con esto de PowerShell vamos a ver como comparar archivos con el comando Compare-Object, el cual sirve para comparar objetos como ya se imaginaran... :)
En este caso vamos a crear 2 archivos de ejemplo, 2 archivos de texto que son idénticos en la primer línea y diferentes en la segunda y veremos que nos devuelve este cmdlet.

Primero, desde una consola de PowerShell, creamos los archivos:

PS C:\Users\Fernando\Documents\Blog> Write-Output "Esto es un test" > test01.txt
PS C:\Users\Fernando\Documents\Blog> Write-Output "Y este es el primer archivo" >> test01.txt
PS C:\Users\Fernando\Documents\Blog>
PS C:\Users\Fernando\Documents\Blog>
PS C:\Users\Fernando\Documents\Blog> Write-Output "Esto es un test" > test02.txt
PS C:\Users\Fernando\Documents\Blog> Write-Output "Y este es el archivo 2" >> test02.txt


Verificamos el contenido de los mismos:


PS C:\Users\Fernando\Documents\Blog> Get-Content .\test01.txt
Esto es un test
Y este es el primer archivo
PS C:\Users\Fernando\Documents\Blog>
PS C:\Users\Fernando\Documents\Blog>
PS C:\Users\Fernando\Documents\Blog> Get-Content .\test02.txt
Esto es un test
Y este es el archivo 2

Y ejecutamos el cmdlet con los siguientes parámetros:

PS C:\Users\Fernando\Documents\Blog> Compare-Object $(Get-Content .\test01.txt) $(Get-Content .\test02.txt)

En este caso los 2 parámetros son los contenidos de los archivos test01.txt y test02.txt. El resultado es el siguiente:

PS C:\Users\Fernando\Documents\Blog> Compare-Object $(Get-Content .\test01.txt) $(Get-Content .\test02.txt)
InputObject                                                 SideIndicator
-----------                                                 -------------
Y este es el archivo 2                                      =>
Y este es el primer archivo                                 <=

La columna InputObject nos da las diferencias y con la columna SideIndicator podemos ver en que archivo está ese elemento de InputObject.

Otra aplicación interesante de este objeto es la de encontrar las diferencias entre directorios, es decir cuando tenemos 2 carpetas que tienen una gran cantidad de archivos en común y queremos saber cuales están en uno y en el otro no y viceversa. Para esto podemos usar este mismo cmdlet pero cambiamos los parámetros:

Compare-Object $(Get-ChildItem X:\dir1 -name) $(Get-ChildItem \\recurso01\dir2 -name)

En este caso usamos el cmdlet Get-ChildItem para hacer un dir de los directorios (el segundo de ellos un recurso compartido) y con el parámetro -name traermos solo el nombre de los archivos.