Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
.NET Platform/Framework/Technology
#1
Hello,

I want to know more about the .NET platform. Things like:
  • Which operating systems does it support?
  • Which programming languages can be used?
  • What combination of OS/Programming Language/IDE is best or recommended?
  • For this OS/Programming Language, what kind of system support to the documentation is available?

I am trying to immerse myself in this world but I need to know a bit more about it before. A little bit of background would help a lot.
Reply
#2
Conciente Wrote:Hello,

I want to know more about the .NET platform. Things like:
  • Which operating systems does it support?
  • Which programming languages can be used?
  • What combination of OS/Programming Language/IDE is best or recommended?
  • For this OS/Programming Language, what kind of system support to the documentation is available?

I am trying to immerse myself in this world but I need to know a bit more about it before. A little bit of background would help a lot.
What operating systems does it support? In theory, it's cross-platform like Java. Code gets compiled to bytecode for a virtual machine to Just-In-Time compile to native code at runtime. In practice, mainly Windows, although there's Mono for Linux/Unix/OS X (and Windows too).

Mono is an open-source set of tools (C# compiler, runtime virtual machine, etc) for doing .NET stuff on those platforms. Naturally, Mono tends to lag behind Microsoft's .NET, but the bytecode format and C# are standards, so Mono doesn't have to reverse-engineer the platform. However, there are parts of .NET that are not in the standard, including the Windows Forms GUI framework. If you plan to write cross-platform apps, make sure you familiarize yourself with what is and is not part of the standard. Mono attempts to implement some of the non-standard stuff as well.

Some terminology: .NET and Mono are both implementations of the CLI (Common Language Infrastructure). The CLI is what is standardized.

What programming languages can be used?
1) C# - The primary language. C# is my favorite programming language. It's basically like Java (OO, everything is a class, only single-inheritance allowed but classes can implement many interfaces) but generally less verbose and has some rather nice additions such as:

Events: A class, like a GUI Button, can have an event like "Click". In your code, you can "subscribe" a method to the event. The Button class can "fire" the event, which will call all methods subscribed to the event.

Properties: Syntactic sugar for the Get*() and Set*() methods you see everywhere in Java. You can have something like myButton.Text = "Click here". It looks like a data member, but it's actually calling a function.

You can put primitive types like int's inside containers without needing to store them in a wrapper class like Integer!

Nullable primitive types:
Code:
int? x = 5;
x = null;
if(x.HasValue)
    Console.WriteLine(x.Value);
else
    Console.WriteLine("x is null");

2) VB.NET - C# with different syntax, preferring to use words instead of symbols. "End If"instead of curly braces, etc.

3) C++/CLI - Microsoft-only. An extension of C++ allowing you to mix native code and managed code. It's pretty useful for making a .NET interface to a C or C++ library.

4) IronPython - Python for .NET and Mono. I don't know much about it, but I think it can use code written in other CLI languages, but the opposite is not true until .NET 4 comes out with better support for dynamic languages. I think so, anyway - like I said, I don't know much about it.

5) F# - Functional programming for .NET. Don't know much else about it.

6) Boo - I dunno, some language, read the wiki.

And more... (degrees of compiler and tool support may vary)

What combination of OS/Programming Language/IDE is best or recommended? Personally, C# with Visual C# on Windows. Visual C# Express Edition is free. I've tried SharpDevelop, but it lacked a couple features of Visual C# that I wouldn't want to go without (I can't recall exactly what, however). On other platforms, Monodevelop is the about the only IDE I think. If you have the option of developing on Windows, do so. The alternative IDE's may have made some progress since I last tried them, and might actually be worth using.

C#, being a properly designed language, has IDE's that can do powerful stuff you don't get with C++. Things like renaming a class or variable and having it update the name everywhere it's used.

For this OS/Programming Language, what kind of system support to the documentation is available? I don't entirely understand what you're asking here.


tl;dr - C# rocks your socks.
Reply
#3
You kind of neglected to mention J# as a supported language, basically Java with .NET functionality.

Although if you haven't had experience in OO programming before you really should be going with C#.
Reply
#4
What programming languages can be used?
What's already been said before. I personally prefer C# myself. I would stay away from C++/CLI if you can purely because it's not the nicest of the .NET languages. Since you can mix managed and unmanaged code into one, you end up with alot of clashes where you have to make it absolutely clear what function you're using (which is isn't great if you're just starting out). I also find it annoying to have to use the "^" handle all of the time (though it's just a substitute for "*" really...), but that's more of a personal dislike.

What combination of OS/Programming Language/IDE is best or recommended?
And personally, SharpDevelop using C# on Windows. Tongue

For this OS/Programming Language, what kind of system support to the documentation is available?
Do you mean the MSDN Library? That's the documentation for the .NET Framework Classes. *Edit* There's also the downloadable version of the MSDN Library, but I've never used it myself so I don't know whether it covers everything that the online Library documentation does.
Reply


Forum Jump:


Users browsing this thread: