PDA

View Full Version : .NET dead or alive?



Drenriza
October 10th, 2011, 07:37 PM
So by a fluke, i saw a thread (cant remember the name) where someone was asking for advice on Java VS .NET.

And the replies was for example that, .NET development is a dead end. And that was like O.o to me.
I have for some time now, been working with C# and ASP.NET. And i feel like i am wasting my time, if the IT-community sees this as a dead end, eventually.

So my question is. Is .NET development going to end in the grave?

And if so, what could a backend server language be besides PHP that can give the same functions as C#. (under linux)

Thanks on advance.
Kind regards.

thatguruguy
October 10th, 2011, 08:02 PM
Are you developing strictly in c# now for Linux?

Drenriza
October 10th, 2011, 08:40 PM
Are you developing strictly in c# now for Linux?

Well i am using visual studio (still learning programming) and sure it auto-generates some html and php code. But besides for the auto-generated code, i'm only working in C#.

forrestcupp
October 10th, 2011, 08:50 PM
.Net is very much alive, and it will be for a long time.

The only reason people are spreading the rumor that .Net is dead is because Windows 8 Metro apps will be programmed in some kind of html5+javascript combo. But the truth is that the Metro style isn't going to cut it for all kinds of full desktop applications, and not everyone is just going to suddenly switch to Windows 8, anyway. .Net will be around for a very long time.

And ASP.net is certainly not going anywhere. I'd say that more servers and hosts support PHP, though, especially the Linux ones that can't run ASP.net.

gnomeuser
October 13th, 2011, 05:44 PM
Metro Apps will _NOT_ be programmed in a JavaScript+HTML5 exclusive cocktail. I don't know how this rumour started nor why people rattle it off as a reply like sheep as basic research would have shown this not to be the case.

Metro is the new Windows 8 UX. It supports .NET (C# and VB.NET), C/C++ and Javascript/HTML5 all on equal footing. It has a solution called WinRT which is meant to expose APIs (kinda like GObject-Introspection does for GNOME.. only this actually works) making them available for all supported languages.

If anything Microsoft are now pushing .NET harder by making it an equal citizen on the Windows platform where previously it was kinda bolted on as an afterthought.

In fact Windows 8 has an extremely strong developer story and some very interesting design choices. E.g. a rule in the Metro API design is that if any call takes more than 50ms to execute, you simply only get the async version. This is to ensure that applications in Metro are responsive and fluid at all times.

forrestcupp
October 13th, 2011, 06:01 PM
Metro Apps will _NOT_ be programmed in a JavaScript+HTML5 exclusive cocktail. I don't know how this rumour started nor why people rattle it off as a reply like sheep as basic research would have shown this not to be the case.
Nobody ever said that html5+javascript is the exclusive means of programming Metro apps. The reason people talk about it is because that is what Microsoft promoted when they unveiled Win8 & Metro UI.

But honestly, if you're trying to get a Metro app out quickly and you have a choice between html5+javascript or C/C++ and they both produce the same results, which one are you going to choose?

.Net isn't going anywhere because you can use it in Metro apps and not all software is suitable for Metro.

MadCow108
October 13th, 2011, 06:43 PM
But honestly, if you're trying to get a Metro app out quickly and you have a choice between html5+javascript or C/C++ and they both produce the same results, which one are you going to choose?


this case is obvious, but a bit more on topic:
html5 + javascript vs any .NET language which are you going to choose?
most people with a bit of sense will choose their favorite .NET language (I like boo (http://en.wikipedia.org/wiki/Boo_(programming_language)) ;) ).

Mmmbopdowedop
October 13th, 2011, 09:02 PM
html5+javascript or C/C++ and they both produce the same results,


If they produce the same results, i'd choose html5+javascript, for it being able to be used anywhere and being easy to implement, concidering.

But that makes me doubt this reply:

this case is obvious, but a bit more on topic:
html5 + javascript vs any .NET language which are you going to choose?
most people with a bit of sense will choose their favorite .NET language (I like boo ).

If I had sense I wouldn't use .net because HTML5+Javascript is so much more widely supported and easier.
I cannot see any advantages of .net

MadCow108
October 13th, 2011, 09:21 PM
If I had sense I wouldn't use .net because HTML5+Javascript is so much more widely supported and easier.
I cannot see any advantages of .net

ok which os besides the bleeding edge supports html5 + javascript for desktop applications?
maybe windows 8 chrome os and gnome 3, all not very widely distributed yet.

on the otherhand .net and mono run almost everywhere + you have the advantage of technically much more robust languages on a very solid technical basis than a hack on to 20 year old standards and a scripting language artificially pushed by the web far beyond to what it was supossed do in the beginning and never allowed to drop its design flaws due to compatibility issues.

forrestcupp
October 14th, 2011, 01:25 PM
ok which os besides the bleeding edge supports html5 + javascript for desktop applications?
maybe windows 8 chrome os and gnome 3, all not very widely distributed yet.

on the otherhand .net and mono run almost everywhere + you have the advantage of technically much more robust languages on a very solid technical basis than a hack on to 20 year old standards and a scripting language artificially pushed by the web far beyond to what it was supossed do in the beginning and never allowed to drop its design flaws due to compatibility issues.

True, but right now we're talking about programming Metro apps, which only applies for one OS. If you want to be crossplatform, that's obviously not the choice.

BrokenKingpin
October 14th, 2011, 07:10 PM
But honestly, if you're trying to get a Metro app out quickly and you have a choice between html5+javascript or C/C++ and they both produce the same results, which one are you going to choose?

C/C++ for sure if those were the only choices, but I would choose C# over both of those.

I don't get the point of writing apps specifically for Metro, as if you just develop a standard application it will work in and out of metro, and potentially cross-platform. Not to mention Metro looks like ****.

snip3r8
October 14th, 2011, 08:02 PM
I agree that metro is NOT COOL!

Delever
October 15th, 2011, 07:49 PM
The guys who worked on C# and .NET did a great job of making both the language and the framework painless to use. Productivity working with C# and Visual Studio is amazing, portability is great (Mono really caught up). Interopability with COM (used for metro) is good enough (and I heard they are improving it). Compared to Java, .NET has no-BS attitude (single framework, well defined features in updates, cleanly designed namespaces, well thought-out dependency system).

Now, windows 8 will also run on ARM architecture. That means another recompiled ".exe" is needed for all C++/Native applications. But most .NET applications will work fine.

.NET is not going nowhere.

forrestcupp
October 15th, 2011, 08:06 PM
C/C++ for sure if those were the only choices, but I would choose C# over both of those.

I don't get the point of writing apps specifically for Metro, as if you just develop a standard application it will work in and out of metro, and potentially cross-platform. Not to mention Metro looks like ****.

The point of writing apps specifically for Metro is exactly the same as why people write specifically for Android, then redevelop it for iOS (or vice versa). A program specifically developed for Metro will probably look a lot more native than a program developed for winAPI and made to run in Metro. It's like developing a program for KDE and running it in Gnome. It works, but it doesn't look like it fits right. (And yes, I know that modern themes help that out nowadays.)

But like I've said before, Metro is not always going to work for every type of program. But it will work for some things and be successful because of the "app" bandwagon that everyone is on now.

As for what Metro looks like, that's highly subjective, and it doesn't matter anyway, because like it or not, it's the future of Windows.

Thewhistlingwind
October 15th, 2011, 08:11 PM
My main problem with .NET is my main problem with Java.

The main implementation of Java is sun-java, which, by many accounts, "Is teh suck!"

The main implementation of .NET is controlled my Microsoft, and maintains cross-platform compatibility through the mono project. Which is apparently in a legal gray area.

Both of these things make me a bit cautious using either.

Lucradia
October 15th, 2011, 08:13 PM
.NET 4.0 and XNA are both very much alive. Terraria and all of its users still use it. Mono cannot support Terraria though, as it requires WPF, which is not in Mono.

forrestcupp
October 15th, 2011, 10:24 PM
.NET 4.0 and XNA are both very much alive. Terraria and all of its users still use it. Mono cannot support Terraria though, as it requires WPF, which is not in Mono.

Do you have experience with XNA? I've thought about checking it out. I have some C# experience, and I worked some with managed DirectX before XNA came out. Is XNA easy to use and fast enough? Honestly, managed DirectX was usable, but I'd much rather use a 3D/game engine with C++.

Lucradia
October 15th, 2011, 10:30 PM
Do you have experience with XNA? I've thought about checking it out. I have some C# experience, and I worked some with managed DirectX before XNA came out. Is XNA easy to use and fast enough? Honestly, managed DirectX was usable, but I'd much rather use a 3D/game engine with C++.

XNA Is the Xbox New Architecture or "XNA is Not an Acronym", it's not technically something to replace DirectX at all. DirectX is still here to stay. Why? Because the first release of XNA was in March 2006, before DirectX 10 (November 2006) and 11 (October 2009) came out. Both 2 and 3.0 versions came out even before DirectX 11. XNA is also a Runtime Environment (http://en.wikipedia.org/wiki/Run-time_system), not an API (http://en.wikipedia.org/wiki/Application_programming_interface), which DirectX is.

I also agree, C / C++ / C# would be better for Windows, if you could do it raw like that, and package your own, mini-runtime. Would also be easier on ReactOS devs that way, and possibly easier to port to Python, if needbe.

gsmanners
October 15th, 2011, 10:37 PM
Anything that can survive the Microsoft bureaucracy is probably not going to die any time soon. Honestly, it'll probably outlive Microsoft itself.

Legendary_Bibo
October 15th, 2011, 10:52 PM
.Net is very much alive, and it will be for a long time.

The only reason people are spreading the rumor that .Net is dead is because Windows 8 Metro apps will be programmed in some kind of html5+javascript combo. But the truth is that the Metro style isn't going to cut it for all kinds of full desktop applications, and not everyone is just going to suddenly switch to Windows 8, anyway. .Net will be around for a very long time.

And ASP.net is certainly not going anywhere. I'd say that more servers and hosts support PHP, though, especially the Linux ones that can't run ASP.net.

Metro uses .NET 4.5 and you can use html5, javascript, or xml for the DESIGN of your application, but they let you use a number of different languages for the actual code, they even support Visual Basic still.

Delever
October 16th, 2011, 02:59 PM
Do you have experience with XNA? I've thought about checking it out. I have some C# experience, and I worked some with managed DirectX before XNA came out. Is XNA easy to use and fast enough? Honestly, managed DirectX was usable, but I'd much rather use a 3D/game engine with C++.

If you don't mind, I may share some experience I had with XNA and 3D stuff.

I wrote a Tetris game with XNA once. 2D "board" with pieces in 3D environment. Thing is, most of the time was spent trying to get more performance out of the thing. Just for fun, I did "fake HDR" effect which involved pre-rendering the scene to a texture and then finding how bright it is (to dynamically adjust brightness for final render). It worked, but it slowed down everything more than was reasonable.

Few years later I did a 3D room with OpenGL and C++. I had 3 lights casting shadows (overlaping) and much more polygons overall in the scene. Since there were 2 objects that casted shadows, it involved pre-rendering the scene to texture 6 (!) times and then passing all those 6 textures to the final shader. Thing ran faster than the XNA attempt, producing a much more advanced visual.

In the end, when you use C#, you are fighting for performance. In performance-critical code, you have to avoid heap-allocated objects (every class in C#) and stick to simple types and structs. In C++, it's no problem to have stack-allocated class.
In C#, you have to avoid creating objects, because garbage collector can kick in at any time it wants and spend half a second freezing your frame to collect garbage. In modern C++, you wrap your objects in shared_ptr and have them deleted immediately when no longer used.

To get back to the topic: .NET is still alive, because I have spent months to write C++ app (while being a noob with OpenGL and GL shaders). And I have spent days to write C# one (while being a noob with XNA and DirectX shaders). So for smaller games, XNA is a very good choice. However, to do something that is portable without a performance compromise, C++ would be a better choice.

Delever
October 16th, 2011, 03:27 PM
So my question is. Is .NET development going to end in the grave?

No (Short answer, because it is very easy to find out why it won't end any time soon. I expect it to be alive at least for a lifetime :D).


And if so, what could a backend server language be besides PHP that can give the same functions as C#. (under linux)

There is so much cheap hosting for PHP, that it is hard to avoid torturing yourself with it.

Also, what do you mean by "same functions as C#"? Certainly I can do everything with PHP that you can do with C#. However, I do inflict much more brain damage to myself with PHP.

One choice would be to try C# in MonoDevelop IDE. However, all hosting services use IIS server, which may be slightly different at some places, so you will end up developing (or at least testing) with VisualStudio in VirtualBox.

If developing on Linux, try to look at Ruby on Rails. It has some momentum and Ruby is a much better language than PHP will ever be.

If a hosting does not matter, go with a language and tools that you really like. For example, I liked Python Server Pages. I am looking to try Node.js - a web-server that runs javascript on server-side (maybe good if you need a very fast web service). And there is more than I could possibly know :).

zekopeko
October 16th, 2011, 04:05 PM
To get back to the topic: .NET is still alive, because I have spent months to write C++ app (while being a noob with OpenGL and GL shaders). And I have spent days to write C# one (while being a noob with XNA and DirectX shaders). So for smaller games, XNA is a very good choice. However, to do something that is portable without a performance compromise, C++ would be a better choice.

I'm no coder so this is merely on observation on what I've read on the matter in regard to Mono/C# and games.

Mono developers have positioned Mono as an easily embeddable scripting engine for 3D games. For example Sims 3 uses Mono exactly for that. I agree that if you are going to build a game on the graphical level of Crysis 2 or Battlefield 3 rendering showed be done in C++ but .NET/Mono is plenty fast for dealing with scripting and AI and it gets you (as you pointed out) greater productivity.

Interesting thing is that, AFAICT, the recent Playstation SDK uses Mono to allow developers to use C#. Mind you this is official although there are other unofficial commercial products for various game consoles/smartphones (MonoTouch, Mono for Android, Wii and PS3 etc.) that apparently use OpenTK for OpenGL/CL/AL.

There is even an few open source projects replicating XNA functionality. The latest one is MonoGame.

Delever
October 16th, 2011, 05:27 PM
I'm no coder so this is merely on observation on what I've read on the matter in regard to Mono/C# and games.

Mono developers have positioned Mono as an easily embeddable scripting engine for 3D games. For example Sims 3 uses Mono exactly for that. I agree that if you are going to build a game on the graphical level of Crysis 2 or Battlefield 3 rendering showed be done in C++ but .NET/Mono is plenty fast for dealing with scripting and AI and it gets you (as you pointed out) greater productivity.

Interesting thing is that, AFAICT, the recent Playstation SDK uses Mono to allow developers to use C#. Mind you this is official although there are other unofficial commercial products for various game consoles/smartphones (MonoTouch, Mono for Android, Wii and PS3 etc.) that apparently use OpenTK for OpenGL/CL/AL.

There is even an few open source projects replicating XNA functionality. The latest one is MonoGame.

Mono is certainly good when embedded, because one basically gets access to the whole .NET library (or the parts of it which are exposed). If you only need to expose certain functions to C# from C++ and .NET System library is enough - it takes as little as 8MB (might seem a lot, but consider that you get .NET on A stick, without any additional installation).

However it must be said that it is easier to embed google's V8 javascript engine than Mono. And V8's integration level and performance on garbage collection is closer to the requirements of a game. However, no easy standard library for V8 (yet), you have to expose classes to it from C++ :)

forrestcupp
October 16th, 2011, 10:56 PM
XNA Is the Xbox New Architecture or "XNA is Not an Acronym", it's not technically something to replace DirectX at all. DirectX is still here to stay. Why? Because the first release of XNA was in March 2006, before DirectX 10 (November 2006) and 11 (October 2009) came out. Both 2 and 3.0 versions came out even before DirectX 11. XNA is also a Runtime Environment (http://en.wikipedia.org/wiki/Run-time_system), not an API (http://en.wikipedia.org/wiki/Application_programming_interface), which DirectX is.You're right that XNA isn't a replacement for DX. But it is the replacement for Managed DirectX, which was their implementation of DirectX for C# and .Net. When XNA was released, they dropped support for managed DX.


If you don't mind, I may share some experience I had with XNA and 3D stuff.You basically answered everything I wanted to know. I was mainly wondering what performance is like with XNA, and your experience tells me that it's crappy. I think it would be much more powerful and just as easy to use something like Irrlicht or Ogre3D in C++. A lot more portable, too. I know that at least Irrlicht has a C# wrapper, which would even probably be more powerful than using XNA, from what you say.

yereverluvinunclebert
September 4th, 2012, 12:54 AM
Perhaps start coding in VB6? I think it may well outlive :lolflag:.NET.

KiwiNZ
September 4th, 2012, 01:07 AM
This thread is dead.

R.I.P