The Joins Concurrency Library
I've listened to this podcast on DotNetRocks a while ago and I remember to be quite exited about this Microsoft Research project. The session at TechEd was pretty lame. Claudio Russo finished almost half an hour early. At least it gave me some time to pick up something nice for the kids in the shopping center across the street :-).
The Irresistible Forces and the Moveable Objects
Nice session from Pat Helland. At least, now I have some excuse when something isn't working as expected: i can say its the movable objects.
ASP.NET Model View Controller (MVC)
Great interactive session on the new ASP.NET MVC Framework for which the first bits will be available starting from the beginning of next month. Matt Gibbs did a great job explaining the advantages of this new framework and why it is so desperately needed.
Here are some random notes I've made during the session:
- The ASP.NET MVC Framework will not replace WebForms in any way. WebForms is not going to disappear any time soon and will be enhanced in the future.
- The ASP.NET MVC Framework will be running on .NET 3.5. Templates will be available for Visual Studio 2008.
- ASP.NET MVC will probably ship with .NET 3.5 SP1.
- With the first drop it will not be possible to use AJAX or any other client-side stuff. The ASP.NET is currently working on that and the result should be available in the next milestone.
- Existing ASP.NET controls don't work yet as they make assumptions on the page lifecycle and ViewState.
There were a lot of questions from the audience as to why they should use this over WebForms. To me, this is crystal clear: testability. If you want to create maintainable and soluble applications with ASP.NET, then this is your path. Scott Guthrie started a series on the ASP.NET MVC Framework. I'll recommend you give it a read.
Deep Reflection - Things You Really Need to Know About Reflection 2.0
Nice closing session for the conference. Roy Osherove did his homework and showed some cool demos for generating code at runtime.
Some random notes I've made during the session:
- There are two ways for generating code at runtime. The first one is using the CodeDOM. Think of it like a DSL for code. It has its advantages, but you get a steep learning curve and the resulting code is kind of verbose and very hard to read. The second option is Reflection.Emit. With this option you have to emit IL code. The OpCodes class provides with the necessary IL instructions.
- .NET 2.0 introduced the DynamicMethod class. This makes runtime code generation a lot easier, plus it has the advantage that the generated code is garbage collected (which is not the case with Reflection.Emit) and that it is possible to skip visibility checks.
- RunSharp makes it even more easier to generate code at runtime. You can download it here.
- With Reflection.Emit it is possible to debug the generated code.
That was it folks. I enjoyed being at TechEd Barcelona. I actually learned something here and there. Lovely city and the weather was great.
PS: I'm blogging this in retrospect as I couldn't get the blogger administrator web site to run on the CommsNet PCs because they had JavaScript turned off.