Author Archives: Chris Marinos

5 Reasons to use F# Interactive in Visual Studio 2010

Note: While the following post is targeted at Visual Studio 2010 users, most of the points apply even if you aren’t using Visual Studio 2010. F# Interactive (FSI) is easy (and free) to install for Visual Studio 2008 users and command line users running in Windows or Mono. Details are available at the F# Developer […]

Posted in F# | 6 Responses

F# Object Expressions vs Mocking Libraries: Am I Missing Something?

Object expressions are a cool feature of F#. For those unfamiliar, they allow you to easily instantiate anonymous classes: There are times when it’s useful to instantiate anonymous classes in this fashion (a topic for another post), but I’m not convinced that mocking is one of them. However, based on based on a couple of […]

Posted in F#, testing, Unit Testing | 2 Responses

Building F# Projects in Expression Blend Without Installing Visual Studio

Recently, one of our projects hit a snag when I added a F# project to our WPF application. While our developers were able to build the project in Visual Studio 2010 and the Expression Blend 4 RC, our designer was unable to build from within the Expression Blend 4 RC because he did not have […]

Posted in Expression Blend, F# | 3 Responses

Moving Hosting

Well, it’s been a while since my last update. Although I’ve been hard at work speaking, writing, and buying my first house, a large part of the reason for my hiatus has been switching hosting. Most of you probably access my blog through my employer, SRT Solutions‘ site. My blog will continue to be published […]

Posted in General | Leave a comment

Don’t Misuse Lambdas

Avoid Duplicating Code It’s great that so many C# and VB.NET developers are taking advantage of LINQ. Unfortunately, using LINQ can encourage you to misuse lambdas. Consider the following simple example: Square is a useful utility function. It shouldn’t be defined as a lambda because that ensures code duplication instead of reuse. It’s more obvious […]

Posted in C#, F#, Functional | 17 Responses

It’s Beta For a Reason!

Today, I was in the process of creating a branch of Elevate to support .NET 4.0 when I came across a subtle, but breaking change in the Enumerable.Count function. The following code works in .NET 3.5, but fails in .NET 4.0 Beta 2: The Enumerable.Count method in .NET 4.0 Beta 2 fails to recognize that […]

Posted in C#, Elevate, Framework Bugs, Visual Studio | Leave a comment

Designing F# Functions for Currying and the |> Operator

Last week, I led a jam about F# at the Ann Arbor Study Group. One of my SRT Solutions coworkers, Ben Barefield, asked a question that warrants further discussion. After I introduced the forward pipe (|>) operator, Ben asked the following: In F# programming, do you design functions so the last argument is one that […]

Posted in Currying, F#, Functional | Leave a comment

Community Involvement and Elevate

First of all, thanks to all of you who have taken the time to look at Elevate. We have received a lot of excellent feedback. Most of it has been positive, and all of it has been extremely helpful. We didn’t expect to get this much feedback in such a short time, so we’ve been […]

Posted in Elevate | Leave a comment

Option Types vs Nullable Types

Some of the feedback that we’ve received about Elevate has to do with Option types and how they are different or similar to Nullable types in C#. Luke Hoban does a great job of describing some of the differences here: http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=470052 If you’ve played around with Option types in F# or another functional language, you […]

Posted in C#, Elevate, F#, Functional | 4 Responses

Introducing Elevate

The past few weeks, a few other SRT Solutions developers and I have been working on a new open source library called Elevate. We went public with the source on CodePlex this weekend, and although we’re still in the early stages of development, I already rely on many of the functional programming features of the […]

Posted in C#, Elevate, F#, Functional, SrtInsights | 56 Responses