Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
.NET Platform/Framework/Technology
#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


Messages In This Thread
.NET Platform/Framework/Technology - by Conciente - 2009-09-07, 11:28 PM
.NET Platform/Framework/Technology - by Spaz - 2009-09-08, 02:30 AM
.NET Platform/Framework/Technology - by MaplePorn - 2009-09-08, 09:21 AM
.NET Platform/Framework/Technology - by Tempus - 2009-09-09, 01:30 PM

Forum Jump:


Users browsing this thread: 1 Guest(s)