Archivo

Archive for 29 enero 2009

[IE8] Mi primer contacto ya con la versión RC1

enero 29, 2009 Deja un comentario

Seguramente ya hace un buen rato que saben que Microsoft estaba cocinando un nuevo Explorador, desde sus primeras versiones Beta leí varios post sobre como va este nuevo Explorador Web. No me había atrevido a instalarlo porque mi experiencia con las versiones Beta nunca han sido buenas, por lo regular los instalo hasta el RC1 y como ya se lanzo la versión RC1 de IE8 pues aquí les cuento como me va. (Además de que mi perspectiva de las versiones Beta esta cambiando gracias a Windows 7 que lo instale y me agrado bastante).

Primero nos vamos a la página esa que dice Windows Internet Explorer 8 Candidato para versión comercial 1 para Windows Vista y Windows Server 2008 para descargarlo. Voy a ser un poco muy explicito sobre lo que hice :P. Como todo buen programa de Microsoft nos manda un mensaje para prevenir que guardemos los archivos y cerremos todos los programas por si ocurre un error (que esto casi no pasa :P).

I1

Ya saben aquí viene la opción de Siguiente en donde nos manda a la siguiente Formulario con este aspecto.

I2

Seguramente en esta parte la mayoría de los usuarios nunca se detienen más de un minuto, lo que indica que no leen los términos de la licencia (les recomiendo que le echen un vistazo, aunque sea Express).  Bueno luego de leer detalladamente estos términos y Aceptarlos tenemos esto:

I3

Sobre las actualizaciones, creo que la imagen lo dice todo, ya casi para terminar tenemos el Form que se muestra mientras descarga, instala y configura el nuevo Explorador de Microsoft.

I4 Esta parte me recuerda mucho a la instalación de Vista, Windows 7 y de Live, pero bueno aquí se tarda uno 5 minutos o menor, tengo que decir que este tiempo se reduce mucho a comparación de cuando instalamos IE7 podía ir a prepararme unas sincronizadas y regresar a tiempo.

i5Hasta el momento todo normal, nada nuevo solo el tiempo de instalación y actualización es mucho menor. Mi primera impresión buen a decir verdad. Entonces reinicia la PC, inicia y lo primero que hago es abrir claro IE. Aquí es donde me encuentro con un mensaje un poco extraño ya que se supone acabo de Instalar y Actualizar y el mensaje es el siguiente:

errorIE8Que como pueden observar me pide que actualice de nuevo, es decir; tengo que actualizar una actualización o algo así :P. Bien al parecer se trata de un error de complemento con una barra de herramientas, las indicaciones dicen que abra IE8 y presione F12, lo hice y parece que todo va bien. Luego configuro IE8 que deje todo tal y como estaba en IE7. Bueno hasta aquí lo de la instalación y el extraño mensaje de actualización. Lo seguiré probando y les platico como va.

Descarga:

Internet Explorer 8 RC1 para Windows XP.

Internet Explorer 8 RC1 para Windows Vista y Windows Server 2008 64 bit Edition

Etiquetas de Technorati: ,,
Anuncios
Categorías:Betas, IE, IE8

[SQL] Hablando de SMO (algo que no sabia :S)

enero 28, 2009 1 comentario

Bien, iniciemos por saber que es SMO y para que nos sirve.

¿Que es SMO?

Es un Modelo de Objetos de Microsoft .NET que viene incluido en las herramientas cliente de SQL Server 2005 en un ensamblado llamado Microsoft.SqlServer.Smo.dll.

SMO nos permite manipular mediante programación las versiones 2005, 2000 y 7.0 de SQL Server. Toda la funcionalidad con la que contamos en SQL Management Studio la encontramos disponible en SMO. En realidad nos ofrece varias funcionalidades más que Management Studio, y el 99% de todas las funciones y la funcionalidad de SQL Server puede manipularse desde SMO. (quiza mucho más de las que ofrece Management Studio).

Vamos a ver si esto es cierto  o mínimo como usar SMO desde Visual Studio. Para comenzar a trabajar con SMO, lo primero que debemos hacer es agregar una referencia a un par de ensamblados que son MIcrosoft.SqlServer.Smo y Microsoft.SqlServer.ConnectionInfo. Bien trabajaremos con una aplicacion de Windows Form y agregamos los siguientes controles:

Control Nombre Texto
TextBox txtNombre  
TextBox txtUser  
TextBox txtPassword  
Label lblServidor Servidor
Label lblUser Usuario
Label lblPassword Contraseña
CheckBox CheckAutenticacion  
Boton btnConectar Conectar
GroupBox groupAutenticacin  

Bien organizamos estos controles para que el diseño de nuestro Formulario quede de la siguiente manera

image

Lo que haremos en este ejemplo es comprender los objetos ServerConnection y Server de SMO para ello vamos a conectarnos a una instancia de SQL Server empleando el objeto ServerConnection y luego el objeto Server para recuperar la edición,  la versión y el nombre de la instancia.También la aplicación preguntará al usuario si desea usar autenticación integrada. El código es el siguiente:

 private void btnConectar_Click(object sender, EventArgs e)
        {
            //hacemos uso del objeto de conexion
            ServerConnection conexion = new ServerConnection();
            //asignamos el nombre de la instancia
            conexion.ServerInstance = txtServer.Text.ToString();

            //determinamos si existe seguridad integrada
            if (checkAutenticacion.Checked == false)
            {
                //uso de la seguridad sql
                conexion.LoginSecure = false;
                conexion.Login = txtUser.Text.ToString();
                conexion.Password = txtUser.Text.ToString();

            }


            //realizamos la conexión y regresamos los resultados
            try
            {
                Server miServer = new Server(conexion);

                MessageBox.Show("No esta conectado a: " + miServer.Name + System.Environment.NewLine +
                     "Información de edición:  " + miServer.Information.Edition +
                     System.Environment.NewLine +
"Información de versión: " + miServer.Information.Version, "Demo de SMO");
            }
            catch (SmoException exSMO)
            {
                MessageBox.Show(exSMO.Message);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
                
            }
        }

        private void checkAutenticacion_CheckedChanged(object sender, EventArgs e)
        {
            if (checkAutenticacion.Checked == true)
            {
                foreach (Control c in groupAutenticacin.Controls)
                {
                    c.Enabled = false;
                }
            }
            else
            {
                foreach (Control c in groupAutenticacin.Controls)
                {
                    c.Enabled = true;
                }
            }
        }

Y tenemos como resultado:

imageComo se pueden dar cuenta estoy usando la versión Express de SQL y que se encuentra en mi  maquina, Con esto iniciamos a platicar de SMO, en estos días estaré platicando un poco más de esto y principalmente para que nos sirve, por el momento les dejo este ejemplo que es como un Hola Mundo.

 

Etiquetas de Technorati: ,,

[VSTO] Manejando Estilos de texto en Word

enero 28, 2009 Deja un comentario

Este es el primer post de una serie (espero que sea larga) en donde hablare de como trabajar un poco con VSTO desde .NET, realmente son ejemplos sencillos pero espero que les sean de utilidad sobre todo cuando trabajan con documentos de Office y necesitan optimizar algunos procesos. Iniciamos con el los Estilos en Word

¿Cómo asignar un Estilo rápido a un párrafo en Word?

Public Sub AsignarEstilo(ByVal doc As Word.Document, ByVal nomEstiloRapido As String, ByVal numParrafo As Integer)
        Dim s As Word.Style

        For Each s In doc.Styles
            If s.QuickStyle Then
                If s.NameLocal = nomEstiloRapido Then
                    doc.Paragraphs(numParrafo).Range.Style = s
                End If
            End If
        Next
    End Sub

Explicando el método. Recorremos todo el arreglo de estilos con los que cuenta un Documento de Word, utilizando la propiedad QuickStyle para identificar los estilos rápidos, como el método recibe el nombre del Estilo rápido lo comparamos y para asignarlo al párrafo que le indicamos cuando llamamos al método.

Etiquetas de Technorati: ,,,,

[XNA] Introducción a los juegos multijugador (1/?)

enero 25, 2009 3 comentarios

Los juegos multijugador online, son difíciles de manejar desde código. Pero esto en XNA es diferente ya que no debemos preocuparnos tanto por la comunicación entre las PC’s y las consolas de Xbox 360. Esto porque XNA encapsula toda esta complejidad en un marco de conexión.

¿Por qué son difíciles los juegos online desde código?

Porque hay muchos más problemas para hacerle frente a cosas como: el programa que recibirá los mensajes del anfitrión o de otros jugadores, enviar mensajes, el proceso de entrada de jugador local, llevar a cabo la inteligencia artificial, física, cálculos y al mismo tiempo no dejar congelada la pantalla.

Como soluciona esto XNA

XNA nos ayuda con la mayoría de estos problemas de comunicación, ya que nos proporciona los medios para controlar el flujo de los mensajes entre los agentes para garantizar que los mensajes no se pierdan y que todos los mensajes lleguen en el mismo orden en que fueron enviados. Sin embargo aun tenemos que resolver otros problemas.

Aunque la codificación de un juego multijugador completo podría ser difícil, los pasos básicos son simples para la creación de un juego multijugador en donde varios jugadores se puede conectar. Existen cuatro pasos para un juego multijugador:

  1. Registrar un jugador (en un equipo local o remoto)
  2. Crear un periodo de sesiones, así como el establecimiento de sus propiedades
  3. Esperar a otros jugadores a unirse
  4. Cambiar el estado de la sesión a “Play”

Ahora vamos a ver como crear una clase sencilla, que nos servirá para aprender las bases de como crear un juego en red en XNA.

Todo inicio en el año 2002 cuando Microsoft lanzo lo que conocemos hoy como Xbox LIVE, en donde la intención principal es proporcionar un servicio en línea para la distribución de los contenidos de juegos (demos, trilers y contenidos extras de cada juego como mapas) y la conexión de los jugadores en el Xbox. Fue en el año de 2007 donde Microsoft amplio este servicio para Windows con el lanzamiento de Windows LIVE. Desde XNA podemos conectarnos a ambos servicios. XNA encapsula toda la manipulación de los perfiles en Vivo con el espacio de nombres GamerServices, lo que hace más fácil la creación de cuentas, conectarse a un perfil y también utilizar muchos dispositivos en vivo, así como la guía de pantallas para manipular la información del jugador.

La forma más sencilla de acceder a estos elementos es a través  del GamerServicesComponent que nos permite por ejemplo responder a la interacción del usuario, por ejemplo: la presentación de la Guía LIVE cuando  el usuario presiona Start.

Pero vamos a ver esto con un ejemplo sencillo. Comencemos creando un nuevo proyecto de tipo Windows Game al que llamaremos XNADemo. A continuación abrimos la clase Game1.cs y vamos a incluir la siguiente línea de código en el constructor de la clase, justo después de la línea que establece el contenido del directorio raíz.

//Agregamos el Componente que hace referencia a nuestro juego
Components.Add(new GamerServicesComponent(this));

Si ahora ejecutamos nuestra juego y como no disponemos de un perfil en LIVE configurado para inicio de sesión automático nos muestra la siguiente pantalla para crear un perfil.

image(Si  No se muestra esta pantalla presione la tecla Inicio)

Aquí tenemos 2 opciones, que es la de crear un nuevo perfil o exportar uno existente. (Para mostrar el funcionamiento crearemos un nuevo perfil). Entonces seleccionamos Crear perfil nuevo

image (Asignamos un nombre a nuestro perfil)

Al dar un nombre a nuestro perfil, damos clic en Enviar (Presionamos A en caso de trabajar con el Xbox 360). Este nombre de perfil (que puede modificar más adelante) se utilizará para identificar cuando estés  jugando juegos en red.

y después de esto nos muestra una pantalla con 3 opciones.

image

(Guardar Perfil del Jugador)

La primera opción nos permite unirnos al sitio de  Windows-LIVE . Después podemos personalizar nuestro Perfil (por ejemplo, el perfil de imagen), según nuestras preferencias. Podemos cerrar la ventana haciendo clic en el botón Listo.

Ahora damos clic en Listo, y vamos a trabajar con nuestra clase para manejar los estados de sesión para poder incorporarlos a un juego. Pero esto lo vemos en otro Post 😛

Etiquetas de Technorati: ,,,

Microsoft Office a precio especial sólo para Universitarios

enero 22, 2009 Deja un comentario
Si aun no cuentas con la versión original de Microsoft Office Ultímate 2007, esta es tu oportunidad aprovecha los descuentos que ofrecen y descárgalo por solo $499
 

Para mas información comunícate al 52 67 21 12 opción 1 ó 01 800 849 9998

Interoperabilidad entre VSTO y VBA

enero 21, 2009 1 comentario

Muchas veces cuando trabajamos con código VBA para los objetos de Office nos topamos con algunos problemas, tal vez porque no existen funciones con las que estamos acostumbrados a trabajar en .NET como un CType, un CAST o algo parecido. Además de que resulta un tedioso revisar todos los objetos o CommandBars para los objetos de Office 2007.

Es aquí en donde hacemos uso de una de las nuevas características de Visual Studio 2008 y la  ultima versión de Visual Studio Tools for Office que nos permite expandir nuestro código de VBA o en su caso crear un Add para un documento  con funciones previas de unas macros o lo que se les ocurra hacer, bueno les digo como hacer esto de manera sencilla.

1.- Creamos un Documento de Excel y creamos una tabla con “X” datos, que se ve más y creamos un Gráfico de estos datos para que quede más  o menos así:

image

Luego nos vamos a la parte de Visual Basic en la parte de programación y escribimos una función que nos diga que tipo de Gráfico es, que es más o menos así

Public Function NombreGrafico() As String
    Dim graf As Chart
    Set graf = ThisWorkbook.ActiveSheet.Shapes(1).Chart
    NombreGrafico = CSng(graf.ChartType)
End Function

Si ejecutamos esta función nos regresa solo un numero que corresponde al tipo de Grafico que elegimos.

image image

Y es aquí en donde vamos a ver que es lo que podemos hacer con esta Interoperabilidad entre VSTO y VBA. La interoperabilidad entre estas dos tecnologías consiste básicamente en la comunicación y utilización del código que generamos. Se puede comunicar una función de VBA en VSTO y viceversa, es decir; existen 2 maneras de comunicarnos entre si, vamos a ver de que se trata.

La Primera Llamar una función de VBA desde el Visual Studio 2008 (VSTO)

Para realizar esto tenemos que trabajar con una copia de un documento en este caso el que acabamos de hacer con la función de NombreGrafico. Para poder hacer uso de este documento es necesario que lo guardemos como un archivo de Excel habilitado para macros. Mi archivo lo llame ExcelDemo. Ahora lo voy a abrir desde el VS 2008, para esto creo un proyecto de tipo Libro de Excel 2007 pero selecciono la opción Copiar un documento existente y busco el que guarde (recuerden cerrar el archivo con el que vamos a trabajar)

imagen4

Damos clic en Aceptar y nos realiza una copia del documento en la raíz de nuestro proyecto. Ahora podemos comenzar a trabajar con este. Podemos llamar al método que creamos en VBA desde Visual Studio, para esto solo cuando inicie mandaremos el mensaje con el nombre del grafico, entonces escribimos el siguiente código:

Private Sub ThisWorkbook_Startup(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Startup
        MessageBox.Show(Me.Application.Run("NombreGrafico").ToString())
    End Sub

Lo que nos manda un mensaje en pantalla con el numero 93, que corresponde al grafico si. Esta es la primera manera de llamar código entre uno y otro, lo cual trae desventajas porque como se pueden dar cuenta lo corremos como un texto y no tenemos ayuda del intellisense lo que ocasiona muchos errores sino se toman las medidas necesarias.

La segunda y la más importante es la de llamar código de VSTO desde VBA

Bien para esto, necesitamos habilitar una propiedad de nuestro documento en Visual Studio que se llama: EnableVbaCallers la cual especifica si los miembros públicos de la case serán visibles desde VBA al mismo tiempo de habilitar esta propiedad se habilita otra llamada ReferenceAssemblyFromVbaProject que especifica si se debe agregar una referencia a la bilbioteca de tipos del ensamblado al proyecto de VBA en el documento. Al habilitar estas propiedades el VS nos manda un mensaje con las siguientes indicaciones.

image

Lo que nos dice aquí, es que no se guardar el código en el documento ya que recuerden que estamos trabajando sobre una copia del documento original si queremos hacer esto tendremos que copiar el código que generamos y copiarlo en el documento original. Bueno ahora vamos a realizar un método que podamos llamar desde VBA, el código es el siguiente:

    Public Function TipoGrafico() As Excel.Chart
        Return Me.ActiveSheet.Shapes.Item(1).Chart
    End Function

Y ejecutamos nuestro proyecto y cuando abre nuestro archivo de Excel presionamos Alt+F11 para abrir la ficha de programación y si abrimos el código de Thisworkbook.vb podemos observar que genera el siguiente código

Property Get CallVSTOAssembly() As DemoExcel.ThisWorkbook

    Set CallVSTOAssembly = GetManagedClass(Me)

End Property

y para ver que funciona hacemos un método que use este código, y nos queda así:

Public Function TypoGrafico() As String

    Dim graf As Chart

    Set graf = ThisWorkbook.CallVSTOAssembly.TipoGrafico

    TypoGrafico = CSng(graf.ChartType)

End Function

Como se pueden dar cuenta es hace lo mismo que el anterior, pero nos podemos dar cuenta de que si funciona ya que tiene el nombre del método que creamos en VS

image

Espero que les sea de ayuda este post, es sencillo pero ilustrativo, ya estaré platicándoles más acerca de esto, ya que me encuentro trabajando en un proyecto sobre este tema.

Saludos.

Etiquetas de Technorati: ,,,

MSP Summit 2009 @Guadalajara – México

enero 20, 2009 Deja un comentario

El pasado fin de semana se llevo a cabo el MSP Summit 2009, en donde tuve la dicha de asistir. Estoy muy contento de poder platicarles cual fue mi experiencia en este evento el cual se llevo a acabo los días 16 y 17 de Enero en la Ciudad de Guadalajara en el estado de Jalisco.

Pues bien, llegamos puntuales a la cita, el evento inicio el 16 a las 11 en punto con una serie de platicas. Iniciamos con la bienvenida por parte de Rubén, posteriormente Rodrigo Dìaz Concha un MVP de Guadalajara nos platico un poco sobre Silverlight y Windows Azure y para buena fortuna regalo un Vale de Descuento de $1,000 USD para asistir a un curso del Silverlight Tour Workshop en Español en México.

IMG_1067

Posteriormente pasamos al concurso de Demos en donde participe con la Demo Interoperabilidad COM entre VSTO y VBA. La Participación fue la siguiente:

  • Miguel Ángel – Web Services con Windows Azure
  • Noberto Rojas– Interoperabilidad COM entre VSTO y VBA
  • Ángel Cruz – BOT Microsoft Académicos
  • Felipe López – “Hola mundo++” en Visual Earth
  • Erick Ruiz – Creación de un SpyGadget para Windows Vista
IMG_1094 IMG_1096 IMG_1101
IMG_1108 IMG_1110

En este concurso pude descubrir muchas cosas, la primera demo de Miguel resulto muy interesante ya que es una nueva Tecnología, además de que la preparo y presento muy bien. Una demo que me gusto bastante es la que dio mi buen amigo darckchicles ya que nos mostro que tanto podemos explotar los Gadgets, al ser una mini aplicación que no solo consume recursos Web sino recursos de nuestra maquina. Las presentaciones de BOT que dio Ángel resulto de igual manera interesante por los alcances que pueden tener este tipo de aplicaciones. Por ultimo les platico del amigo Felixpe (Felipe) xD, el nos mostro lo que podemos hacer con los SDK que Microsoft ya hace mucho que puso a nuestra disposición y este fue el caso de Virtual Earth y lo que podes hacer con esto. Sobre mi demo ya estaré escribiendo sobre ese tema tengo varios dash sobre esto. (Espero que los participantes cuelguen las demos para revisarlas :D)

Ahh, se me olvida los premiso y los ganadores, aquí la lista de los primeros tres:

  1. Miguel – Smarthphone
  2. yo (xD) – Xbox 360
  3. Erick – Visual Studio 2008

IMG_1010

Bueno esto fue a grandes rasgos lo que ocurrió en el primer día, el segundo día fuimos a la conocer como es que se elabora el tequila y sus diferentes tipos. Aprendimos desde como cosechan o recolectan el agave hasta el proceso de destilación del mismo para obtener los diferente tipos de tequilas que conocemos. Este Summit fue mucho mejor que el pasado y debo decir que me la pase muy bien,. Quizá falto un poco de más convivencia o algún tipo de actividad para conocer más a todos los MSPs. Espero que pueda asistir al próximo y que sea mucho mejor que este.

 

IMG_1159 IMG_1411

@norberto