Open Source .Net Development
Web Services Security
Don’t get me wrong I think C# is the best language around. Now that the C# 2.0 is almost out we can see some of the cool new additions to the language:
http://blogs.msdn.com/ericgu/archive/2004/03/11/88374.aspx
http://msdn.microsoft.com/msdnmag/issues/04/05/C20/default.aspx
I really respect the C# team @ MS. When I was out there I talked with Anders a little after his presentation on generics. I think they put a lot of thought into what they add to the language. Get this straight! I am talking about C# features NOT Visual Studio .Net features. Yes Edit and Continue will be nice but that has nothing to do with C#. (One thing I hope MS realizes is that they while they shouldn’t ignore their VB.NET users they should not recreate the problem they had in pre .NET days. I don’t want to be back to picking the programming language based on the features of the tools and editors available for that language!)
After using C# for a while now there are a few things about it that annoy me. First, why doesn’t C# support Option Function Parameters. There are some valid use cases for this. Also switches that don’t fall through are irritating! I realize why MS did this. But I would like in some places to switch on something and return different values based on the switch but this results in a C# compiler warning with non-reachable code. Which is true if you return from a switch the break will never be reached!
A few things that have bit me about C#. I know it is nitpicky but after working overtime for a long time coders tend to make these kind of mistakes. I hade a Parameter to a function that happened to be named the same as a property of the class (Not my code so don’t start) and instead of passing the variable to the function it called the property first! Actually maybe that could be useful in some situations but it took me forever to figure out!
Well if this kind of thing sounds familiar then talk to the C# Team about version 3.0 http://channel9.msdn.com/ShowPost.aspx?PostID=10276#10276.