• We’re currently investigating an issue related to the forum theme and styling that is impacting page layout and visual formatting. The problem has been identified, and we are actively working on a resolution. There is no impact to user data or functionality, this is strictly a front-end display issue. We’ll post an update once the fix has been deployed. Thanks for your patience while we get this sorted.

Few newbie Quesions on C#

JC0133

Senior member
Is there free software I can use to write/compile code in C#? If so which ones and where can I get it?

Any good tutorials out there on C#?

What are some of the common things C# is used for?

Ex. I heard C is good for embedded programming, C++ is good for video game development.

What are the core difference between C# vs C++ and C# vs Java?
 
Any good tutorials out there on C#?

What are some of the common things C# is used for?

Ex. I heard C is good for embedded programming, C++ is good for video game development.

What are the core difference between C# vs C++ and C# vs Java?

Tons of tutorials, use Google.

C# is object oriented like C++, but cleaner, leaner, and has managed memory. Once again, do some Googling.

You're asking questions that are too basic to really warrant a forum post. Try learning a bit on your own and come back with some more specific questions.
 
Tons of tutorials, use Google.

C# is object oriented like C++, but cleaner, leaner, and has managed memory. Once again, do some Googling.

You're asking questions that are too basic to really warrant a forum post. Try learning a bit on your own and come back with some more specific questions.

Maybe he/she prefers the opinion of AT people. Google will get you a range of answers.

But yeah, most of this can be googled anyway. Learning the code is the important part, although which environment you become comfortable with can become a factor. I'd suggest Visual Studio Express as well.
 
C# is a general purpose programming language supported by Microsoft's .NET platform. While C# is a very nice modern object oriented language, it's biggest advantage is the .NET runtime library which is a huge library of pre-written and tested code. When you learn any .NET language (C#, VB.NET, etc), you'll spend most of your time learning the runtime library.

Dave
 
I can see where the first point is debatable on some philosophical level, but the second one seems pretty unassailable to me.

Maybe on a particular platform, Winforms or WPF both have a lot to know to be productive.

What if I work in MVC or MVVM? Both are open source libs not part of the base library. I barely touch base classes outside of primitives and a handful of collections. Even with the "built in" Webforms, you don't have to know much to use it. In the end I am really doing most UX work in JavaScript nowadays anyways. The C# work is for business logic.

In my opinion, if you spend all your time interacting with the base classes, you are probably re-inventing the wheel, and/or not separating concerns enough.

The real advantages I gain from are features of the language, not the framework: generics, lambdas, linq, async.
 
Maybe on a particular platform, Winforms or WPF both have a lot to know to be productive.

What if I work in MVC or MVVM? Both are open source libs not part of the base library. I barely touch base classes outside of primitives and a handful of collections. Even with the "built in" Webforms, you don't have to know much to use it. In the end I am really doing most UX work in JavaScript nowadays anyways. The C# work is for business logic.

In my opinion, if you spend all your time interacting with the base classes, you are probably re-inventing the wheel, and/or not separating concerns enough.

The real advantages I gain from are features of the language, not the framework: generics, lambdas, linq, async.

I always thought that LINQ was part of the framework (whether .NET, mono, or whatever) and not the language itself.
 
I always thought that LINQ was part of the framework (whether .NET, mono, or whatever) and not the language itself.

Technically, it's both. lambdas are required to make LINQ work. And the default LINQ methods (like where, first, orderby, etc) are now in the core framework.

Though you don't necessarily have to use those, there are alternative LINQ implementations that can be pretty handy, DLINQ for one.
 
In my opinion, if you spend all your time interacting with the base classes, you are probably re-inventing the wheel, and/or not separating concerns enough.

Well, whether you're interacting with base classes a lot or not, there just seems to be a lot more material to cover and retain in the .NET libraries than in the language itself. It's not always easy to draw a clean line between the two, admittedly.
 
Well, whether you're interacting with base classes a lot or not, there just seems to be a lot more material to cover and retain in the .NET libraries than in the language itself. It's not always easy to draw a clean line between the two, admittedly.

Well if you look at it that way, I agree there is WAY more material in the base libs than in the lang. But you can spend an entire career never touching whole swaths of the base classes. I once spent the better part of three years working with the System.Drawing namespace. Another coder could have spent 12 years in .Net and never touched System.Drawing. I also could have accomplished the same thing by using a 3rd part lib to skip using System.Drawing altogether.

A coder who has done nothing but web and/or backend stuff since .Net was introduced may have never had the need to get into the giant beast that is System.Windows.Forms.

I guess my point is you can ignore the vast majority of the base libs and not miss out on a thing. And you only need to "learn it" when you use it. But you could spend just as much time learning 3rd party or open source libs as well, which is often preferable since they can be both more specialized and more performant. (Even MS chooses 3rd party libs over the .Net framework for a lot of things. JSON.Net is one example.)

If there's a set of classes to learn from .Net, it should really be the core interfaces. IEnumerable is used on damn near everything.
 
Last edited:
That's good advice. Focus on the core elements, the core interfaces, data structures, and coming from java one of my favorite things is linq.
 
That's good advice. Focus on the core elements, the core interfaces, data structures, and coming from java one of my favorite things is linq.

Agreed, that is good advice. I was also a linq fan, although I started out hating the idea because I initially encountered it in the context of linq-to-sql. But when I started using it for manipulating iterables I fell in love with it. For similar reasons I like python list comprehensions... although that and sets may be about the only things I like in python.
 
Back
Top