22 diciembre 2006

Mudanza

Bueno, este tiempo sin publicar se ha debido a que estaba de mudanza. Me ha costado un poco de tiempo preparar el nuevo dominio (propio), el nuevo wordpress (propio), backup, restore, etc.....

Espero que no les cause mucha molestia cambiar favoritos y feeds. En este nuevo sitio espero poder ofrecer más servicios.

La nueva web la podéis encontrar en NetCódigo

Por cierto, FELIZ NAVIDAD a todos

15 diciembre 2006

Liberado SP1 de Visual Studio 2005

Hoy estamos de liberaciones. Microsoft ha liberado el primer service pack para las distintas versiones de Visual Studio 2005. A saber:

Con este service pack ya se soporta Windows Vista ...
El documento (release notes) lo puedes encontrar aquí.

Creo que es todo.

ASP.NET AJAX 1.0 RC disponible

Microsoft ha liberado la primera release candidate de Ajax (la versión definitiva cada vez más cerca).Entre las nuevas características que podemos encontrar se encuentra:
  • Soporte de globalización
  • Invocación dinámica de proxies para servicios web
  • Cambios en el namespace y assemblies para asegurar la compatibilidad entre Ajax 1.0 y el futuro Ajax 1.0 incluido en el futuro Orcas.
Se supone que la versión definitiva saldrá en enero e incluirá instalación sencilla para sistemas no windows.Tambien se ha liberado ASP.NET AJAX Control Toolkit Released for ASP.NET AJAX RC (importante)
Aquí dejo los links de todo.

Bien esto parace que esto de las betas ha llegado a su final y llega el momento de la release definitiva.

09 diciembre 2006

Usar el UI (User Interface) de Office 2007

A partir de ahora Microsoft obliga a aquellos desarrolladores o empresas que vayan a utilizar el mismo UI que se usa en Office 2007, también conocido como RIBONX UI, a licenciarlo.



Por lo que he leído, Microsoft ha pensado que si ha invertido tanto dinero en el desarrollo de esta interface, aquellos que quieran usarla deben seguir algunas pautas.


El licenciamiento es gratuito y perpetuo, salvo en aquellas aplicaciones que hagan competencia directa a la suite de Office 2007, a estas no se les otorgará la licencia. Además, se deberá seguir de manera estricta la guia de estilo de la interfaz de usuario de Office 2007 que Microsoft pone a nuestra disposición.


La verdad, no sé si Microsoft obra de la manera correcta. Hasta la fecha, siempre ha invertido mucho dinero en sus UI y nunca ha requirido licenciarlo, claro, hasta ahora nos podían denunciar por plagio o por lo que fuera. Si nos licencia, ya no podrá hacerlo (siempre que sigamos la guía).
Para más información visitar el sitio de Microsoft de Office UI Licensing.

04 diciembre 2006

WMI. Fuente inagotable de información

La definición de Microsoft de WMI es la que sigue. Instrumental de administración de Windows (WMI) es un componente del sistema operativo Windows que permite obtener acceso mediante programación a información de administración en un entorno empresarial. WMI en .NET Framework se basa en la tecnología WMI original y permite el mismo desarrollo de aplicaciones y proveedores, además de las ventajas que ofrece la programación en .NET Framework.En mi opinión, WMI es espectacular. Cualquier información que queráis obtener de cualquier sistema windows, WMI la proporciona, desde el nombre del sistema operativo de una máquina, pasando por la memoria ram que tiene, las tarjetas de red, configuración de cualquier cosa del sistema, performance, servicios, tareas, services packs instalados, software instalado, etc. etc. etc.... La arquitectura de WMI consta de los niveles siguientes: Los componentes de software cliente realizan operaciones mediante WMI, como leer detalles de administración, configurar sistemas y realizar suscripciones a eventos. El administrador de objetos es un intermediario entre los proveedores y los clientes que proporciona ciertos servicios esenciales, como la publicación y suscripción estándar de eventos, el filtrado de eventos, motor de consultas y otros servicios. Los componentes de software de proveedor capturan y devuelven datos activos a las aplicaciones cliente, procesan llamadas a métodos procedentes de los clientes y vinculan al cliente con la infraestructura que se está administrando. A continuación muestro un pequeño ejemplo de cómo recuperar información con WMI y mostrarla en un treeview. Lo único extraño que pueden ver en el código es que no utilizo el TreeView que viene con Visual Studio sino uno de otro fabricante, simplemente lo he utilizado porque el de VS no permite retornos de carros, de resto todo normal. Simplemente recupero alguna información como nombre de máquina, microprocesador, video y discos. Pero ya digo, cualquier información del sistema se puede recuperar.

Código:


Imports System
Imports System.Management
Public Class WMI
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
' RECOPILACION DE DATOS
Me.InformacionGeneral()
Me.Micro()
Me.Video()
Me.Discos()
Me.UltraTree1.ExpandAll()
End Sub
Private Sub InformacionGeneral()
' INFORMACION GENERAL
Try
Dim searcher As New ManagementObjectSearcher( _
"root\CIMV2", _
"SELECT * FROM Win32_ComputerSystem")
For Each queryObj As ManagementObject In searcher.Get()
Dim _Node As New Infragistics.Win.UltraWinTree.UltraTreeNode
_Node.Text = "Nombre PC:" & queryObj("Name").ToString & ControlChars.CrLf & _
"Fabricante:" & queryObj("Manufacturer").ToString & ControlChars.CrLf & _
"Modelo: " & queryObj("Model").ToString & ControlChars.CrLf & _
"Tipo: " & queryObj("SystemType").ToString & ControlChars.CrLf & _
"Memoria: " & queryObj("TotalPhysicalMemory").ToString
Me.UltraTree1.Nodes(0).Nodes.Add(_Node)
Next
Catch err As ManagementException
MessageBox.Show("Error recuperando información WMI: " & err.Message)
End Try
End Sub
Private Sub Micro()
' MICROPROCESADOR
Try
Dim searcher As New ManagementObjectSearcher( _
"root\CIMV2", _
"SELECT * FROM Win32_Processor")
Dim _Cantidad As Byte
Dim _Node As New Infragistics.Win.UltraWinTree.UltraTreeNode
For Each queryObj As ManagementObject In searcher.Get()
_Node.Text = "Modelo:" & queryObj("Name").ToString & ControlChars.CrLf & _
"Velocidad:" & queryObj("CurrentClockSpeed").ToString & " Mhz." & ControlChars.CrLf
_Cantidad = +1
Next
_Node.Text = _Node.Text & "Cantidad: " & _Cantidad.ToString
Me.UltraTree1.Nodes(1).Nodes.Add(_Node)
Catch err As ManagementException
MessageBox.Show("Error recuperando información WMI: " & err.Message)
End Try
End Sub
Private Sub Video()
' VIDEO
Try
Dim searcher As New ManagementObjectSearcher( _
"root\CIMV2", _
"SELECT * FROM Win32_DisplayConfiguration")
Dim _Node As New Infragistics.Win.UltraWinTree.UltraTreeNode
For Each queryObj As ManagementObject In searcher.Get()
_Node.Text = "Modelo:" & queryObj("Caption").ToString & ControlChars.CrLf & _
"Frecuencia:" & queryObj("DisplayFrequency").ToString & ControlChars.CrLf
Next
Me.UltraTree1.Nodes(2).Nodes.Add(_Node)
Catch err As ManagementException
MessageBox.Show("Error recuperando información WMI: " & err.Message)
End Try
End Sub
Private Sub Discos()
' DISCOS
Try
Dim searcher As New ManagementObjectSearcher( _
"root\CIMV2", _
"SELECT * FROM Win32_DiskDrive")
Dim _Node As New Infragistics.Win.UltraWinTree.UltraTreeNode
For Each queryObj As ManagementObject In searcher.Get()
_Node.Text = _Node.Text & "Nombre: " & queryObj("Caption").ToString & ControlChars.CrLf & _
"Tipo:" & queryObj("InterfaceType").ToString & ControlChars.CrLf & _
"Particiones:" & queryObj("Partitions").ToString & ControlChars.CrLf
Next
Me.UltraTree1.Nodes(3).Nodes.Add(_Node)
Catch err As ManagementException
MessageBox.Show("Error recuperando información WMI: " & err.Message)
Catch err As Exception
End Try
End Sub
End Class

Si se fijan, lo único que hay que hacer es una query sobre la clase WMI que se quiere consultar. Y ahora se preguntarán, ¿como sabré qué clase es la que debo consultar para lo que yo quiero hacer? No hay problema, aparte de la documentación de MSDN Microsoft nos proporciona una herramienta que pueden bajarse aquí y que incluye todas las clases y objetos de WMI. Y no sólo eso sino además genera código VBScript, VB.Net y C# listo para usar.
Realmente creo que WMI es fantástico, yo, para controlar el hardware y software instalado en mi empresa, he desarrollado un servicio que se instala en las máquinas y que alimenta una base de datos informando de todo aquello que me interesa saber de mi parque informático. Ahora no tengo que ir máquina a máquina para saber que memoria tiene o por ejemplo saber cuan viejo es mi parque partiendo de los micros instalados. Antes lo llevaba en papel y relamente era inoperante.
Espero que les sirva.