Er.... why? Seriously, why break standards? – Randolpho
...
I suggest, then, that you investigate building a web service. WCF is a nice technology for that, and it hosts well in IIS.
I happen to like urls, and WCF is way too complicated for my purposes. I want it to be url-compatible, like REST, but capable of more than just navigating hierarchies, or doing well laid-out things. The problem I have with /users/chaiguy is that it is interpreting hierarchy where there is none: in my system "user" is a class, it's not a folder. user:chaiguy means the instance of the user class with the value of "chaiguy", and that is a single entity, that has the potential of having child-entities. So for example:
/user:chaiguy/name
...I would like to display the name of that entity. If I did this with your method, it would look like this:
/users/chaiguy/name
The problem is how do you know what's the class and what's the value? It could be interpreted as
/users/chaiguy:name
in my system, and that doesn't make sense. See what I'm getting at? To give a slightly more complicated example, suppose we want to select a child of the user entity out of multiple instances. So a user might have several email addresses. To select one, we might use:
/user:chaiguy/email:[email protected]/
So it is in fact recursive. It's not a file path, it's more like an XPath (or maybe similar to jQuery based on what little I know of it yet). That is, it's more of a dynamically-evaluated query selection than a hardwired file path. It gets evaluated on the server.
Make no mistake, I'm not building a typical web site or even web service here.