C# Workshop - Introduction
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.
Quote:Original post by RebootedQuote:Original post by jwalshDon'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#.
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.
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.
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
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!
Quote:Original post by jwalshQuote: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.
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement