As you can see from this chapter, the .NET architecture strives to support language integration and componentization in every way that makes sense. Thanks to metadata, programming becomes much easier because you no longer have to worry about the registry for component deployment and other kinks (such as CoCreateInstanceEx, CLSIDs, IIDs, IUnknown, IDL, and so forth) in order to support componentization. Thanks to the CTS, CLS, metadata, and IL, you now have real language integration. At the time of this writing, Microsoft has shipped a CLR for several flavors of Windows only, but it is conceivable that someone will ship a CLR for another platform soon. When this happens, .NET will be a multilanguage and multiplatform architecture.