C# 2.0, 3.0 and Beyond
If you didn't catch the latest C# team chat, you missed out. Here are some of the goodies.
"Host: Anders (Microsoft)
Q: What kind of AOP support will future versions of C# or .NET have?A: At this point we’re in wait-and-see mode with respect to Aspect Oriented Programming. I think it can be a useful tool for debugging and monitoring, but I have a lot of concerns with it as a programming discipline."
Host: Eric Rudder (Microsoft)
Q: What about IDE enhancements for C# in 2004?A: I think about the IDE enhancements in two categories -- first, the work that we are doing t I think about the IDE enhancements in two categories -- first, the work that we are doing that will benefit all VS users, and second, the work specific to C#. One key set of features that we are excited about for VS revolves around better support for community, right inside the IDE. We'll be adding better communication features for team development, great connectivity to Web Services for finding content, code. In the second category, we'll be adding some very cool support around key factoring scenarios, and really nailing "code intensive scenarios." We got a few nice little tweaks done in VS.NET 2003 (statement completion can sort by MRU, for example) but these sort of Intellisense features will continue to improve.
Host: Doug (Microsoft)
Q: What about refactoring support in the IDE?A: We are very excited about refactoring. That’s all I can really say. J
Host: Anders (Microsoft)
Q: Are we going to see more design pattern support at the framework or language level with the inclusion of Generics?A: Yes, there are several patterns we can formalize with Generics. For example, strongly typed collections. Also, interesting things like Optional<T> (meaning an optional value of type T a’la null values in databases) and EventHandler<T> where T is the type of the event arguments.
Host: Anders (Microsoft)
Q: What about beyond simple patterns. More like enterprise level patterns.A: Certainly, longer term generics will be very useful for that. Indeed, over time I fully expect Generics to be used widely across the board in our APIs.
Host: Anders (Microsoft)
Q: Is it planned to have nulls for ValueTypes ?A: We will most likely have an Optional<T> generic type that can be used to combine a value type with a bool flag that says whether the value is present. You could then have “Optional<int> x;” and say “if (x.Defined) DoSomething(x.Value);”