Todas las entradas de: peplluis

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

WebServices para FW 3.5 En Vista, Sin WebConfig

Hablando de los archivos ‘.asmx’ colocados en el ‘wwwroot’ en ausencia de ‘web.config’ cuando intentamos llamar a servicios web hechos para framework 3.x sin tener configurada explicitamente la version a usar… obtenemos un «ERROR DE COMPILACION» porque por defecto nos esta tomando la :


Versión de Microsoft .NET Framework:2.0.50727.1318; Versión ASP.NET:2.0.50727.1318


Una de las formas de instruir que version del compilador debe usar el sistema al invocar estos servicios, es indicando la version que deseamos utilizar, adecuando la siguiente entrada del ‘web.config’ :


en el apartado :
  <system.codedom>
    <compilers>


con los valores…
        <providerOption name=»CompilerVersion» value=»v3.5″ />
o
        <providerOption name=»CompilerVersion» value=»v2.0″ />


Según convenga.
Saludos,
Pep Lluis,


 


 

No se controló COMException! – Interoperar objectos COM de VS6 a VS2005

No cabe la menor duda, que uno de nuestros trabajos mas desagradables es entender y resolver problemas de interaccion entre aplicaciones diseñadas y desarrolladas con diferentes tecnologias.


No hace mucho me toco ¡perder toda una mañana! Intentando interactuar con un ‘Component Object Model’  desarrollado en VB6.  Referenciar e instanciar el objeto esta claro que fue muy sencillo… sin embargo las sonrisas se iniciaron al intercambiar informacion entre ambos :


Los tipos no coinciden. (Excepción de HRESULT: 0x80020005 (DISP_E_TYPEMISMATCH))


Originalmente utilizaba typos ‘variant’ en .NET ‘object’, estaba tan convencido de que todo estaba bien que incluso no quise buscar ninguna solucion en la ‘base de conocimiento’ ni en la ayuda… dale que te pego, hasta darme cuenta!!


Por defecto cualquier al crear un nuevo proyecto en el ‘AssemblyInfo’ nos crea una entrada que por defecto!… POR DIOS!!  … es ‘False’. Se trata de saber que esa entrada, exactamente esa entrada debe estar en ‘True’ para disponer de la funcionalidad que requiere mi proyecto.


Mi disgusto viene despues de andar cuatro horas detrás de todo esto para entender que ademas de continuar siendo un novato despues de 30 años, mi torpeza tampoco mejora!

Espero que algun que otro sufridor con este problema, localice informacion en menos tiempo que yo.

<Assembly: ComVisible(False)> ‘POR DEFECTO (CON ERROR)
<Assembly: ComVisible(True)>  ‘La SOLUCION!


o Bien Seleccionando la opcion ‘Crear ensamblado visible a traves de COM’ en la ‘Informacion del Ensamblado’


Como siempre las cosas mas evidentes son las que nos quitan el sueño y nos hacen perder la mayor parte de nuestro preciado tiempo.


Saludotes!
Pep Lluis,

Visual Studio 2005 – La ubicacion del Proyecto no es de confianza… ofCourse en Vista!

También en Vista y a pesar de disponer de un buen numero de herramientas para la gestión de código, en algunas situaciones nos interesa poder acceder a los proyectos de Visual Studio almacenados en algún que otro recurso de red. «También en Vista» necesitamos del ‘caspol’… pero donde esta el de FW 3.0!Pues la respuesta es ¡No esta!, para estos menesteres, continuaremos utilizando el – .NET Framework 2.0 Configuration.

… Inicio>Panel de Control>Herramientas Administrativas>

A continuación abriremos la ‘Management Console’ del Framework 2.0 Configuration.

Mi Pc>Directiva de seguridad en tiempo de ejecución>Equipo>All_Code>LocalIntranet_Zone>

En el agregaremos un grupo de código secundario y lo configuraremos para que el recurso ‘url’ este mapeado a su dirección, ejemplo : «file://Servidor/Recurso/*. » para posteriormente otorgarle conjunto de permisos ‘FullTrust’.Espero que os sea de utilidad y como siempre no dudeis en consultar sobre cualquier duda al respecto.
Pep Lluis,

Por cierto, si el recurso pertenece a un Dominio… son buenas practicas que dicho equipo este unido a ese dominio.

Introduccion a .NET Framework y C#

Gracias a la iniciativa de Carlos Grevilla y Carles Hernandez, del DotNetClub de la UAB este Jueves me reunire con su grupo para charlar sobre .NET Framework y C#, en lo que espero sea una agradable introduccion para los no iniciados. Estaremos en la Escola Tecnica Superior d’Enginyeria de Bellaterra. Recuerda Jueves dia 10 de Mayo de este 2007!


····················< dot net club Z2 >····················
&

PepLluis

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

 

Cargar/Descargar Archivos Desde y Hacia una Columna ‘image’ SQL

 


Friend Class Ejemplo


    Private _ms As MemoryStream  ‘Carga/descarga de archivos SQL


    Private _Fs As FileStream    ’Manejo archivos en memoria


    Private _By() As Byte = Nothing  ‘Array de intercambio


 


   


    ‘Guardar el Documento


    Private Sub Doc_Almacenar(ByVal Origen As String, ByVal Nombre As String)


        Try


            ‘crear un nuevo fstrm con el archivo apuntado en la ruta


            ‘contenida en el origen


            _Fs = New FileStream(Origen, FileMode.Open, FileAccess.Read)


            ‘redimensionarlo y adaptarlo a su longitud


            ReDim _By(_Fs.Length)


            ‘convertir el fstrm en un array de bytes


            _Fs.Read(_By, 0, _Fs.Length)


            ‘Archivos es el tableadapter


            ‘almacenar array en una imagen binaria Sql


            Archivos.Insert(Nombre, _By)


            _Fs.Close()               ‘cerrar el fstrm


            _Fs.Dispose()             ‘Liberarlo


        Catch ex As Exception


            ‘En caso de excepcion…


            Me.lblExcepciones.Text = «DocAlmacenar: « + ex.Message


        End Try


    End Sub


   


    ‘Cargar documento desde la col imagen de SQL


    Private Sub Doc_Recuperar(ByVal Nombre As String)


        Try


            ‘Recuperar imagen de SQL a un array intermedio


            If Nombre.Length > 0 Then


                ‘el table adapter devuelve una imagen


                ‘resultante de la consulta ‘Recuperar(Col Nombre)’


                Dim Buffer() As Byte = Archivos.Recuperar(Nombre).Rows(0).Item(«Imagen»)


                ‘Crear un nuevo archivo


                _Fs = New FileStream(«Documento.tmp», FileMode.Create, FileAccess.Write)


                ‘escribirlo a partir del array intermedio


                _Fs.Write(Buffer, 0, Buffer.Length)


                _Fs.Close()       ‘Cerrar el fstrm


                _Fs.Dispose()     ‘Liberarlo


            End If


        Catch ex As Exception


            ‘En caso de excepcion, reportar


            Me.lblExcepciones.Text = «DocRecuperar: « + ex.Message


            Try


                My.Computer.FileSystem.DeleteFile(«Documento.tmp»)


            Catch ex2 As Exception


                Me.lblExcepciones.Text = «Eliminar: « + ex.Message


            End Try


        End Try


    End Sub


End Class