Archivo de la categoría: Miscellaneous

Saber de los Hijos de un MDI

Una pregunta frecuente sobre los «Multiple Document Interfaces’ es como saber los forms que estan cargados en un momento determinado. Aqui os dejo un breve y como siempre ‘Simple’ ejemplo, para tener acceso a la lista de documentos cargados en un MDI.


Por supuesto faltara recorrer la lista de items en el ‘menuItem’ para procesar las decisiones en funcion a los forms cargados, pero supongo que esa es la parte facil… supongo bien?…


Cualquier sugerencia o comentario sera bien recibido,
Saludos,
Pep Lluis,

Public Class Form1   
  ‘   
  ‘Al cargar el form
   
  ‘
   
  Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

       ‘El form1 se convierte en un MDIContainer
        Me.IsMdiContainer = True
        ‘Crear un nuevo boton para añadir
        Dim MiBoton As New Button
        MiBoton.Text = «Añadir»
        MiBoton.Dock = DockStyle.Bottom
        ‘Apuntar a la funcion de añadir al hacer click al boton
        AddHandler MiBoton.Click, AddressOf NuevoFormHijo
        ‘Añadir un boton al final del MDI
        Me.Controls.Add(MiBoton)
        ‘Crear un nuevo Menu
        Dim MiMenu As MainMenu = New MainMenu
        Me.Menu = MiMenu
        ‘Anadir item de forms cargados al menu
        Dim misForms As MenuItem = MiMenu.MenuItems.Add(«&Forms Cargados»)
        ‘este item debera visualizar la MdiList
        misForms.MdiList = True
    End Sub
   
    ‘Añadir un nuevo form al contenedor MDI
   
    Private Sub NuevoFormHijo(ByVal sender As Object, ByVal e As System.EventArgs)
        Dim UnHijoMas As New Form
        UnHijoMas.Text = «He Nacido a las : « + System.DateTime.Now
        UnHijoMas.MdiParent = Me
        UnHijoMas.Show()
    End Sub

End Class


 

Visual Studio, LoaderLock con proyectos que Utilizan DirectX o WinSocks.

«LoaderLock managed debugging assistant (MDA) detects attempts to execute managed code on a thread that holds the Microsoft Windows operating system loader lock. Any such execution is illegal because it can lead to deadlocks and to use of DLLs before they have been initialized by the operating system’s loader.»


O sea que los MDA’s detectan que estamos intentando ejecutar codigo administrado en un hilo que el cargador del sistema operativo tiene bloqueado, cualquier ejecucion es ilegal pues prodria perder los vinculos con los ‘deadlocks’ y usar las DLL’s antes de que estas hubieran sido inicializadas por el cargador del sistema operativo.


Acostumbra a ser un ‘toston’ en fases de desarrollo, pues solo afecta a los Debuggers, para poder sortear esta dificultat simplemente tienes que deshabilitar la opcion ‘loaderlock’ de Visual Studio.



  1. Pulsa ‘Ctrl+Alt+E’ (te aparecera la ventana de excepciones)

  2. Bajo ‘Managed Debugging Assistants’ busca ‘loaderlock’ 

  3. Click para dejarlo sin seleccion.

¡Listo! Cuando te pongas a trabajar… solo tendras que aceptar la advertencia de bloqueo… pero nada mas.


Saludos,
Pep Lluis,

Compatibilidad de aplicaciones que utilizan MSCOMM32.OCX en Windows Vista

Muchas de nuestras antiguas aplicaciones utilizaban el conocido control ‘mscomm32.ocx’. Atendiendo a los nuevos escenarios en ocasiones nos vemos obligados a utilizar estas aplicaciones con el nuevo sistema operativo. No existe ningún problema y estas aplicaciones funcionan perfectamente siempre y cuando utilicen los puertos serie nativos del ordenador (o sea los que vienen incluidos o incorporados a través de placas con las UART de toda la vida).


El problema ocurre cuando necesitamos utilizar alguno de los conversores USB/Serie que existen en el mercado, he descubierto que algunos de ellos tienen problemas dependiendo del driver del fabricante, pues dicho conversor trabajara adecuadamente si utilizamos el espacio de nombres System.IO.SerialPort.


Habitualmente recibiremos el siguiente error :
error ‘8020’ en tiempo de ejecucion – Error al leer el dispositivo.


Entendiendo entonces que es un problema de adaptación entre el Driver del fabricante del conversor USB/Serie el control mscomm32.ocx y Vista, en estos momentos estoy colaborando con un fabricante para ver que posibilidades tenemos de resolver el problema en este escenario.


Estaré encantado de conversar con todos los interesados en saber más de todo esto, o en espera de resolver alguna situación similar.


Saludos,
Pep Lluis,


 

Robot Dispensador de MSDN Video

Después de mucho pensármelo “por mi condición de catalán” , me he decidido! J Y haciendo un gran alarde de generosidad, con la ayuda de Paco Marín (DotNetMania) hemos puesto el primer ejemplar de la colección de Cuadernos técnicos a disposición del publico en General, esperando tenga una buena acogida. También aunque con el matiz de que fue desarrollado en la versión Beta 1 de Visual Studio 2005, podéis descargaros el código para poder juguetear. Me gustaría mucho recibir vuestras opiniones y sugerencias.

Saludos,
Pep Lluis,

Ahi van los Links :
http://www.dotnetmania.com/libros/CTdnm01/pdf/ctdnm01.pdf

http://www.dotnetmania.com/libros.aspx

Silverlight WebCast’s… NO TE LO PIERDAS!

Introducción a Silverlight
Registration URL: http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032340686&Culture=es-ES
Fecha: 15/5/2007
Descripción: Conozca lo ultimo en tecnología de desarrollo de aplicaciones web ricas en contenido de Microsoft.  Además, conozca como implementar animaciones básicas dentro de sus aplicaciones. Presentado por: Roberto Hernández-Pou, MCSD.NET MCT MCSE MCDBA, MVP VisualStudio.NET Security

Animaciónes, Scripting y Multimedia con Silverlight
Registration: URL: http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032340692&Culture=es-ES
Fecha: 17/5/2007
Descripción: Conozca cómo crear animaciones personalizadas, responder a la interacción del usuario y como implementar sonido y video en sus animaciones. Presentado por: Roberto Hernández-Pou, MCSD.NET MCT MCSE MCDBA, MVP VisualStudio.NET Security

Codigo Manejado y Silverlight 1.1
Registration URL: http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032340694&Culture=es-ES
Fecha
: 22/5/2007
Descripción: Conozca el futuro de Silverlight, aprendiendo como utilizar código manejado para personalizar el comportamiento de sus animaciones y aplicaciones en el browser. Presentado por: Roberto Hernández-Pou, MCSD.NET MCT MCSE MCDBA MVP VisualStudio.NET Security

 

Arquitectura X86

Podemos dar muchas respuestas a la pregunta : ¿que significa servidores basados en arquitecturas x86?, ¿existen otras arquitecturas?… a pesar de no ser un tema de gran interes, os dejo esta conversacion (iniciada en el foro de MSDN por Estela) abierta a cualquier comentario, sobre todo para los que empiezan o que por afinidades les gusta mas el tema de procesadores.


El motivo de x86… viene por la herencia en la designación de los procesadores que en el transcurso de los años han sido conocidos como 80186 / 80286 / 80386 / 80486 … y aunque que por motivos de patentes Intel opto por registrar el nombre de Pentium, las nomenclaturas internamente continúan evolucionando en la misma dirección.

 


Con la llegada de los procesadores de 64bits, Microsoft utiliza ‘x86’ para designar los sistema operativos o aplicaciones de 32Bits e incorpora la anotación ‘x64’ para las referencias a sistema operativo o aplicación de 64bits… y ello puede crear confusión para los que no están familiarizados en el tema.


 


Si hablamos de servidores con arquitectura ‘x86’ nos estamos refiriendo a maquinas equipadas con algún miembro de la familia de procesadores Intel 80×86 de 32 bits o compatibles. Por lo tanto decir Sistemas operativos ‘x86’ , es hacer referencia a sistemas cuyo núcleo es de 32 bits, ejecutables en maquinas con procesadores de 32 bits de arquitectura o compatibilidad  ‘x86’ de Intel… como por ejemplo AMD en su caso, esto garantiza que el sistema operativo se ejecutara sin ningún problema en maquinas cuyo hardware utililize alguno de estos procesadores. A pesar de que muchas personas asocian ‘x86’ con Microsoft, debo decir que no tiene nada que ver, pues por citar algunos (ya que existen un montón) ‘x86’ también es la plataforma de sistemas operativos como Linux, Xenix alguna que otra compilación de Unix para Pc, y si no me equivoco también SOLARIS… y un largo etc.


 


En determinadas situaciones nos refiererimos a la plataforma ‘WINTEL’ para explicitar sistemas de Microsoft Windows en plataformas de electrónica INTEL.


 


Como comentaba anteriormente, en la actualidad podrás ver como hablamos de ‘x64’ para referirnos a los sistemas operativos de 64 bits, estos pueden ejecutarse indistintamente en procesadores x64 de AMD de la familia Athlon por ejemplo o los actuales Intel Xeon.


 


En tanto a si existen otras arquitecturas… por suerte ¡SI!…, hay una buena diversidad de ellas, antes te he nombrado algunos sistemas operativos. Para situarte en este contexto, debo explicarte que la arquitectura de un sistema se fundamenta principalmente en su Hardware (segun este diseñado a nivel interno)… con arquitecturas Von Neuman o Harvard, con RISC o CISC.. etc. Por darte un ejemplo durante muchos años HP estuvo desarrollando e invirtiendo en sus estaciones de Unix con procesadores de 32 bits de Motorota de la familia (68000), el sistema operativo se llama HP-Ux y estaba pensado para estaciones graficas con x-windows, podríamos seguir hablando de OS-400, MAC-OS, Novel, Symbian, pero todos ellos tendrán un denominador común y diferenciador : El Hardware y su arquitectura. Finalmente decirte que algunos sistemas operativos se editan para diferentes plataformas, por lo que puedes implementarlo en maquinas con diferentes tipos de procesadores en función al fabricante.


 


Espero haber aportado un poquito de luz, si no es asi estare encantado de contestarte cualquier duda.


Saludos,


Pep Lluis,

Valores y Propiedades de Configuracion en VB 2005

Atendiendo a la solicitud de nuestro amigo Aaron Cuevas, os dejos este ejemplo de como manejar los valores o propiedades de una aplicación o sus controles, utilizando My.Settings, en este ejemplo contemplamos la creación de ajustes manualmente o de forma automatica desde el control.


Podeis descargarlo haciendo ‘click’ en Attachments. 


Resto a vuestra disposición para comentar lo que estimeis oportuno.
Pep Lluis,