469,330 Members | 1,334 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 469,330 developers. It's quick & easy.

COM/ATL/OLE/ActiveX vs .NET

101 100+
I was originally all gung-ho about C++ programming on windows, but have realized it to be a colossal amount of effort to learn. You have to learn COM/DCOM and ATL. Then, there's OLE and ActiveX, plus MTS and a whole lot of other technologies.

The question is, if I throw all this to the wind and opt for c#, will I be limiting myself?

But before you answer that, I'll give you an idea of what I want to do:

I want to go beyond windows forms and be able to create my own designs, implementations and behaviors and not be at the mercy of Microsoft's API. I'd like to make my windows opaque, draw them pixel for pixel, and render 3D objects within my windows.

I also want to do networking programming, and have it be as efficient as possible. I would like to be able to work with the network stack as closely as I can without too many layers or wrappers.

And, I want to be able to use opengl and directX applications that take over the desktop, such as in a videogame.

Here's a list of applications that do what I'd like to be able to do:
-Audacity
-winamp
-steam (valve's content system)
zsnes (super nintendo emulator)

So, should I keep on trucking with COM/ATL and OLE?, or opt for something else?
Aug 26 '07 #1
3 4025
drhowarddrfine
7,435 Expert 4TB
I was originally all gung-ho about C++ programming on windows, but have realized it to be a colossal amount of effort to learn. You have to learn COM/DCOM and ATL. Then, there's OLE and ActiveX, plus MTS and a whole lot of other technologies.
Then next year Microsoft changes it on you. I feel your pain.
I want to go beyond windows forms and be able to create my own designs, implementations and behaviors and not be at the mercy of Microsoft's API. I'd like to make my windows opaque, draw them pixel for pixel, and render 3D objects within my windows.
With .NET, you can't help but go through that framework to get at anything. I believe it might still be possible, but can't help but wondering how much things get slowed down by all these layers. What you mention can be done with Linux/Unix/BSD, just not Microsoft Windows stuff.
I also want to do networking programming, and have it be as efficient as possible. I would like to be able to work with the network stack as closely as I can without too many layers or wrappers.
Again, easy with Linux/Unix/BSD.
And, I want to be able to use opengl and directX applications that take over the desktop, such as in a videogame.
Too bad you insist on Windows. Most graphics research is done with Unix, et al.
Here's a list of applications that do what I'd like to be able to do:
-Audacity
-winamp
-steam (valve's content system)
zsnes (super nintendo emulator)
Audacity is open source. Isn't Steam code available for Linux? I thought I had a copy of that.
So, should I keep on trucking with COM/ATL and OLE?, or opt for something else?
I think it's easier to create things on Linux/Unix, and then port them to Windows because *nix won't move around on you and you can get closer to the metal when optimization is necessary. We assembly language programmers have a tough time with .NET, not that we use it at all. I used to write graphics routines that interfaced with DirectX and COM. That wasn't too bad except trying to follow the documentation around and the multitude of required setup function calls and attributes in those functions. Things have just gotten way too complicated.
Aug 27 '07 #2
zensunni
101 100+
First off, sorry for the late reply.

Secondly, everyone does tell me to go with linux. Don't worry, I will probably do most of my work on linux/unix systems when I take that dive. In fact, I'm really looking forward to it.

But I still would like to be able to make good, flexible windows programs if the need be. I've set aside my study time for windows and I hope that "use linux" isn't the only gained knowledge I take out of it.

You said that you ported Linux programs to windows? How was that done? I can understand for simple programs using std, but how are windows and graphical renderings ported?

Thanks again for the thoughts and ideas.
Oct 3 '07 #3
drhowarddrfine
7,435 Expert 4TB
No. I've not ported anything to Windows from Unix.
how are windows and graphical renderings ported?
You can use OpenGL on both systems but if you write your own custom rendering engine then the only difference will be the output to the screen/graphics card using DirectX. Many of the drivers for graphics cards are also available on Unix so we can write to that hardware just like DirectX can, just different library calls. But the only difference between a Unix program and a Windows one would be just that, the library calls (generally).
Oct 6 '07 #4

Post your reply

Sign in to post your reply or Sign up for a free account.

Similar topics

8 posts views Thread by AnalogKid | last post: by
1 post views Thread by wang xiaoyu | last post: by
2 posts views Thread by Fie Fie Niles | last post: by
6 posts views Thread by Pippen | last post: by
12 posts views Thread by A.M. | last post: by
18 posts views Thread by DartmanX | last post: by
7 posts views Thread by Jarod_24 | last post: by
4 posts views Thread by Wilfried Mestdagh | last post: by
6 posts views Thread by hufaunder | last post: by
1 post views Thread by CARIGAR | last post: by
reply views Thread by suresh191 | last post: by
reply views Thread by Purva khokhar | last post: by
reply views Thread by haryvincent176 | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.