Entradas

Mostrando las entradas etiquetadas como C#

Hello World with Monoberry

Imagen
  Monoberry is a library that allow the native application developing with Mono and C#, in the actual version, only graphic applications can be developed with Open GL ES 1.0 and 2.0, besides an access to the BlackberryPlatform Service libraries. Tools required to Develop with Monoberry To develop with Monoberry, the following tools are required: -           Visual Studio 2012 (Professional, Premium o Ultimate) - http://www.microsoft.com/visualstudio/eng/downloads#d-2012-editions -           Blackberry OS 10 Native SDK - http://developer.blackberry.com/native/download/ -           Blackberry OS 10 Emulator   - http://developer.blackberry.com/native/download/ -           Monoberry Tools for Visual Studio - http://visualstudiogallery.msdn.microsoft.com/b4803586-b446-4df1-8254-978f00...

Silverlight y ASP.NET MVC

Imagen
Desde hace unos días, estoy hacienda una aplicación web un tanto simple que sirva para administrar los datos de otra aplicación móvil. Por lo cual se me ocurrió realizar una aplicación de una sola página, para así evitar que el usuario se tenga que moverse entre páginas muy similares que restan usabilidad al sistema. La primera opción para realizar tal tarea fue usar JavaScript junto con JQuery pero, en medio camino se empezó a complicar la cosa y tome la decisión de usar Silverlight para completar la tarea (en otro post expondré con mayor profundidad el por qué tome tal decisión). Ya con la decisión tomada, solo queda ponerse manos a la obra, pero para el presente post solo realizare una pequeña introducción de como unir ASP.NET MVC y Silverlight ya que pretendo realizar otros post donde entraremos a más detalle. Crear el entorno de Trabajo Nuestro primer paso será crear una aplicación en ASP.NET MVC habilitando las opciones para utilizar HTML5 como opción predeterminad...

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.P...

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 I...

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...

Conseguir información de un Objeto y de un método con Expresiones Lambda.

En algún momento en nuestra vida de programador, vamos a necesitar extraer el nombre de la clase de algún objeto o de un método. Es ahí donde estos 2 métodos nos pueden ayudar. El primero recibe un objeto y extrae el nombre de la clase: protected string GetClassName( Expression<Func<object>> classToTest ) { string className = classToTest.Body.Type.Name; //Add something interesting! Return className; } Y para llamarlo usaremos la siguiente sintaxis: public class SomeClass { public int SomeMethod( object value ) { string name=this.GetClassName( ( ) => this ); } // Other Methods ... } Nuestro segundo método, recibe un método, que no tiene parámetros y obtiene su nombre y clase a la que pertenece: protected string GetMethodName( Expression<Action> methodToTest ) { string className = ( methodToTest.Body as MethodCallExpression ) .Method.DeclaringType.Name;...

Dialogo Modal en MVVM

Imagen
Los Diálogos Modales están entre los elementos más complejos de usar en el patrón MVVM principalmente por la necesidad de separación de ocupaciones que se debe de cumplir. Ciertamente se puede manejar de una manera fácil el manejo de los Diálogos Modales desde la vista y en el caso que deseemos hacer la llamada desde el ViewModel, podemos usar eventos, pero ciertamente no es lo recomendable. Para solucionar el problema se tiene las siguientes opciones: -           Usar el patrón Mediador -           Implementar el dialogo como un servicio En el presente post voy a usar la segunda opción pero omitiendo más que todo el uso del Inversor de Control, ciertamente no es una solución al 100% completa por que se genera tiene un ratio mayor de acoplabilidad, pero hay que tomar en cuenta que en la mayoría de los proyectos no es primordial tal característica y la inversión de tiempo requerida (más q...