First off, I love F#. I use it extensively for offline data processing, managing our build process (via FAKE), and general purpose Windows scripting. I've also dabbled in DSL creation, and if you follow any of examples it really is pretty easy to do. As Don Syme (F#'s creator) has said, F# is a lot like a statically typed Python (with lots more syntax).<p>But I wouldn't use it with ASP.NET. Learning F# is pretty heady and it would give your average .NET developer fits to learn it. You'd lose an advantage of using the .NET platform then - it's pretty easy to get average developers to be productive in .NET/C#. Forcing developers to learn F# would grind productivity to a halt.<p>Also, because of the whitespace requirements, F# is lousy in the webforms view engine. (Perhaps a Mako-like templating engine for F# would make sense).<p>Stick with C# for your web work and your libraries that your web site are using. Life will be easier.<p>If you really want to delve into F# on the web, these guys did a framework designed to be used with F#:
<a href="http://www.bistroframework.org/" rel="nofollow">http://www.bistroframework.org/</a><p>They also did a .NET port of the django templating engine:
<a href="http://ndjango.org/" rel="nofollow">http://ndjango.org/</a>
Hmm, good article, but I think it does more to expose Microsoft's inability or unwillingness to integrate F# into the .Net platform the way C# is.<p>He had to create a C# web project, as Visual Studio doesn't support that for F#. He had to create a C# LINQ-to-SQL project to generate model classes as there's no support to do so in F#.<p>This saddens me greatly. Here is a potentially great language in the .Net ecosystem and the support for the most basic of things is missing.
Has anyone used the WebSharper framework (<a href="http://www.intellifactory.com/products/wsp/Home.aspx" rel="nofollow">http://www.intellifactory.com/products/wsp/Home.aspx</a>) designed for F#? It looks like it addresses several issues I have with web development in general and F# web development in particular ...
If you get to write all your business logic in F# and there are no needless sources of headaches, I guess that could be pretty nice if you already use ASP.NET.
Somewhere I read an article about how easy it is to create your own view engine for MVC. Given F#'s facility with DSLs, it seems it wouldn't be too infeasible to make an F# view engine too.