Shared Resources Are Imaginary and Feature Gap Is Real

I was reading a blog post from Heath Stewart:

Components are the basic unit of installation in a Windows Installer product. They are installed by one or more features, and can contain any number of resources including files, assemblies, registry values, and are recommended for custom resources as well. Examples of custom resources are web sites, virtual directories, SQL tables, and stored procedures.

While it’s an interesting read, albeit covering 10 year old concepts, I have a problem with the last little bit about “custom resources”. Well, two problems:

1) Windows Installer doesn’t expose the concept of “custom resources”. This is entirely made up. Don’t believe me? Then tell me how to mark a custom resource as the key-file for self repair checks? How do you involve the custom resource for costing purposes? Sure, you can write data driven custom actions that associate themselves conditionally to a component, but your out of process custom action will never really implement resources.

2) Why doesn’t MSI already handle all these examples that are presented as “custom resources”. Seriously, what (enterprise) application these days doesn’t store data in XML or relational databases and/or present application layers as web apps or web ui? Wasn’t Windows Installer intended to solve enterprise TCO issues?

Sorry, but the feature gap here is just mind boggling if you ask me.