# Real-World F# Articles on MSDN

More than a year ago, Mike Stephens from Manning (who was also behind my Real-World Functional Programming book) asked me if I'd be interested in collaborating on a project for MSDN. The idea was to collaborate with Microsoft on creating some additional content for the official F# Documentation.

A few days ago, the new content appeared on MSDN, so I finally have an excuse for the recent lack of blogging! Although the content contains a large number of new articles that are not based on my book, you can find it in the MSDN section named after my book, right under Visual F#. If you can't wait to check it out, here are all the links:

While working on the articles, I also wrote about a few topics that we didn't use in the final version. You'll see them on my blog in the next few days, as soon as I edit them into a blog post form.

## Acknowledgements

At the moment, the information about authors on MSDN is a bit confusing, so let me clarify:

There are quite a few people who significantly helped with the project in one way or another. Nermina Miler and Mike Stephens from Manning helped to manage everything. Don Syme and Gordon Hogenson (from the F# documentation team) helped by reviewing several versions of the TOC. Keith Battocchi and Gordon also carefuly reviewed all the articles. Thanks!

## Chapter overview

In the rest of the article, I'll give a brief overview of each chapter, so that you know what new exciting topics are now covered as part of the F# Documentation on MSDN.

• ### Chapter I: Introducing Functional Programming

This chapter explains the basic concepts behind functional programming such as immutability, first-class functions and expression-based programming. Many of the concepts are demonstrated in C# to guide programmers without prior experience with F# or functional programming. It also shows the benefits that follow from these concepts, such as the fact that they make testing and reasoning about programs easier.

• ### Chapter II: Server-Side Functional Programming

This chapter explain server-side development and agent-based concurrency in F#. Agents (the MailboxProcessor type) are introduced using a tutorial that develops a simple chat server using agents, encapsulates it into a reusable .NET object and exposes it as a web page using the HttpListener type. The chapter also implements two reusable agents that solve common data processing tasks.

• ### Chapter III: Developing Client-Side Applications

This chapter explain how to write reactive user-interfaces in F# using Silverlight. It covers two approaches to writing reactive applications in F#. The first approach is declarative and it composes data-flow using event combinators. The second approach is more imperative and it describes control-flow using F# asynchronous workflows. The chapter also covers practical aspects, such as how to use F# with XAML and Microsoft Blend.

• ### Chapter IV: Numerical and Symbolic Computing

(This chapter is written by Yin Zhu)

This chapter explain how to use .NET libraries such as Math.NET Numerics, Microsoft Sho, and F# Power Pack to implement numerical algorithms in F#. It explains what makes F# a great language for numerical computing and reviews various numerical libraries for .NET and F#. Three tutorials cover the most common numerical libraries that can be easily used from F#.

• ### Chapter V: Developing Data-Driven Websites

This chapter explains how to use .NET web and data technologies from F#. It uses F# to develop the model and controllers of an ASP.NET MVC web application with a front-end created using C# and Razor. It shows how to use asynchronous workflows to write more efficient web pages and how to easily access SQL database using dynamic operator.

• ### Chapter VI: Visualizing Data with .NET Charts

This chapter describes the options for visualizing data in F#. The chapter consists of several larger tutorials that cover .NET Chart Controls, the FSharpChart wrapper for F#, Microsoft Excel and briefly also gnuplot. The libraries are demonstrated a few larger tutorials, such as visualization of financial data, and How To articles that show F# code to create common chart types.