Entradas

Mostrando entradas de junio, 2012

Introduccion a Powershell

Imagen
Powershell es un framework de automatización de tareas que viene con una línea de comandos que posee su propio lenguaje de script; Powershell esta construido sobre .NET Framework y posee además acceso completo a COM y WMI por lo cual tendremos bastante poder en nuestras manos al usar Powershell.

Además de la línea de comandos, Powershell viene con algo parecido a un IDE, denominado ISE (Integrated Scripting Environment) que facilita de gran manera la creación de Scripts. Pero si deseamos un IDE mas completo para la creación de Scripts tenemos la herramienta PowerGUI que se la pueden descargar de manera gratuita de http://powergui.org/index.jspa



Powershell la estar escrito sobre .NET tiene la posibilidad de consumir objetos .NET, por lo tanto mucho del conocimiento adquirido para desarrollar con el framework .NET lo podremos reutilizar. Ya con las herramientas instaladas, hagamos un pequeño script que ejecute un programa de consola y que nos muestre el resultado en pantalla, por lo tanto …

Clase BaseViewModel

Para implementar el patron MVVM, debemos hacer que nuestras clases ( del ViewModel ) implementen de la la interface INotifyPropertyChanged, que sirve para notiticar a los clientes (bindings) que el valor de la propiedad ha cambiado, por lo cual para cada ViewModel que hagamos debemos cumplir la firma de la interface lo cual se vuelve una tarea repetitiva y para tal efecto lo mas conveniente es crear una clase base abstracta que realize la implementacion de la interface y de la cual nosotros heredemos cada vez que se desee crear un ViewModel. La clase es como sigue:

using System; using System.ComponentModel; using System.Linq.Expressions; using System.Diagnostics; using System.Reflection; namespace RegistryViewer { public abstract class BaseViewModel : INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged; public virtual void NotifyPropertyChanged( string propertyName ) { if ( this.PropertyChanged != null ) …

Modern UI Style para WPF

Imagen
Desde que salió Windows Phone 7 con Metro Style Modern UI y posteriormente Windows 8, se empezó a vislumbrar el estándar de interfaces de usuarios que iban a ser la norma. Con rasgos minimalistas, es un lenguaje de diseño basado en tipografía, que prioriza una navegación a través del texto. Metro esta basado en el “Estilo Tipográfico Internacional” o “Estilo Suizo” que posee las siguientes características (Wikipedia):

“Las características del estilo son el de la unidad en el diseño lograda a través de la asimetría en la composición, el uso de una malla tipográfica y una cuadrícula totalmente matemática. El estilo es asociado también a una preferencia por la fotografía en lugar de ilustraciones o dibujos.


Se presentaba la información basándose en la claridad, la legibilidad y la objetividad, usando tipografías sin serif como la Akzidenz Grotesk. Este uso de la tipografía reflejaba el espíritu progresista de la época. Algunos de los primeros diseñadores del Estilo Tipográfico Internacio…

Buscar Software Instalado a través del Registro de Windows

Imagen
Algunas veces es necesario saber que software esta instalado o ha sido instalado en una maquina, por ejemplo al momento de realizar una auditoria informática. Por lo cual tener una pequeña herramienta que nos facilite el trabajo de recolección y organizado de los datos seria bastante útil. Entonces solo queda ponerse manos a la obra, para lo cual primero vamos a crear una aplicación WPF en Visual Studio y luego vamos a agregar la clase DelegateCommand y otra clase llamada ViewModel. Nuestro siguiente paso será crea una función que se ocupe de buscar las llaves en el registro que contengan información de los productos que se encuentra en "SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\XXX\Products\" donde XXX varia de maquina en maquina, por lo cual nuestra función se ocupara de entregarnos la llaves bien formadas:
public void LoadRegistryEntries() { RegistryKey rk = Registry.LocalMachine.OpenSubKey( @"SOFTWARE\Microsof…