Let me get one thing off my chest real quick. MS-SQL's XPATH support bites... It doesn't just bite, it sucks hardcore. Ok, general background:I recently inherited a troubled project and a local firm (on a contracting basis). Without going into any (NDA-non complient) details, I am looking at how to replace proprietary identifier and search functions with XPATH functions:
Microsoft's XPATH doesn't support recursion. (A problem given how most people implement heirarchies in SQL)
To use XMLDocument and Datasets, you have to have the full tree in memory.
XPathNavigator seems to be a iterative call model, there is no way to restrict the nodes in the tree before hand.
For example, if I had a query //Customers[@name="bob"] the XpathNavigator still iterates in a manner that requires a tree in memory that represents the full structure.
I also have been playing Aspected Oriented Programming as of late, and am sorry to say that I agree with a growing consensus of people out there who point out that state and concurrency concerns make AOP very difficult. I am still working on a project that I called ManagedSockets. Managed Sockets use Attributes (or XML config information) to build a temporary state machine for socket communication to pass via. AOP is effective when a outside engine can manage the state of diverse objects. If something other then your engine is controlling the executable path of each object, problems abound. (This includes other aspects as noted Here)
Anyways, Contracting business is doing well for me, just wish I had more time.