Acceso al progrmador de tareas desde .NET ¿Otra vez Interop?

03/10/2004 - 16:38 por Zephryn Xirdal | Informe spam
¿Pues para qué cojones sirve el .NET si no lleva ni la mitad del API de
Windows? ¿Piensa Microsoft que nos pasemos por el morro a programar con el
.NET? ¿Dónde están los controles nativos del XP? ¿Llevará Longhorn un API
completo o tendremos que seguir utilizando Interop para la mitad de las
cosas?

Otra cosa que no me gusta nada del C# es la castaña pilonga esa del Interop.
Toda la vida se ha podido mezclar código de diferentes lenguajes sin tanto
paripé, y encima la mitad de cosas del Interop están sin documentar... Desde
luego que este va a ser mi último programa en C# (y ha sido el primero),
aunque de momento no en .NET. Le voy a dar una oportunidad al C++ Manejado
(que supongo me va a permitir hacer llamadas nativas sin tanta
parafernalia).

Y desde luego, como no mejoren lo llevan bastante claro. Mucha maquinaria
propagandística, mucho "ahora todo se va a hacer en .NET", "el .NET acelera
tu productiviad". Joder. Si cuando tengo que sacar un tooltip tengo te
tirarme dos días y aún no lo he conseguido, porque no está implementado en
el .NET.

En la ficha, la llamada a ShowBallon la hago en un sólo sitio, después de
InitializeComponent(), sin embargo, si pongo un punto de interrupción dentro
de la llamada a ShowBallon, se me llama hasta cinco veces. ¿Por qué, si sólo
se debe lanzar una vez? ¿Sin embargo, al constructor sólo se lo llama una
vez. ¿Me lo puede explicar alguien?

public FormFortunes()

{

//

// Necesario para admitir el Diseñador de Windows Forms

//

InitializeComponent(); //Sólo se llama 1 vez al lanzar la aplicación

//

// TODO: agregar código de constructor después de llamar a
InitializeComponent

//

LoadConfiguration(); //Sólo se llama 1 vez al lanzar la aplicación

m_random=new Random(); //Sólo se llama 1 vez al lanzar la aplicación

GetOneFortune(false); //Sólo se llama 1 vez al lanzar la aplicación

ShowBalloon( Text,sb.ToString(),150000); //!SE LLAMA HASTA 5 JODIDAS VECES!

}


De la existencia viene el nacimiento. Del nacimiento vienen la vejez, la
muerte, la pena, los lamentos, el dolor, el abatimiento, la desesperación.

Preguntas similare

Leer las respuestas

#1 Octavio Hernandez
03/10/2004 - 18:34 | Informe spam
Zephryn,

a) Sí, hay que usar COM para acceder al programador. Tienes una librería
lista para usar aquí:

http://www.codeproject.com/csharp/t...ibrary.asp

b) Creo que no debes desesperarte, la cosa irá mejorando y nos iremos
librando del Interop (al menos, de tener que programarlo nosotros :-)
Sabes que C++ también tiene sus complicaciones, no creas que aquello será un
"camino de rosas". En particular, te advierto sobre el hecho de que la
sintaxis de las extensiones manejadas de C++ va a cambiar CASI COMPLETAMENTE
en VS.NET 2005...

Salu2,

Octavio

"Zephryn Xirdal" escribió en el
mensaje news:%
¿Pues para qué cojones sirve el .NET si no lleva ni la mitad del API de
Windows? ¿Piensa Microsoft que nos pasemos por el morro a programar con el
.NET? ¿Dónde están los controles nativos del XP? ¿Llevará Longhorn un API
completo o tendremos que seguir utilizando Interop para la mitad de las
cosas?

Otra cosa que no me gusta nada del C# es la castaña pilonga esa del


Interop.
Toda la vida se ha podido mezclar código de diferentes lenguajes sin tanto
paripé, y encima la mitad de cosas del Interop están sin documentar...


Desde
luego que este va a ser mi último programa en C# (y ha sido el primero),
aunque de momento no en .NET. Le voy a dar una oportunidad al C++ Manejado
(que supongo me va a permitir hacer llamadas nativas sin tanta
parafernalia).

Y desde luego, como no mejoren lo llevan bastante claro. Mucha maquinaria
propagandística, mucho "ahora todo se va a hacer en .NET", "el .NET


acelera
tu productiviad". Joder. Si cuando tengo que sacar un tooltip tengo te
tirarme dos días y aún no lo he conseguido, porque no está implementado en
el .NET.

En la ficha, la llamada a ShowBallon la hago en un sólo sitio, después de
InitializeComponent(), sin embargo, si pongo un punto de interrupción


dentro
de la llamada a ShowBallon, se me llama hasta cinco veces. ¿Por qué, si


sólo
se debe lanzar una vez? ¿Sin embargo, al constructor sólo se lo llama una
vez. ¿Me lo puede explicar alguien?

public FormFortunes()

{

//

// Necesario para admitir el Diseñador de Windows Forms

//

InitializeComponent(); //Sólo se llama 1 vez al lanzar la aplicación

//

// TODO: agregar código de constructor después de llamar a
InitializeComponent

//

LoadConfiguration(); //Sólo se llama 1 vez al lanzar la aplicación

m_random=new Random(); //Sólo se llama 1 vez al lanzar la aplicación

GetOneFortune(false); //Sólo se llama 1 vez al lanzar la aplicación

ShowBalloon( Text,sb.ToString(),150000); //!SE LLAMA HASTA 5 JODIDAS


VECES!

}


De la existencia viene el nacimiento. Del nacimiento vienen la vejez, la
muerte, la pena, los lamentos, el dolor, el abatimiento, la desesperación.


Respuesta Responder a este mensaje
#2 Zephryn Xirdal
03/10/2004 - 19:20 | Informe spam
"Octavio Hernandez" escribió en el mensaje
news:%
Zephryn,

a) Sí, hay que usar COM para acceder al programador. Tienes una librería
lista para usar aquí:

http://www.codeproject.com/csharp/t...ibrary.asp




Luego le echaré un vistazo. Gracias.

b) Creo que no debes desesperarte, la cosa irá mejorando y nos iremos
librando del Interop (al menos, de tener que programarlo nosotros :-)
Sabes que C++ también tiene sus complicaciones, no creas que aquello será
un
"camino de rosas". En particular, te advierto sobre el hecho de que la
sintaxis de las extensiones manejadas de C++ va a cambiar CASI
COMPLETAMENTE
en VS.NET 2005...



AAAAAAAAAAAAAAAAAAAGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG.

Tengo instalado el NET 2005, y le he echado un vistazo rápido; pues entonces
creo que voy a dejar el NET 2003 y voy a empezar con el 2005 (de todos
modos, cuando quiera terminar el siguiente proyecto, ya irá por el 2007,
snif).

Los programas que no son de hardware (me gano la vida programando hardware
en C/C++) siempre los he hecho con Borland. Primero con el Borland C++ (eso
sí que era un gestor de proyectos), y luego con el Builder (que me mejoró la
vida sustancialmente). Pero ahora B. anda dando tumbos de acá para allá y el
BCB 6 tiene más fallos que una escopeta de feria y aunque sigo atado a ese
entorno en el trabajo, y quiero abandonarlo, me han pasado cosas que pondría
los pelos de punta a cualquiera. Tengo una aplicación para simular procesos
de hardware (unas 50.000 líneas de código, que varían de día a día), y he
visto funcionar al depurador por un lado, la aplicación por otro y al
proceso haciendo lo que le daba la gana (un "if pepe<3", en donde sabes que
pepe vale 0, saltando como si fuera falso, declarar un double y que el
compilador lo interprete como un int, negarse a compilar algo, añadir un
comentario y entonces compilar perfectamente...)

Pero veo que en todos los sitos se cuecen habas. Espero que esto del .NET
siga adelante, y que se convierta en un framework en condiciones (como,
siento decirlo, es la VCL de Delphi/Builder aparte bugs y demás), porque me
parece que MS también anda un poco dando tumbos... El C++ ha sido y es C++,
que estandaricen (o no) las extensiones, pero que las dejen quietas de una
puñetera vez (como ha hecho Borland con sus __property y demás
parafernalias).

Y perdona el exabrupto, pero estoy un poco quemado.


Salu2,

Octavio

"Zephryn Xirdal" escribió en el
mensaje news:%
¿Pues para qué cojones sirve el .NET si no lleva ni la mitad del API de
Windows? ¿Piensa Microsoft que nos pasemos por el morro a programar con
el
.NET? ¿Dónde están los controles nativos del XP? ¿Llevará Longhorn un API
completo o tendremos que seguir utilizando Interop para la mitad de las
cosas?

Otra cosa que no me gusta nada del C# es la castaña pilonga esa del


Interop.
Toda la vida se ha podido mezclar código de diferentes lenguajes sin
tanto
paripé, y encima la mitad de cosas del Interop están sin documentar...


Desde
luego que este va a ser mi último programa en C# (y ha sido el primero),
aunque de momento no en .NET. Le voy a dar una oportunidad al C++
Manejado
(que supongo me va a permitir hacer llamadas nativas sin tanta
parafernalia).

Y desde luego, como no mejoren lo llevan bastante claro. Mucha maquinaria
propagandística, mucho "ahora todo se va a hacer en .NET", "el .NET


acelera
tu productiviad". Joder. Si cuando tengo que sacar un tooltip tengo te
tirarme dos días y aún no lo he conseguido, porque no está implementado
en
el .NET.

En la ficha, la llamada a ShowBallon la hago en un sólo sitio, después de
InitializeComponent(), sin embargo, si pongo un punto de interrupción


dentro
de la llamada a ShowBallon, se me llama hasta cinco veces. ¿Por qué, si


sólo
se debe lanzar una vez? ¿Sin embargo, al constructor sólo se lo llama una
vez. ¿Me lo puede explicar alguien?

public FormFortunes()

{

//

// Necesario para admitir el Diseñador de Windows Forms

//

InitializeComponent(); //Sólo se llama 1 vez al lanzar la aplicación

//

// TODO: agregar código de constructor después de llamar a
InitializeComponent

//

LoadConfiguration(); //Sólo se llama 1 vez al lanzar la aplicación

m_random=new Random(); //Sólo se llama 1 vez al lanzar la aplicación

GetOneFortune(false); //Sólo se llama 1 vez al lanzar la aplicación

ShowBalloon( Text,sb.ToString(),150000); //!SE LLAMA HASTA 5 JODIDAS


VECES!

}


De la existencia viene el nacimiento. Del nacimiento vienen la vejez, la
muerte, la pena, los lamentos, el dolor, el abatimiento, la
desesperación.






Respuesta Responder a este mensaje
#3 Octavio Hernandez
03/10/2004 - 20:32 | Informe spam
Zephryn,

...siempre los he hecho con Borland.



Yo también llevo muchos años ligado a los productos de Borland.

...BCB 6 tiene más fallos que una escopeta de feria... me han pasado


cosas...

¿Tienes instalado el SP4 de C++ Builder 6? No he hecho cosas de 50.000
líneas con él (ni siquiera de 5.000), pero sí con Delphi (y he visto cosas
aún mucho mayores), sin mayores problemas, y siendo el mismo compiler
back-end y la misma VCL...

Espero que esto del .NET se convierta en un framework en condiciones como


es la VCL...

Yo creo que ya lo es, y está en el camino correcto para seguir avanzando...
¿Sabes que uno de los padres de .NET es Anders Hejlsberg, el creador de
Turbo Pascal, Delphi y la VCL?

Slds,

Octavio
Respuesta Responder a este mensaje
#4 Alberto
03/10/2004 - 21:48 | Informe spam
Perdonar que me meta en la conversación, pero estoy intentando decidirme por
un entorno de programación para trabajar y estoy en la duda entre C# y Java.
¿Qué me aconsejais?

Muchas gracias
"Octavio Hernandez" escribió en el mensaje
news:
Zephryn,

...siempre los he hecho con Borland.



Yo también llevo muchos años ligado a los productos de Borland.

...BCB 6 tiene más fallos que una escopeta de feria... me han pasado


cosas...

¿Tienes instalado el SP4 de C++ Builder 6? No he hecho cosas de 50.000
líneas con él (ni siquiera de 5.000), pero sí con Delphi (y he visto cosas
aún mucho mayores), sin mayores problemas, y siendo el mismo compiler
back-end y la misma VCL...

Espero que esto del .NET se convierta en un framework en condiciones como


es la VCL...

Yo creo que ya lo es, y está en el camino correcto para seguir
avanzando...
¿Sabes que uno de los padres de .NET es Anders Hejlsberg, el creador de
Turbo Pascal, Delphi y la VCL?

Slds,

Octavio


Respuesta Responder a este mensaje
#5 Zephryn Xirdal
03/10/2004 - 22:07 | Informe spam
Las grandes fortunas no se originan por lo general en los años prósperos;
surgen cuando la desgracia se ceba sobre los pueblos.

"Octavio Hernandez" escribió en el mensaje
news:
Zephryn,

...siempre los he hecho con Borland.



Yo también llevo muchos años ligado a los productos de Borland.

...BCB 6 tiene más fallos que una escopeta de feria... me han pasado


cosas...

¿Tienes instalado el SP4 de C++ Builder 6? No he hecho cosas de 50.000
líneas con él (ni siquiera de 5.000), pero sí con Delphi (y he visto cosas
aún mucho mayores), sin mayores problemas, y siendo el mismo compiler
back-end y la misma VCL...



Sip. Y el siguiente, aunque a mis dos aplicaciones "grandes" no les afecte
para nada. El problema viene del compilador de c++, que pese a la fama que
tiene es bastante malillo. Desde la época en que no se llamaba a los
destructores, hasta cosas bastante risibles. Ahora no recuerdo bien la
secuencia, pero hay un bug que viene desde la época del turbo c y que está
sin solucionar todavía. Consistía en declarar primero un long, luego un
float y luego un int (más o menos). Veías como el compilador pasaba de ti y
hacía cosas de lo más extrañas. Tengo en el trabajo un programa de unas 100
líneas que da risa. Hay una varable int que pasa de 256 a cero si la vas
incrementando. El compilador la toma como un uchar...
He tenido verdaderas pesadillas con el programa que te he dicho, y el otro
grande (que son mis dos aplicaciones de batalla, constantemente
modificadas), una aplicación de toma y proceso de datos: desde el IDE
funciona, sin él, no. Si la lanzo desde el IDE lee de disco en BigEndian, y
si lo hace como ejecutable sólo, en LittleEndian, pero sólo algunos
ficheros. Recibe datos a partir del puerto serie, si puede los procesa y si
no los va guardando a disco... luego no le digas que los recoja y los
analice offline... Y te puedo asegurar que no son fallos de mi código... En
fin, no sigo que me echo a llorar.

Quizás todo el problema venga por eso: un back-end delphi y un front-end
c++; Instancias una clase en C++, con su formato de pila, sus protocolos de
llamada, etc, y cuando entra en contacto con la VCL hay que trabajar con el
formato de Pascal... Es una curiosa maravilla de la ingeniería del software.

Espero que esto del .NET se convierta en un framework en condiciones como


es la VCL...

Yo creo que ya lo es, y está en el camino correcto para seguir
avanzando...
¿Sabes que uno de los padres de .NET es Anders Hejlsberg, el creador de
Turbo Pascal, Delphi y la VCL?




Sí. Y desde que se fue es cuando Borland empezó a dar palos de ciego. Es
cierto que el .NET es un buen framework, pero para aplicaciones n-tier y en
general de alto nivel. Para la programación de sistemas deja aun mucho que
desear...

Slds,

Octavio


Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida