• Advertisement

Archived

This topic is now archived and is closed to further replies.

What is the .NET craze???

This topic is 5737 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Im sorry if this has been posted before but i am noticing that a lot of topics now are inquiring about microsofts .net. My question is what is this? I have been using VC++ for the longest time and i am jsut curious if my VC++ 6 compiler is becoming obsolete. Any helpfull information of links would be appreciated. "Poor is the pupil that does not surpass the master"

Share this post


Link to post
Share on other sites
Advertisement
It is heavy advertisement. Basicly saying that VC++.net can do everything C++ can do. YAHOOOO!

Share this post


Link to post
Share on other sites
The difference is, from what I can determine, one is a little bit slower because it runs on a VM.

Share this post


Link to post
Share on other sites
quote:
Original post by Cherez
The difference is, from what I can determine, one is a little bit slower because it runs on a VM.

That''s not really true. Even if you do compile for the .NET framework (which I don''t suggest unless you actually know why you should, or whatever) it is handled in a JIT-style manner.

Share this post


Link to post
Share on other sites
Ok, slightly slower loading time then. I''m happy with just plain old, free, open-source Dev-C++, what is the difference between that and VC++?

Share this post


Link to post
Share on other sites
.Net is the marketing name for the current generation of stuff coming out of Microcost.

Part of it is a Java-like VM that executes ''assemblies''. The .Net VM implementation is currently available on recent Win32 platforms (95 & NT4 are not officially supported). An implementation is underway for bsd.

There''s also a new IDE (that sucks IMO), a new C++ compiler (which is better*), and a new VB language (that for the first time, doesn''t totally suck). Then there''s C# which is everything bad about VB and nothing good about C++ put together - just like Java (jk ).

The C++ compiler can emit native code or MSIL (the language of the .Net VM). They added ''managed extensions'' to C++, that let you use the CLR (common language run-time), which is a hierarchy of stuff (like windows and socket classes), again much like Java.
The VB & C# compilers only emit MSIL. Other .Net flavors (languages) are available from third parties - Delphi .Net is underway.

It''s been said that you can create a class in one language, and inherit from it in another. As far as I can tell, that is false. You can create an interface in one language, and implement it in another (just like COM always worked).

The .Net implementation isn''t based on COM, but the two share similar architectures (heavily OO).


*It''s better because it emits more optimized code for more modern processors, and more importantly it adds several extremely useful C++ features. If you were unaware the Microsoft C++ compiler doesn''t implement many so-called advanced template features - and still doesn''t for that matter, but the team is working on compliance issues. Microsoft has hired two prominent C++ gurus to direct this effort.


I wonder when we''ll be running inside a sandbox², on a VM that''s portably executed across multiple VM''s?

Share this post


Link to post
Share on other sites
I see some advantages to that. But I personally would rather just teach my whole development team one language so they can work together best.

Share this post


Link to post
Share on other sites
Thanks for all the replys, i did not expect so many.
From what you guys are telling me it seems that i will be just fine with the good ol VC++ 6 compiler that i have.

Share this post


Link to post
Share on other sites
Just a correction, you can in fact in a language inherit classes defined with another language - aas long as you stick to the managed (C#,VB, managed C++) world

Share this post


Link to post
Share on other sites
Well, nobody on this thread is really doing the .NET Platform the justice it deserves, but I won''t try to convince them, just offer my take on things...


The Win32 API is UGLY. There''s very little that can be said about the Win32 API that covers ALL of it without exception. Enumeration works differently if you go from the File / Directory enumeration functions over to the IP Helper API and to any other number of APIs. It''s disjointed and a bit rough around the edges.

The .NET Framework is a much more coherent API / Toolset. Microsoft has released a Shared-Source of it called Rotor (mentioned above as the BSD port) and there is already a Linux port underway that has made impressive progress called Mono.

C# is my new favorite language... I liked Java except that it lacks ANY respectable IDE. C# is as easy to use as VB and even easier if you come from a C/C++ or Java background and never took the time to learn VB''s syntax or objects.

Developing web services is so painfully easy that I nearly want to cry thinking back to all my time spent writing services and opening sockets. Think of Web Services as RPC over an HTTP Connection (or any other protocol that someone writes an adapter for) and you''re in business. Consuming Web Services from VS .NET is even easier. I honestly got a chill when I first saw how easy it was.

The IDE takes a good amount of getting used to if you''re coming from VC6, and even more time if you''re coming from something else, but I''m finally getting comfortable with it and I''m really starting to like it.

As for the inheriting in different languages, it''s easy as pie. It takes seeing someone do it successfully once to understand it, but after that it''s pretty intuitive.


Overall, the key word for this whole .NET initiative (Framework, new languages, and the IDE) is ''cohesive'', that''s what everything is. I might sound like a Microsoft fanboy here, and it wouldn''t be the first time I''ve been accused of such things, just try to find some factual information as opposed to opinion-based and see if what you find sounds interesting to you.

Share this post


Link to post
Share on other sites
quote:
Original post by JonStelly
Developing web services is so painfully easy that I nearly want to cry thinking back to all my time spent writing services and opening sockets. Think of Web Services as RPC over an HTTP Connection (or any other protocol that someone writes an adapter for) and you''re in business. Consuming Web Services from VS .NET is even easier. I honestly got a chill when I first saw how easy it was.


Ditto here. I don''t do web, but even I could see how much power MS had given web development. It almost makes me want to start writing web services. Almost. =) The stuff with client-side validation is just going to rock peoples'' socks off once it proliferates; that has to be the absolute worst part of the web currently, and it looks like MS fixed it.

Share this post


Link to post
Share on other sites
quote:
Original post by Magmai Kai Holmlor
Part of it is a Java-like VM that executes ''assemblies''. The .Net VM implementation is currently available on recent Win32 platforms (95 & NT4 are not officially supported).


Calling it a VM doesnt have the correct ring to me. The word VM seems to imply interpreted execution - no CLR language is ever interpreted. I like to see it as a set of runtime services(as in Common Language Runtime
quote:

An implementation is underway for bsd.


That should be "a beta of a shared-source implementation is currently available for FreeBSD and Windows XP". And of course, theres always Mono[1].

quote:

It''s been said that you can create a class in one language, and inherit from it in another. As far as I can tell, that is false. You can create an interface in one language, and implement it in another (just like COM always worked).


Blatantly untrue. As long as the class is CLI-compliant(and its not marked as sealed), it can be both derived from and used in any other CLI-language. Value-types(C# structs) are implicitly sealed, so they cannot be derived from in any language(including the host language).

As an example - Winforms development is heavily based around deriving from the System.Windows.Forms.Form class, to create a window or a dialog. This class is written in C#, yet Winforms apps in any other language seem to be able to derive from it just fine.
Same thing with web apps - webpages derive from System.Web.Ui.Page, which is also written in C# IIRC.

[1]www.go-mono.com


Share this post


Link to post
Share on other sites
Can someone just clarify one thing for me, although it certainly seemed to be stated earlier: Is the new .NET C++ compiler more conformant, as well as better at optimizing for modern CPUs?

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
quote:
Original post by Magmai Kai Holmlor
There''s also a new IDE (that sucks IMO


not to start a war here, but you obviously haven''t had a good look at the IDE. It takes a little getting used to, but I find it allows me to be far more productive.

Even if you hate it, you can still change the options, so it looks and works the same as the VS6.0 stuff. So if you like 6.0 then you can''t say that .Net IDE sucks.

Share this post


Link to post
Share on other sites
I am currently playing with C# and plan to use it for future game programming.

The language is IMHO much nicer than C++. Although most of C# is 1:1 copied from java, that is not a bad thing.

I would probably use Java, but C# seems to be faster.
I am not sure about this, because I could not find a good benchmark, comparing C++, Java and C#, other than "the great computer language shootout" and I know Google .

There are OpenGL bindings for Java (GL4Java f. ex.), but I haven`t tried any of them.
And there is CsGL, an open-source OpenGL library for C#, which works nicely for me.

So, is game programming with C# a stupid idea?

The information about the C# compiler on the Microsoft website is not very clear, but VS.NET professional seems to use the free .NET Framework compiler. And this in contrast to VSC++ where the standard version has no optimisation at all.

Is this correct?

And does that just mean that there is no agressivly optimizing compiler for C# yet?

I know this thread was not about C# but...

Share this post


Link to post
Share on other sites
The C# compiler itself doesnt optimize very aggressively, no. The /optimize(or -optimize Most of the new commandline tools from MS seem to take both formats now) flag turns on some optimizations, but the majority of the optimizations are done by the JIT.

Share this post


Link to post
Share on other sites
quote:
Original post by Melraidin
Can someone just clarify one thing for me, although it certainly seemed to be stated earlier: Is the new .NET C++ compiler more conformant, as well as better at optimizing for modern CPUs?

Yes on the former. Looks like a lot of the templated stuff works now. Functor adapters actually have a 50/50 chance of working now, feeding my for_each passion.

I don''t know about the modern CPU thing. My market is the lowest common denominator & cross-platform, so it''s just not on my scope. I have seen certain optimizations that are better (e.g. modulo by power of two).

Share this post


Link to post
Share on other sites
Technically, most fundamental algorithms should be compiled to the same CIL code, regardless of the programming language. IL is pretty straightforward and it is mainly up to the JIT compiler to perform the optimizations.

C++ can emit either IL or x86 instructions just like VC6. I''m sure there are more optimizations.

I still use C++ for my game programming but all my enterprise-level development work will now be done in .NET using C#. The FCL is just too easy to use and a huge time saver. While Web Services excite me there seems to be a few limitations (mainly due to HTTP) but .NET Remoting (using SOAP or binary formatters) is incredible. I can finally let go of DCOM (ugh). .NET Remoting is awesome. Basically I''ve started implementing my *Core* services in .NET Remoting (using a binary formatter) and exposing key services using Web Services. This gives me the best of both worlds and flexibility to boot.

Microsoft seems to really be on the ball with .NET. The Shared Source CLI is a great idea and *nix users seem to be excited about the prospects too.

I think I''ll still stick with C++ for game programming though.

One thing C# needs is support for templates; supposedly the C#-dev team is working on this.

Dire Wolf
www.digitalfiends.com

Share this post


Link to post
Share on other sites
On the topic of optimisation I find the .NET native C++ compiler to be more efficient. While my inner loop was the same speed my release build startup time was about 50% faster. The inner loop spen 95% of it''s time in the driver anyway). This is with global program optimisation''s turn on.

Another important note. While I was at teched last year I attended the C++ optimisation seminar. They mentioned making native use of MMX, 3DNow! and SSE\SSE2. I''m sure that wouldn''t be of much use to the hard core asm hacker but for a lazy bastard like me it''s good news. I didn''t wanna learn asm anyway.

I quite like the new GUI, though it has a few quibbles. The debugger is much nicer to use, stepping through just about anything. In fact you can now ever run release code through the debugger line by line(with restrictions).

Having XML validation built right in to the IDE is great. The help system now sucks as it always finds MFC\ATL crap before the system API''s you care about.

I upgraded however mostly to test outwhole program optimisation after the speaker at teched said that recompiling AOE2 gave an overall 30% speed increase. And because it was shiny and new

As for the speed of managed code it apparently depends on what your doing. Intensive API work(utilities) is seen to be faster, while number crunching is a little slower.

Just remember that if you put your project on the net most people can used a dsw file but not many can use an sln.

Chris Brodie
http:\\fourth.flipcode.com

Share this post


Link to post
Share on other sites
I''m gonna ask a stupid question.
When I hear "Visual C++ .NET" it make me think that the compiler is linked to some gigantic microsoft server that monitors everything I do. Does .NET have ANYTHING to do with .com?

Share this post


Link to post
Share on other sites
quote:
Original post by Mulligan
When I hear "Visual C++ .NET" it make me think that the compiler is linked to some gigantic microsoft server that monitors everything I do.


Uh. No.
quote:

Does .NET have ANYTHING to do with .com?


Say again?

Share this post


Link to post
Share on other sites
quote:
Original post by Mulligan
When I hear "Visual C++ .NET" it make me think that the compiler is linked to some gigantic microsoft server that monitors everything I do.


[sarcasm]Yes! Big brother is watching![/sarcasm]

Of course not, do you think there would be as much buzz as there is about .NET if all it meant was that Microsoft was spying on your development efforts? Try looking here to read up on what .NET IS and what it ISN''T.

Share this post


Link to post
Share on other sites

  • Advertisement