tarmil
You can pass `LocalSchemaFile = "foo.ssdl", ForceUpdate = false` to the provider, and it will only try to connect to the database if the file foo.ssdl doesn't exist; if it does, then the provider just uses it to compute the schema. When the schema changes, you just need to set ForceUpdate to true, wait for the IDE to pull the changes from the server and write foo.ssdl, then set ForceUpdate back to false, and you can commit the changed file.
> Why drop lambda? Most Python users are unfamiliar with Lisp or Scheme, so the name is confusing
To which I'd reply: Why drop class? Most Python users are unfamiliar with C++ or Java, so the name is confusing.
The idiomatic way to deal with databases is using one of the available type providers. Basically, a TP generates types at compile time, in a way that actually plays quite nicely with IntelliSense [1]. In the case of db TPs, they're parameterized by a connection string and connect to the db to extract the schema and generate the appropriate types. Several exist [2]; SqlDataConnection and SqlEntityConnection are built-in, FSharp.Data.SqlClient and FSharp.Data.SqlProvider are community contributed. They all use query expressions (basically, F#'s extensible version of LINQ syntax) except SqlClient which directly uses SQL in a string (but still checks the query at compile time and passes arguments cleanly, thanks to the TP) and is therefore more like a (safer) micro-ORM.
[1]: http://msdn.microsoft.com/en-us/library/hh156509.aspx [2]: http://fsharp.org/guides/data-access/
"OWIN?" -> It can, with WebSharper.WebAPI [1].
"What's the story with the F# to javascript compilation; did they invent that or is it another project?" -> It's an in-house developed compiler.
"Who are these people?" -> A Hungarian company called IntelliFactory.
(full disclosure, I work at IntelliFactory.)