Como Listar los tipos de Fuente instalados, en un ComboBox

Otro tip… de una pregunta en los foros 🙂

Imports System.Linq
 
Public Class Form1
 
    Private Sub Form1_Load(sender As System.Object, e As System.EventArgsHandles MyBase.Load
        Dim RegKey = "Software\\Microsoft\\Windows NT\\CurrentVersion\\Fonts"
        Dim Fuentes = From aif In My.Computer.Registry.LocalMachine.OpenSubKey(RegKey).GetValueNames
                                 Select My.Computer.Registry.LocalMachine.OpenSubKey(RegKey).GetValue(aif)
        Me.ComboBox1.Items.AddRange(Fuentes.ToArray)
        Me.ComboBox1.SelectedIndex = 1
    End Sub
End Class

Saludos,
PepLluis,

Julia Lerman, Aun no sabes sobre Code First?

CodeFirst

No te pierdas la oportunidad de conocer un excelente punto de entrada a EntityFramework.

Mucho habia oido hablar de Entity, pero confieso que no he tenido una vision realista del mismo hasta completar la lectura de esta excelente guia.

Sobre todo Code First ayudara a simplificar la rampa de aprendizaje y como punto de entrada a dominar ciertos contextos de datos de forma racional en escenarios típicamente complejos para algunos desarrolladores.

Os dejo el enlace de Julia : http://www.oreillynet.com/pub/au/3141

Otro Link al Libro : http://shop.oreilly.com/product/0636920022220.do?sortby=publicationDate

Saludos,
PepLluis,

Enviar cadena hexadecimal en c#

Mario me pregunta :
<Espero me puedas ayudar necesito escribir una cadena en un cuadro de texto en valores hexadecimales y enviarlos por un puerto serial y capturar la respuesta y convertirla en hexadecimal ejemplo: enviar 7E000408014E4464 (son valores hexadecimales) capturar la respuesta (también es una cadena)y convertirla a hexadecimal mostrándola en un texbox ya convertida. estoy utilizando C# con sharpdevelop.>

Respuesta : (C# Visual Studio) 🙂

using System;
using System.Windows.Forms;
 
namespace WindowsFormsApplication1
{
 
    public partial class Form1 : Form
    {
        System.IO.Ports.SerialPort port = new System.IO.Ports.SerialPort();
        public Form1()
        {
            InitializeComponent();
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            string toSend = "454647484950";
            for (int ndx = 0; ndx <= toSend.Length-1; ndx+=2)
            {
                byte asc = Convert.ToByte(toSend.Substring(ndx, 2), 16);
                char sendChar = Convert.ToChar(asc);
                port.Write(sendChar.ToString());
            }
            //
            // No olvideis que 'E' es '69' en decimal y '45' en Hex
            byte[] Recibidos = { 69,70,71,72,73};
            string hexInString = "";
            foreach (int val in Recibidos)
            {
                hexInString+=String.Format("{0:x2}",val);
            }
        }
    }
}

Saludos,
PepLluis,

Windows 8 Developer Terminology – Spanish

Hasta el dia 22, Microsoft nos ofrece la oportunidad de participar en la terminologia para la version Española de Windows 8, para revisar y hacer comentarios sobre los mismos.

Podreis participar simplemente haciendo ‘login’ con vuestro LiveId… os lo recomiendo. Pero no espereis mucho solo quedan 9 dias 🙂

http://www.microsoft.com/Language/mtcf/mtcf_home.aspx?langid=2239&cult=es-ES&WT.mc_id=dpx

Espero lo considereis interesante.
PepLluis,

Windows Phone y SQL CE

Una de las características atractivas de las aplicaciones para Windows Phone, es la posibilidad de incorporar almacenamiento local en SQL CE. Mucho se discute y es sabido que existen diversas técnicas, pero como siempre muchos de vosotros preguntáis por la “Chuleta” paso a paso o pequeño laboratorio guía para iniciarnos en su uso.

La idea principal es utilizar “SQL Metal” para construir nuestro “Data Context”, nuestra clase se acceso a datos se creara a partir de nuestra BD. En tono de humor será nuestro “Entity Framework” trabajando en invertido J

Aquí tenéis el laboratorio de introducción paso, paso… espero que os sea asequible i de utilidad.

Crear la Base de datos.
Desde el explorador de servidores de Visual Studio, agregaremos una conexión :

WinPhoSql1
Seleccionaremos SQL CE

WinPhoSql2

Pondremos nombre a nuestra base de datos

WinPhoSql3

Seleccionar “Crear”

WinPhoSql4
Crear La tabla:

WinPhoSql5WinPhoSql6

WinPhoSql7

WinPhoSql8

Con esto finalizaremos la creación de nuestra BD “WinPhoneData” y la tabla “LocalizationData”.

El siguiente paso consistirá en crearnos la clase con el contexto de datos para nuestra aplicación.

En primer lugar deberemos invocar el “CMD” o “Power Shell”, dependiendo de vuestros gustos. Los siguientes pasos serán muy sencillos, pues requerirán simplemente dos mandatos:

Es importante observar la Invocación a SQL Metal, pasándole las ubicaciones de la “sdf” anteriormente creada y el lenguaje destino para la generación de nuestra clase de acceso a datos.

1) Añadir a nuestro Path la referencia a “\Program Files\Microsoft SDKs\Windows\v7.0A\bin”

2) sqlmetal d:\WinPhoneData.sdf /language:vb /namespace:WinPhoneData /pluralize /code:d:WinPhoneData.vb

WinPhoSql9
Una vez ejecutados dichos comandos, tendremos nuestra “WinPhoneData.vb” lista para ser utilizada en nuestro Windows Phone Project.

Por lo tanto nuestros próximos pasos serán muy fáciles, Desde nuestra instancia de Visual Studio, crearemos un nuevo proyecto “Windows Phone”.

image

Evidentemente seleccionaremos el SO 7.1.

WinPhoSql10

Para que todo ruede a la perfección no deberemos olvidar las referencias a System.Data.Linq

WinPhoSql11
Desde las propiedades del proyecto, seleccionaremos la de añadir un elemento existente:

WinPhoSql12

Agregando la clase generada anteriormente.

WinPhoSql13

La clase generada por Sqlmetal, no es 100% compatible, pues implementa ‘IDBConnection’ deberemos editar “WinPhoneData.vb” y eliminar los sub’s “New’s” sobrecargados, para conexiones ‘Idb’. 

        Public Sub New(ByVal connection As System.Data.IDbConnection)
            MyBase.New(connection, mappingSource)
            OnCreated()
        End Sub
 
        Public Sub New(ByVal connection As System.Data.IDbConnection,
                       ByVal mappingSource As System.Data.Linq.Mapping.MappingSource)
            MyBase.New(connection, mappingSource)
            OnCreated()
        End Sub

Una vez completado este punto, podremos compilar la aplicación. Sin ningún tipo de problemas. Luego es tarea de cada cual adaptar los requerimientos navegando a través de sus propiedades y métodos… por ejemplo: 

Partial Public Class MainPage
    Inherits PhoneApplicationPage
 
    ' Constructor
    Private Dbas As WinPhoneData.WinPhoneData
    Public Sub New()
        InitializeComponent()
        InitializeData()
    End Sub
 
    Sub InitializeData()
        Me.Dbas = New WinPhoneData.WinPhoneData("Data Source=isostore:\GeoLocData.sdf")
        If Not Dbas.DatabaseExists Then
            Dbas.CreateDatabase()
        End If
        ' Simular una nueva entrada a la tabla de localizacion
        Dim c1 = New WinPhoneData.LocalizationData With {.Date = DateTime.Now, .Latitude = 10, .Longitude = 15, .Speed = 11}
        Dim ls As New List(Of WinPhoneData.LocalizationDataFrom {c1}
        Dbas.LocalizationDatas.InsertAllOnSubmit(ls)
        Dbas.SubmitChanges()
    End Sub
 
End Class

Espero que pequeño paso a paso os ayude a completar vuestra primera aplicación para Windows Phone y almacén SQL Ce en local. Si la descripción anterior no es suficiente, no dudéis en solicitármelo y puedo adjuntaros el documento en cuestión a titulo de Guía Rápida.
Saludos,
PepLluis,