So I have quiet a few projects already on hand and do not planning on starting anything new for now, but this is for the future.
Can someone explain to me the relation between C#, .net and asp.net? Are the second two plugins of the first or are all three just the same thing with different names?
Is C# a language for the net or for standalone applications aswell?
Secondly is it worth my time to learn C#? Will it help me do anything better/faster than what I could do with C++ or PHP?
Third, is it worth using C# taking into consideration the difference in server costs, is the extra money a worthwhile investment or I should not bother if I can program in PHP.
C# is the flagship language of .NET, although it is not the only one that uses it (the 3 official .NET languages are C#, VB, and F#, and there are probably over 100 other languages created outside of Microsoft that can use .NET, and your code can consume anything written to target .NET). .NET itself is the name of the entire programming platform. That includes the .NET Base Class Library (BCL), which is the .NET equivalent of the Java API. ASP.NET is the web development side of .NET. It allows devs to write websites using C#, VB, or any other .NET language (although C# and VB are the only ones officially supported).
I suggest trying out ASP.NET MVC (different from regular ASP.NET, or ASP.NET Web Forms as it is now called) and C#. If you are still fairly new at OOP (no idea what your proficiency is in that area), it will really bring up your knowledge of OOP. Learning ASP.NET MVC is also a crash-course in modern web development, as it has unit testing, separation of concerns and other modern parts of web development built-in.
The learning curve could come as kind of a shock if you are used to PHP as .NET is quite a bit more complex, but I think it is worth it
Jackolantern wrote:C# is the flagship language of .NET, although it is not the only one that uses it (the 3 official .NET languages are C#, VB, and F#, and there are probably over 100 other languages created outside of Microsoft that can use .NET, and your code can consume anything written to target .NET). .NET itself is the name of the entire programming platform. That includes the .NET Base Class Library (BCL), which is the .NET equivalent of the Java API. ASP.NET is the web development side of .NET. It allows devs to write websites using C#, VB, or any other .NET language (although C# and VB are the only ones officially supported).
I suggest trying out ASP.NET MVC (different from regular ASP.NET, or ASP.NET Web Forms as it is now called) and C#. If you are still fairly new at OOP (no idea what your proficiency is in that area), it will really bring up your knowledge of OOP. Learning ASP.NET MVC is also a crash-course in modern web development, as it has unit testing, separation of concerns and other modern parts of web development built-in.
The learning curve could come as kind of a shock if you are used to PHP as .NET is quite a bit more complex, but I think it is worth it
Woah so much information, so many new questions
So from what I understand, by learning C#, I can create standalone general purpose applications. Now if I want to make web applications using C# I have to learn asp.net MVC or asp.net web forms. Much like python and django? Am i right?
So I would have to first learn C# then only can I move onto ASP.net?
Also they say C# is much like java, is it so? Because I kinda despise the entire concept of only programming with classes.
My concept of OOP is fairly good, I have done quiet a bit of OOP programming in C++.
Yes, it is a lot like Python, Ruby, and other general purpose languages. Since they are not 100% web languages like PHP (and there are very few 100% server-side web languages; maybe just PHP), they require something else on top of them to make web applications.
I would probably learn at least the basics of C# before getting into ASP.NET. Of course, a lot of C# will be familiar, even from knowing PHP since they are both C-like.
C# was created to be a Java-like language for .NET since Microsoft was just getting sued for their treatment of Visual J (MS's Java clone for Visual Studio 6) when .NET was being created. However, C# has evolved new features much faster than Java since its release, as well as having features that Sun said they never wanted to add to Java for one reason or another, such as operator overloading and custom value types. The last few large additions to Java have actually been lifted from C#, rather than vice versa.
However, like Java, C# is 100% OOP. There is no reason to dislike it, though, because it is honestly a much cleaner way of handling OOP. And beyond that, it doesn't change the way you code all that much. Every standard application begins with a class that has a Main() method. That is the main entry to the application, and inside that Main() method it is essentially procedural programming, and you can call the other methods declared inside your entry class. Because of this, almost any structure that is possible in the posterchild for mixing procedural programming and OOP, C++, can be recreated in the 100% OOP style of either C# or Java. The Main() method and any globals simply go into your entry class. Beyond that, it is pretty much all the same.