most of the functionality of the .NET Framework are only wrapper classes around old COM+ components. Is there a chance to get a .NET Framework with mostly managed code inside ? Because COM+ is old and bad designed technology -> and it is not interoperable.
Is there a chance for a better future with .NET ?
Is there a better solution (less COM+) in the .NET Framework 2.0 ?
I really can't answer to how much is a wrapper around an existin COM component and how much is not but I would tend to guess that it's probably less then you suspect but I'll let a MS guy (or more knowledgable person) answer that. MS has made a lot of past
investments (as many other companies have) in COM so I don't think you're going to see it go away over night but it seems like it eventually will.
For clarification when you're refering to COM+ it seems like you really mean COM. COM is the Component Object Model where COM+ is the distributed transaction/messaging middleware product from MS which translates to a specific portion of the .Net framework call
Enterprise services and yes Enterprise services does indeed have a lot of COM interop going on to interact with COM+ but this is only a very small portion of the .NET framework. Enterprise Services and COM+ is only used in very specific circumstances when
you need some functionality that only COM+ offers "out of the box" such as distributed transactions but I would tend to wager that you will not find it in a majority of .NET apps out there.
I think the future is very bright for .NET IMO and to answer your question about a better solution in future version of the framework for COM+ (I always get confused if its in .NET framework 2.0 or longhorn) yes there will be services available for tasks that COM+
does today in native .NET, I believe the current "codename" for it is Indigo.
Hope this helps.
My understanding is that the MFC is the largest amount of unmanaged code that goes in. From memory that's, what, 5000 classes? That might be a touch high, but that still leaves 10-15K that are managed. Far from most.
Still, you're right, the MFC is a pig to work with (no offence, I'm glad it's there though!). I'm relatively sure the MFC will stay there for a while. It's not like you have to use the MFC components for all but the most ... unique apps.
Again, this is my understanding.
I wouldn't say "most" of the framework is a COM+ wrapper.
99% of the framework classes that wrap COM+ functionality reside in the System.EnterpriseServices namespace, which is just a small fraction of the overall framework.
That´s wrong ! For example see System.Web.Mail -> it uses the COm component called CDO coming from Windows 2000 or so.
You can see that VERY much functionality is encapsulated in OLD COM objects - NOT on the new .NET technology ! Not interoperable ! It´s the M$ lie.
The story I've been told is not that COM has gone away. Just that in a best case scenario you won't have to worry if, when, and how COM does go away.
But how can M$ make a comparision with a programming language like Java if they are using COMs?
It is not platform independent, ... -> do not think about the projects Mono and DotGNU -> these framework are different implementations.
I think M$ had time trouble and therefore a "quick-and-dirty" solution has been made to have a new technology "like Java".
But they earn their money with this ! -> alot of money for servers, VS, ...
Why pay alot for a bad product ? And you say I don´t have to worry about ?
My personal guess is that the platform independency is mostly a marketing thing. I don't expect it to fly. I've been very sceptical about all platform independency claims since I got burned by the Java Applets write-once-debug-everywhere problem. I view
the Framework as an improved environment for me to write windows applications and webapps running on Microsoft Servers. Everything else is just frosting on the cake. But that's just my very personal view of things.
And remember: Emulation Is The Sincerest Form Of Flattery.
I'm not a java programmer and I know very little about Java so I'm not going to claim to know much about it by it seems that MS (and other vendors including Sun, IBM,etc) are speaking in terms of web services for interopability now days and not Java's
"write once run everywhere" or whatever it's slogan is. You want MS to talk to IBM that talks to Sun that talks to a commodore 64 it seems the current "trend" is to think web services and not <insert platform independant language here> and all the major players
are making heavy investments in this technology.
Now depending on your OS and your companies developers you can choose Java or .NET or whatever you want to get you there and they're all going to offer you good solutions (well maybe not the commodore but you got the point). In short who gives a crap about
platform independance as long as long as they can speak to each other (web services). Now I know that there are issues that you need to consider when having afor example a java application consume a .Net Web service and it's not a perfect utopian solution
but they are well documented and easily workable and with all the work now being done between MS, IBM, and sun I think you'll see even this get smoother. To say that .NET can't compete with Java because it's not platform independant is implying that the most
important factor of both languages is the platform independance and that isn't the case and is not a valid comparison for either language.
Going back to the how much of .NET is COM wrapped up I don't think you can go look enterprise services and webmail and say "hey look it's all just COM with a face lift" because that's just not the case. Yes you will find area's that interact or wrap COM components
but even so does that neccesarily make it a bad thing? I don't think so. I heard from an MS guy somewhere (Don Box maybe?) that COM isn't dead it's just done. MS isn't going to invest any more in COM they're going to push forward with .NET so you will see
less and less "COM" behind the scenes and more native .NET and whatever your doing behind the scenes if you need to talk to another system your going to use web services.
With the massive amounts of dollars, developers, and time that MS is put into .NET I think the last thing it could be considered is "a down and dirty" solution lol. But yes in the end they do earn money from it, and I'll earn money from it, and lots of companies
and people will earn money from it... its what makes the world go around.
But to be honest it sounds like you know about as much about .NET and COM as I know about java
It would be really nice if the license of rotor would allow for commercial use. I believe that not only would that open up developers to BSD but I believe apple's OSX too? maybe someday.
I´m programming .NET since the 1.0 Beta 2. And I want to say that I found alot of COM components used in the complete framework. I´ve given only an example with the System.Web.Mail CDO component. Or do you want a complete list ?
I think you are only programming with .NET and you doesn´t look behind the scenes. Please take a look at the "Reflector" (Lutz Roeder) program to see the implementation of the Framework classes. Or the Rotor source.
For example: I´ve developed a universal Data Access component. Because I think it is bad to use the SqlClient, OracleClient, ... If you change the DBMS system you have to change the whole program code. I´ve seen that in java it is a better solution and implemented
it. In the 2.0 Framework it is implemented by default. But you say today that the 1.1 Framework is good designed. I think it is the first (1.x) version and it can be improved.
First: Each successive version of the framework uses less and less COM. But re-writing everything from the start would have been project suicide. It would simply have taken too long to build it all in managed code from the start.
Second: Who gives a damn? C# is giving me the productivity gains of VB (well, almost. Edit-and-continue please, edit-and-frigging-continue) with a language I'm more comfortable in.
It can be a wrapper around DDE for all I care. Hell, go ahead and make it a collection of TSRs if that is what works.
What I want is a layer of abstraction that helps me be more productive. What that layer consists of is for people with offices and pay-scales far above mine to determine.
I agree with unix (the channel9 member) to an extent, the wrapping of COM functionality was one of the things that turned me away from .Net in the first release. It's not simply that COM is wrapped, but that this is a "Revolution"! You've got to be kidding
me... is there an "Idiot" label on my forhead? Now... (whew, I've been waiting a while to get that out... NICE) I do realize that much of the functionality that is dependant on old COM stuff is going away with each new revision (or service pack or whatever).
But the fact is that, you stand and tell me about a revolution, then hand me the same thing I already have with a new coat of paint. This obvviously onle applies to the Foundation Classes, not C#, the CLR or any of that... but its the principle of the matter.
You want me to stand in the trenches and argue J2EE vs. .Net with my colleagues (and to my managers), give me the truth, not the hype.
Unix? I would like to hear more about your universal data access component, and comparative performance with SqlClient and perhaps OracleClient. You can be completely platform agnostic if you want, but IMO that is one reason Java has failed to produce GUI
applications of any magnitude that perform well.
As far as Java GUI applications that perform well... I think you may want to look again. This has imporved greatly in Java2... check out IntelliJ at www.jetbrains.com , its fully swing and works marvelously. The intellisense popups are quick. At least
on my sluggish Mac Granted, you need some RAM, but run VS.Net with only 256 of RAM and you get a very similar result.
How would you say it performs to say, Eclipse? I think IBM got it right with SWT.. but truthfully I haven't run a pure swing app in a while. The IDE looked pretty good, do you have any other examples?
JParrish, Well, I think it performs better than Eclipse, but unfortunately, I can't quantify it, so you'll have to take that with as (with?) grain of salt. I don't think eclipse is all Swing based though. But I am by no means an *informed* Eclipse user.
Let me see what else I've got running here regards other examples.
Comments have been closed since this content was published more than 30 days ago, but if you'd like to continue the conversation, please create a new thread in our Forums, or Contact Us and let us know.