PDA

View Full Version : .net



ygfperson
02-09-2002, 04:08 PM
i don't want to start a flame
what is .NET and why is it important? how is it different from what exists now?

Brian
02-09-2002, 05:06 PM
How about we boycott it. Unless they make it open source, nobody touch it.

shtarker
02-09-2002, 07:31 PM
Who's devloping it under linux?
Doesn't all thier stuff get open sourced?

But back to .net its self.
What was stopping people easily intergrating different languages before? I mean as long as you can compile it to object code its just a matter of linking them together. Or you can build dll's in just about any language and call them relatively easily.
There has to be something more to .net than that.

nvoigt
02-10-2002, 02:41 AM
.NET is more then the sum of it's parts, so listing some parts here will only give you a minimal outlook on what to expect.

.NET is a framework of classes to handle programming.

This framework is available to ALL languages that use .NET.
This means I have the very same objects programming in C++.NET, VB.NET or Cobol.NET.

.NET languages are compiled to MSIL ( Intermediate code ) which in turn is compiled by a just-in-time compiler when started on the target platform. Note that both steps are compiling. No interpretation here. As target platform, Windows exists, Linux will be available in the future through an open source project called Mono. Microsoft does not plan to extend it to other platforms, but the .NET framework and languages are standars, so anyone developing can give it a try.

With .NET you have policies. Policies can restrict your code in a way that Java applets try today. Today, you have the choice between no rights ( Java applets ) or all rights ( ActiveX elements ). With .NET you can give rights as you choose. You want internet files only access one of your printers and only drive D: in readonly mode ? Sure, no problem.

.NET comes with a new language, C#. C# and VB.NET are really good at RAD. With a feel like Borland, but all internal advantages Borland misses ( like full Unicode support ), .NET made a great leap from C++ with MFC to something as fast in execution but super-easy in developing.

Finally, if you don't like one element of a .NET language, you can always choose another language. You can compile all of them into one project. Theoretically, you can do this now, but everyone who did it knows it's a pain in the ass to work around all the limitations. This is time that could as well be spent coding something useful. So in .NET, you can have a VB.NET class in your project. Add a C# file and create a class that uses the VB-class as a baseclass. Create a C++ class that uses the C# class as baseclass. You can now use this class in any language you choose to it's full extend. Without worrying about calling conventions, datatypes, registering dlls or something like that.
Obviously, you can do this in any order, not just the one given above.

There is so much more to .NET than what I can get into this little post. Go and decide for yourself. I will use it for sure.

Brian
02-10-2002, 05:20 AM
Originally posted by gamegod3001
Mods, don't close this thread, but please delete that post above this one. (brian's) and then this post.

STFU, I'm entitled to an opinion.

Shiro
02-10-2002, 06:11 AM
Some questions that arised when reading the posts.

1. Can anyone tell me if .NET is something applicable for embedded systems? I guess not, but perhaps someone has a different opinion.

2. I understand from nvoigt's posting that that every language that uses .NET can use it's framework. As far as I know, a language is nothing but a language. What is then meant by "a language which uses .NET"?

3. I also understand that it is a Microsoft product. Will other OS'es be able to use .NET? I guess so, since if Microsoft wants it to be a standard, it should be open and available for other OS'es.

>Mods, don't close this thread, but please delete that post above >this one. (brian's) and then this post.

Let this thread stay open and let us accept each other's opinion. Though I must say that Brian makes a point. If .NET will be a closed thing, who will extend .NET?

It's just like Bluetooth developments. Ericsson decided to make Bluetooth an open standard so everyone can read its specifications and make use of it. I think that's the best way to make a technology a standard. If they would hide it and only use it by themselves, I think Bluetooth technology would quickly die.

shtarker
02-10-2002, 06:31 AM
>>2. I understand from nvoigt's posting that that every language that uses .NET can use it's framework. As far as I know, a language is nothing but a language. What is then meant by "a language which uses .NET"?

Your right a language is just a language and therefore has to be compiled. What I think is that .net (or atleast one part of using it) is the way the language is compiled. What I think they are trying to say is that microsoft is changing the way they compile programs so that the same compiled code can work on any machine.
As much as I hate to sound like a dooms day profit, I don't really see this going too well. You still need to have the microsoft software inplace to compile it "just in time" (isn't that a phrase they stole of borland's tasm debugger?). This is probbly just my personal bias though as I seem to want all my things to be as standalone as possible.

Sorensen
02-10-2002, 06:37 AM
>1. Can anyone tell me if .NET is something applicable for embedded systems? I guess not, but perhaps someone has a different opinion.

Dunno, but if Java is being used I see no reason that one of the NET languages couldn't be used.

>2. I understand from nvoigt's posting that that every language that uses .NET can use it's framework. As far as I know, a language is nothing but a language. What is then meant by "a language which uses .NET"?

The language must conform to the common language specification so that it can be handled by the runtime JIT compiler.

>3. I also understand that it is a Microsoft product. Will other OS'es be able to use .NET? I guess so, since if Microsoft wants it to be a standard, it should be open and available for other OS'es.

I believe a port is underway to linux, but I'm not sure how popular it'll be ;).

nvoigt
02-10-2002, 07:33 AM
As far as I know, a language is nothing but a language. What is then meant by "a language which uses .NET"?


A language that uses .NET is a language that uses the .NET Framework and classes and is compiled to MSIL.



Will other OS'es be able to use .NET?


Yes. It's an open standard. However, Microsoft will not develop for other OSes, so the makers ( i.e. Apple ) or interested parties ( i.e. open source community ) will have to develop the framework themselves.

ygfperson
02-10-2002, 12:13 PM
so:
.NET is a group of objects which fits into any language that supports objects? what makes c# different than c++.NET?

what kinds of objects are they? (files? hard drives? computers? printers? etc..)

Brian
02-10-2002, 12:13 PM
c# is Java, as far as I'm aware.


edit("this is a joke");

Sorensen
02-10-2002, 01:01 PM
>.NET is a group of objects which fits into any language that supports objects? what makes c# different than c++.NET?

No, each language is compiled into the immediate language. In order to do this the language must have certain properties. Managed C++ and C# are two different languages that will both compile to MSIL, but when they are actually compiled into native exe's the compiler doesn't care which language was used to generate the MSIL.

Therefore, you can mix and match the different languages in a project, and as the final exe isn't compiled until it's on the host machine it can take advantage of things like specialised processor instructions that may vary from one PC to another. In theory the code could produce a different exe if it was run on a Pentium II rather than a Pentium IV.

Brian
02-10-2002, 01:02 PM
This doesn't sound good. I can see it leading to some very messy source code.


Originally posted by Sorensen
>.NET is a group of objects which fits into any language that supports objects? what makes c# different than c++.NET?

No, each language is compiled into the immediate language. In order to do this the language must have certain properties. Managed C++ and C# are two different languages that will both compile to MSIL, but when they are actually compiled into native exe's the compiler doesn't care which language was used to generate the MSIL.

Therefore, you can mix and match the different languages in a project, and as the final exe isn't compiled until it's on the host machine it can take advantage of things like specialised processor instructions that may vary from one PC to another. In theory the code could produce a different exe if it was run on a Pentium II rather than a Pentium IV.

Sorensen
02-10-2002, 01:10 PM
>I can see it leading to some very messy source code.

It wouldn't make any difference to mine ;) .

You don't mix languages in the same file. Some people write programs that are larger than this.

nvoigt
02-10-2002, 01:14 PM
This doesn't sound good. I can see it leading to some very messy source code.


How that ? You can only have one language per sourcefile. If you can write messy code in this language, then there's nothing you can do against it. You have to hope for the wisdom of the programmer.

Govtcheez
02-11-2002, 08:20 AM
>what is .NET and why is it important?

It gets me out of work for a day to go to the rah-rah launch event :D (I don't know why, but I'm really psyched for that)

nvoigt
02-11-2002, 10:45 AM
No prob. While you are at it, could you have a look and mail me my password, or PM it here ? I lost it, and the recovery routine of fd didn't work. I mailed Rick and Fordy, but my mails seem to have been lost over time ;)

Troll_King
02-14-2002, 09:16 PM
I heard that the IL code was the same for every language.

nvoigt
02-15-2002, 01:15 AM
Thats not 100% true, due to differences in the languages.

Imagine a while loop incrementing the counter until some condition is met. C++ produces the logical loop code. If the counter overflows, noone cares. In VB, overflow checking is performed on every variable. So VB will produce the same code like C++, with an additional overflow check. In MSIL, that means that the C++ loop uses a command like INC while in VB, it's something like INC.ovf. This is because different languages handle same constructs in a different way.
Generally, you are right. If you have something that is handled the same way in each language, then no matter what syntax, it produces the same MSIL code.