Friday, January 23, 2009 1:17 PM
Discoveries This Week 01/23/2009
Another very exciting week. I’ve barely had time to catch my breath.
Meanwhile I’ve decided to take my weekly roundup post consistently in the direction of functional programming in the Microsoft universe for the foreseeable future. This will be with a heavy slant towards software engineering and, of course, F#.
It’s always interesting to see F# applied to existing Microsoft .NET infrastructure. In this case I was particularly impressed with how well the ideologies of the two technologies fit together.
However, the most important thing about Ted’s post is that it notes a bug in WCF that could cause quite a bit of headache if it caught you unaware. When using a F# declared interface, if no name is explicitly specified for a function parameter, WCF will throw an ArgumentNullException.
This will be manifest in the following situations:
- When svcutil.exe is run on the assembly.
- When you attempt to construct a ServiceHost with the interface.
The issue stems from that fact that traditional .NET languages cannot have nameless parameters. Thanks for figuring out this problem for us Ted.
As he posted in response to Ted’s above, Ray has been working towards getting his MCTS 70-503 certification and has decided to do all of his examples in F#. Making this kind of information available is a fantastic contribution to the F# community. I hope that in the future ray will both write more in more depth about his experiences and continue to provide samples.
In Chapter 9 of Expert F# the idea of using a Monad to represent a probability distribution is presented with code examples. Nada has rewritten this example in both Haskell and Scala. While they may not all be optimal implementations for each language, this provides an interesting opportunity to compare each language syntactically. I’m somewhat tempted to submit a Clojure implementation to round it off.
Yesterday, at the Boston MSDN Conference, Talbott Crowell showed off some really amazing examples from this package. This is a must have for any potential F# developer as the samples not only show how off the features of the API, they also demonstrate proper coding practices.
Ora is a add-in which provides a simple yet dynamic overview of the file you are currently editing in Visual Studio. Although I haven’t had a chance to test it in F# as of yet, Ora is my new favorite tool for every-day use in Visual Studio.
I no longer scroll up and down the code or try to sort through Visual Studio’s terrible method dropdown. Instead, I have access to a custom visualization of the class I am working on all of the time. The best part is that it fits perfectly over my properties window which I rarely use and have always considered to be a waste of space.