Fox,
fully managed as in the Garbage collector handles all memory issues with the program.
It was my understanding that the reason that Multiple inheritance wasn't implemented
in C# was because of the GC. and that being fully managed is that the Garbage collector
handles all aspects of the program.
While I do agree that the CLR (minus Generics) does a good job of handleing most languages some aspects in the Managed area are limited ot single inheritance.
Although I have tried programming in managed C++ yes to know for sure, that is what they described in several documents.
As a matter of fact, word(2000) was fully compiled in Managed C++, yet the vs.net guys said that it wasn't fully managed framework code.
They didn't go into full details. but it has to do with the Garbage Collector.
(part of the transcript from the .net show)
ROBERT HESS: So let's take maybe a worst case scenario in that model. Let's say I'm Adobe. And I want to take some of my applications and convert them over to using the managed code and C++ and C# and so forth like that. What would you think the steps I'd want to take would be? Would you want me to just take my entire project, Photo Shop or something like that, and just recompile it for the framework? Or should I take a more gradual approach to bringing it along? I’m not meaning to put you on the spot here, because we didn’t talk about this ahead of time…
CHRIS ANDERSON: I think with any project it's going to depend on the scenario. Now, recompiling the whole project with the CLR switch in C++ with managed extensions is a great solution, actually. You're not going to see a big performance problem, there's not going to be an issue there. All of your code will compile. As an internal test of how good that compiler was, we actually recompiled Word, and made sure that that level of application - that's not to say that Word's going to be managed in the near future - but we really wanted that to be a feature that would work for people on a large scale.
ROBERT HESS: Okay. So you recompiled Word using the CLR switch, and out popped a version of Word that was fully managed.
BRAD ABRAMS: Well, fully managed code.
CHRIS ANDERSON: There's an interesting distinction there.
BRAD ABRAMS: What Chris is talking about is that we recompiled instead, like the C compiler today produces X86 instructions for the Intel processor in a PE format. And when you use the \CLR switch, instead of X86 instructions that pop out, actually IL instructions pop out. And so the executable comes in a format that is native to the CLR, but until you explicitly say to, it doesn't take advantage of the Garbage Collector and some of the other features of the runtime. So it's the baby step that gets you going.
So perhaps my statements were a little rash, Yes the CLR will fully compile C++, but it isn't fully compatable with the framework until it is so stated.
IOW it won't be cross language compatable. So RMD statement that if you know that you are not going ot be sharing with other languages and or the features are unique to your project then the CLR could be used. But that comes to the safe and unsafe. code. If it is managed by the Garbage Collector MS considers it safe code if it can't be managed by the garbage collector it is unsafe code. so Multiple inheritance is unsafe code. At least my understanding of it.
El
|