Does the .NET framework always call the API?

C

Cor Ligthert [MVP]

Willy,
Even if you look at it in an abstract way, you have to admit that the
framework is nothing else than a runtime (CLR/CLI) and a set of libraries
presenting an OO API to the users of the containing classes.
The CLR uses the platform (Win32) services to perform it's specific tasks
(memory allocator, thread allocator, timer and synchronization services
etc...) and offers some of these services to the framework classes in top
of
it.

No I don't admit, for me is it an extention on the current operating system.
Including things as culture, security or whatever, which are not really
needed in a runtime. CLR/CLI is a part of the Framework, it is for me not
the framework.
A large part of framework classes themselves, are also wrapping the
platform
specific API's (think file I/O, Security service API's )or some
specialized
API's (think ADO.NET, SQL Server etc..), or are calling into COM based
services to present an OO view of the services to the user of the
framework.
The classes that wrap the OS or specialized services are not restricted to
a
specific namespace or assembly, and that's what John implied, but he is
wrong.

I am not discussing what it does in Win32. Will you tell me that it will
work in the same way as this in WinXQ. (Some not existing version maybe
after WinFX). Where the Net still can be as an independable layer between
hardware, OS and whatever other parts, however in a more to the user and is
situation tailored way.
Only a few of the framework classes are not calling into the 'unmanaged'
API, simply because they are self contained, they don't need any auxiliary
services.
I wrote some messages ago already that I am not writing about what is now.
That a car was the most efficient driving on coal in 1890 (and in war time
in the Benelux) does not mean that coal would forever be the best fuel for a
car.

Cor
 
C

Cor Ligthert [MVP]

"Chris S."
My suggestion: download Reflector and take a look under the hood.

Do you have reflector for me for the system that comes after WinFX, its
Framework, the VS and that OS?

I am not talking about Win32, however this I repeat for the I don't know how
many time

So please read my messages before you start answering them.

Cor
 
J

Jon Skeet [C# MVP]

Cor said:
Read my replies before you write messages like this.

I've read your replies and I'm still baffled by it.

Please state clearly why you assumed Richard's reply, which included a
link to statistics *clearly* gathered entirely on Windows systems, was
referring to Linux.

Jon
 
J

Jon Skeet [C# MVP]

Cor Ligthert [MVP] wrote:

I am not discussing what it does in Win32.

And that's the problem. Everyone else is talking about what it's doing
now - hence the "Does" in the framework rather than "Will".

John's answer (which you apparently agree with) states an expectation
about the current behaviour. That expectation is incorrect.

Do you accept that in all current implementations of .NET, there are
classes in the System.* hierarchy which make API calls? If not, please
explain calls such as FileStream.WriteFile. If you do, please explain
how you can accept the statement above but still agree with John.

Jon
 
W

Willy Denoyette [MVP]

| Willy,
|
| >
| > Even if you look at it in an abstract way, you have to admit that the
| > framework is nothing else than a runtime (CLR/CLI) and a set of
libraries
| > presenting an OO API to the users of the containing classes.
| > The CLR uses the platform (Win32) services to perform it's specific
tasks
| > (memory allocator, thread allocator, timer and synchronization services
| > etc...) and offers some of these services to the framework classes in
top
| > of
| > it.
|
| No I don't admit, for me is it an extention on the current operating
system.

The point is that it calls the OS through the native platform API's whenever
it needs a service from the OS. As such it doesn't extend the OS, that is,
it doesn't offer any extended OS services it just wraps the existing
services where needed. All it does is offering "Application" services that's
whay it an API. To know what this means, you'll have to run the v2.0 of the
Framework on Vista, there you can take advantage of some new services, not
because they are offered by the framework, no, because they are part of the
OS and it's Win32 extensions!



| Including things as culture, security or whatever, which are not really
| needed in a runtime.

Hmm.. not sure what you mean by this? But if you think that culture,
security etc.. are not part of the OS, then you are wrong again.



CLR/CLI is a part of the Framework, it is for me not
| the framework.
|
Yep, that's exactly what I said in above message, the Framework = CLR +
Framework Libraries.


| > A large part of framework classes themselves, are also wrapping the
| > platform
| > specific API's (think file I/O, Security service API's )or some
| > specialized
| > API's (think ADO.NET, SQL Server etc..), or are calling into COM based
| > services to present an OO view of the services to the user of the
| > framework.
| > The classes that wrap the OS or specialized services are not restricted
to
| > a
| > specific namespace or assembly, and that's what John implied, but he is
| > wrong.
|
| I am not discussing what it does in Win32. Will you tell me that it will
| work in the same way as this in WinXQ. (Some not existing version maybe
| after WinFX). Where the Net still can be as an independable layer between
| hardware, OS and whatever other parts, however in a more to the user and
is
| situation tailored way.

It works the same way in Vista at least, and it will work the same way as
long as the OS is Win32 based. That's my point exactly, the Framework is
actually a wrapper around Win32, which is the Windows API currently in use
(and in use in the upcoming Vista release). On other OS platforms it's a
wrapper around some other API, but it's still an API that wraps something to
call into the OS services, or otherwise stated it virtualizes the underlying
OS and other services.


|
| > Only a few of the framework classes are not calling into the 'unmanaged'
| > API, simply because they are self contained, they don't need any
auxiliary
| > services.
| >
| I wrote some messages ago already that I am not writing about what is now.
| That a car was the most efficient driving on coal in 1890 (and in war time
| in the Benelux) does not mean that coal would forever be the best fuel for
a
| car.

Sorry ... but you seem to largely overestimate the importance of .NET on
Windows, to stay in the anology, to me .NET is nothing more than an early
sixties semi-automatic transmission, which makes it possible for some people
who would otherwise be scared off by a "manual transmission" to drive a car
(at least that's what they think).

Willy.
 
C

Cor Ligthert [MVP]

Jon,
I've read your replies and I'm still baffled by it.

Please state clearly why you assumed Richard's reply, which included a
link to statistics *clearly* gathered entirely on Windows systems, was
referring to Linux.
I have given you that already as an answer as only answer on your first
reply.

And please again as so often asked to you. Don't tell in newsgroups what I
have written, without a *correct and complete* quote or link of the text
that I wrote.

With this you create long messages threads, from which even others think
that I wrote it, but it was you who was telling it.

Cor
 
J

Jon Skeet [C# MVP]

Cor said:
I have given you that already as an answer as only answer on your first
reply.

Where? You appear to have completely ignored it. Rather than keeping on
claiming you've already answered my question, why not either give that
answer again or quote *exactly* where you answered it first time? You
stated that you weren't blind and that you could read, but that doesn't
answer my question.
And please again as so often asked to you. Don't tell in newsgroups what I
have written, without a *correct and complete* quote or link of the text
that I wrote.

You've often asked that without actually showing any sign of me
misleading anyone.

Anyway, here's the correct and complete quote. You wrote the text
without any leading angle brackets. John wrote the text with two
leading angle brackets. Richard wrote the text with one leading angle
bracket.

I don't think you've thought this through John.

I assume that what you give is for Linux. Most of us know what it is
for
current Windows Win32 systems. In my opinion is John however talking
about
other systems. Of course is Net mainly a layer upon the OS. It would be
very
crazy when it would gives other results way called by Net than direct
by
other use of that.

Dit you think about that as John obiously did.
</quote>

So, I'm asking about the "I assume that what you give is for Linux"
part. As that was underneath text written by Richard, it's only fair to
assume that you were responding to Richard's text. Now, what do you
believe it was that Richard was giving "for Linux"? His entire reply
was pretty clearly about Windows in my view.

If you were actually responding to John's text (and making assumptions
about what John was referring to), you should have followed-up on
John's post instead of Richard's.
With this you create long messages threads, from which even others think
that I wrote it, but it was you who was telling it.

And where *exactly* have I done that in this thread (or in any other)?

Jon
 
C

Cor Ligthert [MVP]

Willy,

I overreaded that *and a set of libraries* I was to much focussed on that
runtime, sorry.

Our idea are in my idea not much in different. However I have the idea that
a platform interface not always will be called an API. (Application Program
Interface) for every platform that there will be. And I am sure that if that
is so, than they are completely different for every platform (where every
win32 is for me one) (With the exception maybe for OS/2 which is build with
the same basic tools).
As such it doesn't extend the OS, that is, it doesn't offer any extended
OS services it just wraps the >existing services where needed.

You have written something with almost the same context as well. I answer
it in one time.

If that is true, than there is no seperated Framework needed for different
languages. We both know that for the Dutch the 2.0 not yet available (I find
it takes terrible long, so there should be a lot that is not yet in the OS).
Sorry ... but you seem to largely overestimate the importance of .NET on
Windows, to stay in the anology, to me .NET is nothing more than an early
sixties semi-automatic transmission, which makes it possible for some
people
who would otherwise be scared off by a "manual transmission" to drive a
car
(at least that's what they think).

Probably is that a different idea between us. I think that .Net makes it in
future possible to say goodby to the old Win32 parts. That is in my idea
more important than a type of transmission in a car.

Maybe we become both old enough to see who is right,

On the things I did not requote, I have no comments with means that I have
no reasons to disagree..

:)

Cor
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top