954 karma · joined October 17, 2010
We didn't use the machine key as we'd have to pick one of two paths: 1) Using the [`System.Web.Security.MachineKey`](http://msdn.microsoft.com/en-us/library/system.web.security....) class to perform the encryption would probably leave us with the same issue we wanted to resolve (the class only exposes methods for encryption, not the key itself). 2) Parsing the configuration file manually is error-prone and makes us rely on the current format (and while it's unlikely to change given Microsoft's dedication to backward compatibility, it's an unnecessary dependency for an independent solution).
Our code serves as an example and while some will probably copy the code right into their solution, I expect most people will adapt it to suit their needs*. [Poul-Henning Kamp](http://phk.freebsd.dk/sagas/md5crypt_eol.html) recently wrote "Please notice that there is _no_ advantage in everybody in the world using the exact same algorithm, quite the contrary in fact." (relating to the application of well-known encryption algorithms, not designing such algorithms). We believe it's beneficial to share a solution that people can build and improve on. If nothing else, using different solutions prevent a single attack from affecting us all.
Another thing is that we will never provide the full range of Microsoft solutions. Microsoft already does that. Our edge is that we can offer more than just Microsoft products, and as we're running in EC2, there's a whole range of providers offering additional value as well. For instance, we're going to support memcached, because it's industry standard. Microsoft will support Velocity, because that's what they make. I think this is a substantial and important difference.
To sum it up, we're going to support file storage, message queues and what you need to build a scalable web application. Some may be the Microsoft flavor, and other may not.
People have used S3 even before hosting at EC2, and if you like, you can use Blob Storage without hosting at Azure too.
Table Storage, message queues and distributed caching exists in various flavors - and your point about not everybody needing these things are indeed true.
A common interface to avoid vender lock-in will be the next big step...