Since C# is an ECMA standard now....

  • Thread starter Thread starter anonymouse
  • Start date Start date
A

anonymouse

Is it possible to have C# run in an unmanaged environemnt if somebody should
decide to implemnent it this way?

Its possible to code C# projects without any dependancy on the libraries at
all that ship with it and use other libraries? or is there a must have of
any of them. I could reaplce System.dll with my own, System.Windows.. blah
with my own etc..

After all these libraries are non standardised, only the language is.
 
C# isnt .NET, the libraries are .NET, not the language. Right?

I hate all this .NET Fud its just a mess of PR crap.
 
Being that C# is a standard, even if someone had the desire to make it run
in an unmanaged environment, there would be soooo many problems like
disposing of objects just to name one.

You can use C# objects (.dll) in unmanaged code, but be warned, it's a pain
in the a33.

I totally disagree that .NET is nothing more than marketing hype...it's the
best thing to happen to programming in a long time.

What specific problems are you having with it?
 
Well, for one, the huge gapes in the libraries that you can drive the Death
Star through. Sure sure say call pinvoke, anyway the libraries wrap most of
those, then again, why bother if half the time im spending pinvoking DLLs or
activeX components.



..NET is just the libraries, not the langauage. C# has nothing to do with
..NET. .NET is the base libraries. right.
 
The hype, rather i meant to say the "confusion" that is out there regarding
C# is because of that. Getting people to adopt it is the problem, that
problem caused by the confusion.

Now, back to my main point without all cheerleading posts.


C# isnt .NET, the libraries are .NET, not the language, its not a matter of
being managed or unmanaged. Somebody could build theyre own runtime and sit
C# on it and not have the .NET libraries and still its C# 100% Just not
using .NET libraries.
 
If you don't have hundreds of man years to invest in creating the compiler
and libraries, you might just want to use C++ for your unmanaged code.

Back in the old days (1996) when I was playing with Java, I wanted a Java
compiler for MSDOS. As far as I know it still doesn't exist. After
switching form DOS to Linux to Windows, I give up on Java. It turned out to
be useless for Windows programming, at least for the stuff I do.

To make a long story short, I now use C# to write .NET code, C++ to write
native code, and managed C++ as the bridge between the two.

If you are serious about unmanaged C#, start a project on Sourceforge and
see if anyone is interested in helping you.

Bill
 
Ok forget unmanaged, still back to the ECMA issue., technically only the
libraries are .NET, (and the runtime) but its possible to build C# to be
compliant 100% yet sit on a different runtime or sit on the same runtime yet
not use the .net libraries.
 
anonymouse said:
Is it possible to have C# run in an unmanaged environemnt if somebody should
decide to implemnent it this way?

Its possible to code C# projects without any dependancy on the libraries at
all that ship with it and use other libraries? or is there a must have of
any of them. I could reaplce System.dll with my own, System.Windows.. blah
with my own etc..

After all these libraries are non standardised, only the language is.

The language would not work very well outside of a similar runtime. Its
designed to run within a garbage collected runtime, as there is no explicit
manner to destroy objects; a runtime that supports serialization,
attributes, a unified type system...You couldn't use it like C or C++, you'd
end up writing up a whole runtime and you'd be no better off. Standard C#
keywords have reliances on the runtime to provide a type, they themselves
are nothing but shortcuts to runtime classes. int in itself is not a 4 byte
stack object, it is an alias of System.Int32, which implements a 4 byte
stack object. There is a subtle difference, the language doesn't implicitly
create such things, like C\C++ would do.
Some language features expect framework constructs as well. Foreach works
with IEnumerable\IEnumerator combos, as well as IDisposable. So does the
using construct, as well as other things I've probably not thought of off
hand.
There is no reason you couldn't write another runtime if you felt like it,
but I would question why.
To work without a runtime would require changing the language, standard or
not, its not designed to operate outside of a framework.
 
ok, so then why is the language standard but not the runtime, or the
libraries if there is so much dependancy on each other. Whats the benifit of
standard C#?

Why not standardise the libraries also, and also the runtime requirements on
the types etc. . and interfaces like IEnumerable.

If they dont do that I see no real benifit of ECMA standard on C#.
 
PR FUD.


anonymouse said:
ok, so then why is the language standard but not the runtime, or the
libraries if there is so much dependancy on each other. Whats the benifit of
standard C#?

Why not standardise the libraries also, and also the runtime requirements on
the types etc. . and interfaces like IEnumerable.

If they dont do that I see no real benifit of ECMA standard on C#.
 
anonymouse said:
ok, so then why is the language standard but not the runtime, or the
libraries if there is so much dependancy on each other. Whats the benifit of
standard C#?

Why not standardise the libraries also, and also the runtime requirements on
the types etc. . and interfaces like IEnumerable.

If they dont do that I see no real benifit of ECMA standard on C#.

Well, first, read...the CLI specification[1], especially partition IV. Then,
come back and ask that question again, if you feel it still has merit

1: http://www.ecma-international.org/publications/standards/ecma-335.htm
 
Ok, its NOT .NET , its CLI , .NET is MS's librarys and implementation.

It refers alot to "Base Class Library" yet it doesnt seem to specify the
content of these, where would I find these ?




Daniel O'Connell said:
anonymouse said:
ok, so then why is the language standard but not the runtime, or the
libraries if there is so much dependancy on each other. Whats the
benifit
of
standard C#?

Why not standardise the libraries also, and also the runtime
requirements
on
the types etc. . and interfaces like IEnumerable.

If they dont do that I see no real benifit of ECMA standard on C#.

Well, first, read...the CLI specification[1], especially partition IV. Then,
come back and ask that question again, if you feel it still has merit

1: http://www.ecma-international.org/publications/standards/ecma-335.htm
 
It should surely list the content of these and the behaviours of these so
called "Base Class Libraries" that its specifying as standard.

I have yet to see those except on MSDN which is not exactly STANDARD; its
defacto vendor standard atm in my view. Until I see official standard specs.

anonymouse said:
Ok, its NOT .NET , its CLI , .NET is MS's librarys and implementation.

It refers alot to "Base Class Library" yet it doesnt seem to specify the
content of these, where would I find these ?




Daniel O'Connell said:
anonymouse said:
ok, so then why is the language standard but not the runtime, or the
libraries if there is so much dependancy on each other. Whats the
benifit
of
standard C#?

Why not standardise the libraries also, and also the runtime
requirements
on
the types etc. . and interfaces like IEnumerable.

If they dont do that I see no real benifit of ECMA standard on C#.

Well, first, read...the CLI specification[1], especially partition IV. Then,
come back and ask that question again, if you feel it still has merit

1: http://www.ecma-international.org/publications/standards/ecma-335.htm
 
To original poster,

I agree completely with Daniel.

And to answer the previous post. C# was standardized just like all
other "C" based languages. A language has to be standardized before
it can truly be adopted by ALL platforms.

The reason that the .Net framework can not be standardized is because
it IS a platform specific runtime library designed by Microsoft. And
Yes that was a marketing decision, with the intent to make money. Any
platform, i.e. Unix, Mac… can write their own framework libraries.

Finally take "C" for example. It is one of the oldest standardized
languages. A programmer that knows C can write basic code that can be
compiled on any platform give the platform has a compiler. To really
use C to write a real useful program will have to use the System
libraries for that platform. So it doesn't matter if you C if you
don't know the platform libraries.

This is the main reason there has never been a C, C++, C# only
certification. The Certs for all platforms were over the System
Libraries.

Hope this sheds some light of the pervious post.


Glen Jones MCSD
 
Yes but the ECMA standard documents are referring to Standard libraries,
what libraries are standard, it does not specify them.
 
anonymouse said:
It should surely list the content of these and the behaviours of these so
called "Base Class Libraries" that its specifying as standard.

I have yet to see those except on MSDN which is not exactly STANDARD; its
defacto vendor standard atm in my view. Until I see official standard specs.

Partition 5 of the CLI spec describes how the libraries are documented
in XML format, and that the XML file describing them are to be
considered as part of the ECMA specification. Unfortunately I can't
find the XML file on the ECMA site, but it *is* on the MS web site on
its ECMA page:

http://msdn.microsoft.com/net/ecma/
 
anonymouse said:
If its not on the ECMA or ISO site it aint standard.

Then I suggest you write to ECMA and ask why the extra file isn't on
their site, given that the document which *is* on their site says it
should be counted as part of the specification.

I view it as an unfortunate oversight, nothing sinister.
 
Jon Skeet said:
Then I suggest you write to ECMA and ask why the extra file isn't on
their site, given that the document which *is* on their site says it
should be counted as part of the specification.

I view it as an unfortunate oversight, nothing sinister.

http://www.ecma-international.org/publications/techreports/e-tr-084.htm

That contains the xsl and transforming tool from intel used to generate the
type library documents and the TypeLibrary file that msdn publishes. I would
assume to get the xml file itself you need to order the CD version, I'm
curious what the published version contains.
 
No one mentioned Mono in this thread, so I'll mention it. Anonymouse, check
out MCS: The Ximian C# compiler
http://www.go-mono.com/c-sharp.html
MCS runs on Linux with the Mono runtime

Question 2: What is the difference between Mono and the .NET Initiative?

The ".NET Initiative" is a somewhat nebulous company-wide effort by
Microsoft, one part of which is a cross-platform development framework. Mono
is an implementation of the development framework, but not an implementation
of anything else related to the .NET Initiative, such as Passport,
software-as-a-service, or corporate re-branding.

Question 60: Can I develop my applications on Windows, and deploy on a
supported Mono platform (like Linux)?

Yes, you can.

(See http://www.go-mono.com/faq.html)

And it's probably a bit off topic, but check out
http://www.icsharpcode.net/OpenSource/SD/ (It's tightly integrated with
..NET, which you don't seem to like.)
 
Back
Top