C# Workshop - Introduction

Started by
158 comments, last by Ambro 16 years ago
Thanks for the explanation jwalsh, definitely interested, as a student of course. BTW, be prepared for bunches of questions from me, if/when I don't understand something, I post all kinds of r-tard questions, lol.
Advertisement
I am interested in joining, please count me in!
Quote:Original post by Rebooted
Quote:Original post by jwalsh
As you know, C++ is very different from VB, both in syntax, and also in semantics. This is both a blessing and a curse, however, as the differences make it more difficult to learn the two languages at the same time, while making it easier to keep the two of them separate in your mind.

In contrast, C# is VERY similar to C++ in semantics, and even closer in Syntax.
Don't Visual Basic and C# have almost identical semantics? I'm sure I've seen people say VB.Net is effectively just a different syntax for C#.


I think he may be referring to the old Visual Basic, which was indeed very different from most other languages. VB.Net, however, is just another way of utilizing the .NET framework with a different syntax. They aren't exactly the same; there are some small differences between the two (C# and VB.Net, that is), but all-in-all they are functionally the same.

@JWalsh:
There are some other things that you might want to think about as you are going through the course. These are more .NET things than anything else, and although they aren't "pure C#", sometimes you need something practical when learning something like this.

Best Practices
- Such as naming conventions, boxing/unboxing, overriding ToString/GetHashCode/Equals, exception handling, garbage collection, and FxCop usage.

Collections
- The built in collections, their pros and cons, how to make your own collections / enumerators.

Reflection
MultiThreading
PInvoke
Console Input/Output
File reading and writing
XML

These topics aren't all that difficult or advanced, and while they aren't technically C# concepts, they are extremely useful and wouldn't take all that much effort to weave into the course material. Getting impressionable beginners on the right track from the start will make things much easier for both them and you as this workshop and others that may spring from it continue to progress.

Mike Popoloski | Journal | SlimDX
I'm in! I am pretty good in C++ and I have been wanting to move into C# to see what all the commotion is about. I know a little C# already but I never did begin to like C# all that much so I stayed with programming all my stuff in C++. So, I am hoping that this will help me use C# more and more and not use C++ for stuff that I not want to use it for...or heck...just use C# period until I get in college.

I can't wait for this thing to get started!

Chad

Quote:I think he may be referring to the old Visual Basic, which was indeed very different from most other languages. VB.Net, however, is just another way of utilizing the .NET framework with a different syntax. They aren't exactly the same; there are some small differences between the two (C# and VB.Net, that is), but all-in-all they are functionally the same.


Aye,

He's correct, I was referring to the old VB. With the advent of .NET and the Common Language Infrastructure (CLI), any language wishing to be .NET Compliant must expose a common set of functionality which is described in the Common Language Specification (CLS). This is why many .NET languages expand upon the keywords, syntax, and semantics of their non-.NET counterparts.

As a result, C++/CLR, C#, VB.NET, J#, JScript.NET, and a whole slew of other Non-Microsoft proprietary languages all share a common set of functionality.

If your goal is to develop using the .NET Framework any .NET compliant language will do.

However, unlike C++/CLR, VB.NET, JScript.NET, etc...C# has one distinct advantage. It was designed to be the language which the CLS was based upon.

There was no "stretching" or "expanding" of the C# language in order to get it to be compliant with the CLS.

<OPINION>
As a result, the syntax and semantics of C# often feel more natural than VB.NET and especially C++/CLR, which (to me) feels like .NET is forcing the languages to do things they weren't especially capable of doing.
</OPINION>

Hope that answers your question. Cheers!
Jeromy Walsh
Sr. Tools & Engine Programmer | Software Engineer
Microsoft Windows Phone Team
Chronicles of Elyria (An In-development MMORPG)
GameDevelopedia.com - Blog & Tutorials
GDNet Mentoring: XNA Workshop | C# Workshop | C++ Workshop
"The question is not how far, the question is do you possess the constitution, the depth of faith, to go as far as is needed?" - Il Duche, Boondock Saints
Quote:Original post by jwalsh
Quote:I think he may be referring to the old Visual Basic, which was indeed very different from most other languages. VB.Net, however, is just another way of utilizing the .NET framework with a different syntax. They aren't exactly the same; there are some small differences between the two (C# and VB.Net, that is), but all-in-all they are functionally the same.


Aye,

He's correct, I was referring to the old VB. With the advent of .NET and the Common Language Infrastructure (CLI), any language wishing to be .NET Compliant must expose a common set of functionality which is described in the Common Language Specification (CLS). This is why many .NET languages expand upon the keywords, syntax, and semantics of their non-.NET counterparts.

As a result, C++/CLR, C#, VB.NET, J#, JScript.NET, and a whole slew of other Non-Microsoft proprietary languages all share a common set of functionality.

Yes, and technically one can do the same with the Java language framework (see Jython), the idea of writing against a fixed virtual machine is not actually a new one, but a good idea for most HLL.
Quote:
However, unlike C++/CLR, VB.NET, JScript.NET, etc...C# has one distinct advantage. It was designed to be the language which the CLS was based upon.

Be forewarned though: C# does contain non-CLS compliant types (such as unsigned integer types).
Quote:<OPINION>
As a result, the syntax and semantics of C# often feel more natural than VB.NET and especially C++/CLR, which (to me) feels like .NET is forcing the languages to do things they weren't especially capable of doing.
</OPINION>

Possibly, C++/CLR has a lot of advantageous features that C# could do with.

In time the project grows, the ignorance of its devs it shows, with many a convoluted function, it plunges into deep compunction, the price of failure is high, Washu's mirth is nigh.

I'm interested in participating.
Count me in!
Certainly interested in this.
I'm in!

This topic is closed to new replies.

Advertisement