F# (pronounced “F-sharp”) is a relatively new functional, open-source programming language developed by Microsoft and the F# Software Foundation. F# can be used to create scalable applications with ASP.NET MVC 4, ASP.NET Web API, Windows Communication Foundation (WCF), Windows Azure, HTML5, Web Sockets, CSS3, jQuery Mobile, and other tools.
Daniel Mohl’s Building Web, Cloud, & Mobile Solutions with F# is a well-written guide to “everything you need to know to start building web, cloud, and mobile solutions with F#.” Mohl also give some how-to examples using a range of technologies, libraries, and platforms, including SignalR, CouchDB, RavenDB, MongoDB, and others.
Mohl says his book is “intended for technologists with experience in .NET who have heard about the benefits of F#, have a cursory understanding of the basic syntax, and wish to learn how to combine F# with other technologies to build better web, cloud, and mobile solutions.”
In other words, this should not be your first book about F# or the relevant technologies that also are covered. Mohl recommends Chris Smith’s Programming F#, 3.0 as a first step toward learning the language.
In its 160 pages, Building Web, Cloud, & Mobile Solutions with F# offers five chapters, three appendices, and a number of code samples and screen shots. The chapters and appendices are:
- 1. Building an ASP.NET MVC 4 Web Application with F#
- 2. Creating Web Services with F#
- 3. To the Cloud! Taking Advantage of Azure
- 4. Constructing Scalable Web and Mobile Solutions
- 5. Functional Frontend Development
- Appendix A: Useful Tools and Libraries
- Appendix B: Useful Websites
- Appendix C: Client-Site Technologies That Go Well with F#
Mohl’s text also contains numerous links to important and useful websites.
He notes that “the primary focus of this book is on how to use F# to best complement the larger technology stack”, so he spends “a lot more time talking about controllers and models than views. F# provides several unique features that lend themselves well to the creation of various aspects of controllers and models.”
— Si Dunn