Monday, July 9, 2012

A Few New NoSQL Helper Libraries

I've been working on a few new libraries lately that focus on providing functional wrappers around various NoSQL options.

FSharpCouch:

FSharpCouch is something that I wrote about a little over two years ago. At the time, it was more of an educational exercise, but I have since revised it and found aspects of it to be useful. This is now available on NuGet as package ID FSharpCouch.

Here's an example:

type Person = {
FirstName : string
LastName : string
}
let couchUrl = "http://localhost:5984"
let databaseName = "people"
let result = { FirstName = "John"; LastName = "Doe" }
|> createDocument couchUrl databaseName
let createdPerson = getDocument<Person> couchUrl databaseName result.id

You can find additional examples and the full source at https://github.com/dmohl/FSharpCouch.

MongoFs:

MongoFs currently has a primary focus on function composition as it relates to setting up the MongoDB client aspects of server, database, and collection. It simply wraps functions around the necessary methods of the C# Mongo Driver and auto opens the encompassing module.

Here's an example:

let dbName = "SomeName"
let collectionName = "SomeName"
type Person = {
mutable _id : ObjectId
mutable FirstName : string
mutable LastName : string
}
createLocalMongoServer()
|> getMongoDatabase dbName
|> getMongoCollection<Person> collectionName
{ _id = ObjectId.GenerateNewId(); FirstName = "John"; LastName = "Doe" }
|> people.Insert |> ignore
let person = people.FindOne()

You can get it from NuGet as package ID MongoFs and find more examples and source at https://github.com/dmohl/MongoFs.

Thursday, July 5, 2012

CoffeeScript Presentation Now Available on InfoQ

The presentation that I did at Code PaLOUsa entitled CoffeeScript: Good, Bold, and with Sugar is now available on InfoQ at http://www.infoq.com/presentations/CoffeeScript-Good-Bold-and-with-Sugar.

You can find an HTML version of the slides here and various examples on my GitHub.