I recently started listening to the Herding Code podcast and BoagWorld podcast and have subsequently been exposed to some really interesting “stuff”. I thought I’d put these down, if for no other reason than helping me remember to try them out.
One of the trippy things I heard about is a JS library that will rip flash into HTML5 on the client, eliminating the need for the plug-in.
The other thing they talked about was the security aspects around the web in general. All I can say is “unplug your internet connection now!” Also good justifications for having separate passwords (and usernames?) for each site.
The Fluent Validation library makes validation (and some business rules) almost a pleasure to write. I’ve used this with good results. Highly recommended!
Web Protection Library
I’ve heard of the Anti-XSS library, but I recently learned that MS released the successor to this in the form of the Web Protection Library. The implementation is a bit different and the feature set is a bit wider than it’s predecessor.
RestSharp and Hammock
All the “cool kids” are doing REST. Those living in Microsoft land have some support for this via WCF, OData, etc. But it can still be a little tricky.
This is not a library. It’s a service. It took me a minute to get the vision, but I think it’s really cool…
Twilio is a REST API for “voice-enabling” your app and/or sending SMS messages. The voice part is cool because you can build a speech enabled “IVR” really easily.
This is another thing that all the cool kids are doing… DBs without SQL. No, this is not the resurrection of Object Databases. Rather, this is the movement to “Document Databases”.
A Document Database is one that stores a chunk of data as a single unit. In some ways, it’s kind of like storing a chunk of XML in a SQL Server XML column.
The difference is that document databases often store the data using a JSON (or BSON) type format. They support many of the standard DB-ish features like indexes, queries, inserts, updates, LINQ, transactions, replication, backups, etc. They also enable some new features that are not simple in a relational model, like crazy fast performance, sharding, etc.
I sort of wish that I would have known and considered these for a couple projects as they would have made certain scenarios much simpler and decreased the development time significantly.
So far, I’ve looked into (but not yet used):
MongoDB is a fairly mature, open source, C++ based, cross platform, cross language implementation. It also has a commercial option.
RavenDB is an open source and/or commercial implementation that is tailored a bit more toward .NET. My investigation indicated that it has some features that management might like to see, such as ACID transaction, integration with .NET TransactionScopes, online backups, etc.
From what I understand, the key feature is it’s “glue” that lets you use an IoC container with MVC. Apparently, this is not simple to do on your own. With this in place, the framework can add some really nice features to an MVC app.
Just heard about Fluent Migrator one today. I’m intrigued by the concept of writing database migration steps in .NET such that they are DB agnostic and allow for easily moving a DB from one version to the next. This can be used in automated testing, automated deployments, and just getting a DB setup in the first place.
I’m still a big fan of the VS DB projects and Red-Gate’s tools, but this seems like another nice tool to have in one’s toolbox.