The pros and cons of .NET

C

Cor Ligthert

Tim,

The fact of the "Ägainst a large runtime needed", is really for laughing,
there is no runtimer needed with dotNet programs.

It shows that you are not know what you are writing.

Cor

"Tim Anderson"
 
J

Jon Skeet [C# MVP]

Cor Ligthert said:
The fact of the "Ägainst a large runtime needed", is really for laughing,
there is no runtimer needed with dotNet programs.

It shows that you are not know what you are writing.

I really don't think so. What do you think the "R" bit of CLR stands
for?

True, there are linkers like the Salamander one, but they're not in
wide use and have their own downsides.
 
C

Cor Ligthert

Jon,
What do you think the "R" bit of CLR stands for?

I am glad I can help you with your question. It stands for Runtime in the
word Common Language Runtime.

However that is not an installable runtimer. It is a part of the OS layer
which has the name Net framework. And which is not distributed as a
Servicepack however with that name.

I hope that this clears your question?

Cor
 
J

JD

However that is not an installable runtimer. It is a part of the OS layer
which has the name Net framework. And which is not distributed as a
Servicepack however with that name.


I'm not sure I understand what you are saying.

We have servers and desktops without the runtime. We need to install the
redistributable runtime available on MS website to run .net applications.

Also I don't believe its part of the OS layer. Its a dll that gets loaded
into a process on the user level. I can even write an unmanaged executable
that loads the runtime dll.
 
T

Tim Anderson

The fact of the "Ägainst a large runtime needed", is really for laughing,
there is no runtimer needed with dotNet programs.

What would you like to call it?

- the stuff installed by dotnetfx.exe?

- the .NET system component?

"Runtime" is shorthand but as good as anything.

Remember that although .NET apps are JIT compiled they still require runtime
services such as GC.
It shows that you are not know what you are writing.

Corrections are welcomed but I think you can do better :)

Tim
 
J

Jon Skeet [C# MVP]

Cor Ligthert said:
I am glad I can help you with your question. It stands for Runtime in the
word Common Language Runtime.

However that is not an installable runtimer.

It certainly *is* an installable runtime.
It is a part of the OS layer which has the name Net framework.

I don't see what that has to do with anything. .NET requires a runtime,
which is fairly large. I see nothing wrong with Tim's point about it at
all.
And which is not distributed as a Servicepack however with that name.

What do service packs have to do with anything?
I hope that this clears your question?

Not really. If you don't believe .NET requires a runtime, you're in a
very small minority...
 
C

Cor Ligthert

JD,

What I find strange is that I never see this kind of messages when there is
told.

It needs on NT4 SP6

The text about the DLL do I not understand, do you want to tell that
framework is one DLL that is loaded every time with your program in memory
(as a runtimer does)?

I am sure it is not.

Cor
 
C

Cor Ligthert

Tim,

Maybe I have to say sorry, however I did it in that clashing tone express to
get reactions, and therefore express and I got the reactions I wanted.

:)

Have a look in the thread Jon started, I hope I clear what I want to say
about "runtime" in that thread.

Cor
 
C

Cor Ligthert

Jon,
Not really. If you don't believe .NET requires a runtime, you're in a
very small minority...
Did I write that? How many times did I ask you not to lie about what I write
in this newsgroups?

Cor
 
J

Jon Skeet [C# MVP]

Cor Ligthert said:
Did I write that? How many times did I ask you not to lie about what I write
in this newsgroups?

Well, you wrote:

<quote>
there is no runtimer needed with dotNet programs.
</quote>

If you think there's a significant difference between the two
statements, please explain what it is.

To be clear: there *is* a runtime needed with .NET programs: the Common
Language Runtime.
 
C

Cor Ligthert

Jon,

In the English language you will always win it on words,

However in the way you write it, are you telling that there is no operating
system needed to run any microsoft windows program, do you really think
that?

Cor
 
J

Jon Skeet [C# MVP]

Cor Ligthert said:
In the English language you will always win it on words,

It's not hard in this case - you said no runtime was required to run
..NET programs, and it is. I don't see that it has anything to do with
*my* prowess with words...
However in the way you write it, are you telling that there is no operating
system needed to run any microsoft windows program, do you really think
that?

Um, I didn't suggest anything like that.

The .NET runtime is *not* part of the Windows OS itself before Windows
Server 2003, however. When installed, it's fairly deeply integrated,
true - but it's certainly not *included* in or with the operating
system.

Of course, all that changes with Longhorn. (I don't know how deeply
embdedded .NET is in Windows Server 2003 - I suspect it's more that
it's included by default rather than being actually being core to the
OS. That is very different to how the situation will be with Longhorn.)

Even then, .NET programs will still require a runtime - it will just be
that the runtime is part of the operating system, so no-one using
Longhorn will have to download the CLR (except for service packs, etc).

I thought it was very clear what Tim meant on his page.
 
C

Cor Ligthert

Inline this time
It's not hard in this case - you said no runtime was required to run
.NET programs, and it is. I don't see that it has anything to do with
*my* prowess with words...

I said that "There is no runtime needed" this has to be readed strictly as
it is.

Needed is the installation of the Net framework, than there is no such thing
("extra" if you like that) as a runtimer needed, the framework has that as a
part in it, however you cannot use a net program with strictly only a
runtimer as you suggest in the previous messages.
Um, I didn't suggest anything like that.

You was telling that a Net program could run with only the CLR installed and
that the rest was not needed.
The .NET runtime is *not* part of the Windows OS itself before Windows
Server 2003, however. When installed, it's fairly deeply integrated,
true - but it's certainly not *included* in or with the operating
system.

I am glad you understood that part of the text I wrote in this thread, it is
a layer uppon the OS, as which it is normally described by the way. (uppon
just for presentation of course as all OS layers are described in layers
however always integrated in the rest)
Of course, all that changes with Longhorn. (I don't know how deeply
embdedded .NET is in Windows Server 2003 - I suspect it's more that
it's included by default rather than being actually being core to the
OS. That is very different to how the situation will be with Longhorn.)

There is a special version NET 1.1 SP1 for Windows Server 2003
Even then, .NET programs will still require a runtime - it will just be
that the runtime is part of the operating system, so no-one using
Longhorn will have to download the CLR (except for service packs, etc).

I thought it was very clear what Tim meant on his page.

I think it is very unclear and I am not sure if you really know what is
needed, you tell above now again that you can only download and use the CLR
to run a Net program without the framework. And that that is not needed
anymore with Longhorn.

Cor
 
J

Jon Skeet [C# MVP]

Cor Ligthert said:
Inline this time

I said that "There is no runtime needed" this has to be readed strictly as
it is.

It's still incorrect.

Suppose someone said "No blood is needed to live as a human" - would
that be true, just because things other than blood are required?

A CLR implementation is required, as is a runtime library. The .NET
framework itself is not necessarily required - you can run a .NET
program with Mono, for example, so long as it doesn't use any of the
classes which Mono doesn't support yet.
Needed is the installation of the Net framework, than there is no such thing
("extra" if you like that) as a runtimer needed, the framework has that as a
part in it, however you cannot use a net program with strictly only a
runtimer as you suggest in the previous messages.

Um, no I didn't.

The .NET framework contains a runtime. The .NET framework is required
in order to run .NET programs, therefore a runtime (the one contained
in the framework) is required.

I never stated that you can use a .NET program with only a runtime. I
would only ever do so with a clearer definition of what I meant by "a
runtime".
You was telling that a Net program could run with only the CLR installed and
that the rest was not needed.

Where, exactly? For someone who's told me not to lie about what you
write (not that I've done so), you seem to be curiously willing to
imagine that I've suggested things that I in no way have.
I am glad you understood that part of the text I wrote in this thread, it is
a layer uppon the OS, as which it is normally described by the way. (uppon
just for presentation of course as all OS layers are described in layers
however always integrated in the rest)

It's sometimes described as an OS layer, sometimes not. Note that a CLI
implementation doesn't *have* to be integrated with the OS at all -
take Mono, for instance.
There is a special version NET 1.1 SP1 for Windows Server 2003

I don't see how that's relevant.
I think it is very unclear and I am not sure if you really know what is
needed, you tell above now again that you can only download and use the CLR
to run a Net program without the framework. And that that is not needed
anymore with Longhorn.

The way you download the CLR is by downloading the framework. The whole
framework can be regarded as a runtime environment, btw - a larger
runtime than just the CLR itself.

"CLR" and "framework" are often written about as if they are
synonymous, by the way - inaccurately, but not to such an extent that I
would consider laughable or that it showed that the person involved
doesn't know what they're writing about.
 
J

JD

It needs on NT4 SP6

We have windows 2000 machines that need the runtime installed.
The text about the DLL do I not understand, do you want to tell that
framework is one DLL that is loaded every time with your program in memory
(as a runtimer does)?

When a managed executable is started, Windows treats it like any other
un-managed process. But the Windows loader examines the .idata section to
see if the MSCorEE.dll should be loaded into the process space. MSCorEE
stands for "Microsoft Component Object Runtime Executable Engine". Then the
loader obtains the _CorExeMain function inside the MSCoree.dll and fixes up
the stub function's JMP instruction in the managed EXE file. This is
basically from Jeff Richter's book called "Applied Microsoft .Net
Framework".

Then if you want to use the CLR from an unmanged executable, much like
ASP.NET does, then right from Don Box's book "Essential .NET: Volume 1":

"Ultimately, the CLR is implemented as a family of Win32/COM-based DLLs.
Although one can load these DLLs directly using LoadLibrary or
CoCreateInstance, these are not the preferred techniques to use when one is
loading the CLR into a new process. Instead, unmanaged programs are
encouraged to use the CLR's explicit facilities for loading and hosting the
runtime. The CLR exposes these facilities via a DLL called MSCOREE.DLL.

MSCOREE.DLL is sometimes called the "shim" because it is simply a facade in
front of the actual DLLs that the CLR comprises. As shown in Figure 10.7,
MSCOREE.DLL sits in front of one of two DLLs: MSCORWKS.DLL and MSCORSVR.DLL.
The MSCORWKS.DLL DLL is the uniprocessor build of the CLR; MSCORSVR.DLL is
the multiprocessor build of the CLR. The primary difference between the two
builds is that the multiprocessor build uses one heap per CPU per process to
reduce contention; the uniprocessor build has one heap per process. It is
the job of MSCOREE.DLL to select the appropriate build based on any number
of factors, including (but not limited to) the underlying hardware."


Like John said this will all change in the future releases of Windows
including Windows 2003.
 
C

Cablito

The thing is, its not like a HUUUUGE runtime anyway, cr*p I called it
runtime too, anyway, its only 10 MB, its not like we are back in the 90s
with 36.6 modems.

If you are using dialup, wake up to the fact that you are part of a
minoirty. Broadband users don´t crap their pants when they see they will
have to download 10MB to be able to run N dotnet applications from that day
on their computers.

Its not like EVERY application must deploy the .NET framework. IF you are
smart enough, you can on your "download" site determine (with ASP.NET) if
the client has the .net framework installed already and redirect to
apropriate download.

Just to add to the runtime fight... why don´t we just call it a Virtual
Machine? lol
 
J

Jon Skeet [C# MVP]

Cablito said:
The thing is, its not like a HUUUUGE runtime anyway, cr*p I called it
runtime too, anyway, its only 10 MB, its not like we are back in the 90s
with 36.6 modems.

Well, it's 23MB as far as I can see, which is fairly large. Where have
you found a 10MB version?
If you are using dialup, wake up to the fact that you are part of a
minoirty.

That depends on what country you're in. I don't think the majority of
the *world's* home users have broadband yet - although the proportion
is increasing. See http://news.bbc.co.uk/1/hi/technology/3667142.stm
for recent UK figures, for example.

It really depends on what market you're targeting, where.
 
C

Cor Ligthert

Jon,

This goes again far beside its context so I stop, I think that I made clear
with your additions that in my opinion there should not be downloaded a
runtimer however something else what I call an OS layer and you still stays
that it is an extended runtimer and you are of course free to call the Net
framework an extended runtimer, however
It's sometimes described as an OS layer, sometimes not. Note that a CLI
implementation doesn't *have* to be integrated with the OS at all -
take Mono, for instance.

What does a Cor Ligthert (CLI) implementation have to do with this?

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