15. The computer program product of claim 6 further comprising, maintaining the annotation as annotation information in an annotation store.
6. A computer program product comprising at least one computer-readable storage medium having encoded thereon computer-executable instructions, which when executed perform a method comprising: providing an application programming interface (API) for managing annotations within content, the API comprising a DynamicSelectionProcessor.GenerateLocatorPart which converts a content selection to an annotation framework locator part, and a DynamicSelectionProcessor.ResolveLocatorPart which converts the annotation framework locator part to a corresponding content selection; loading content from a persistent storage to create a runtime content; upon loading the content, inserting one or more anchor markers into the runtime content, wherein each anchor marker is a simple class, AnchorMarker, which has properties for setting and getting an AnchorMarkerID, which is an identifier corresponding to the annotation framework locator part, and an AnchorMarkerTagType, the AnchorMarkerID and AnchorMarkerTagType properties being kept in a corresponding DependencyProperties of the each anchor marker to enable the properties to be serialized and deserialized; upon loading the content, each of the anchor markers registering itself with a DynamicAnchorManager by overriding an OnParentChanged method; converting at least one of the one or more anchor markers into content locators; anchoring an annotation to a piece of runtime content without altering the runtime content from the perspective of a program that has loaded the content, the annotation comprising a locator part identifier and a selection endpoint which provides a link between the annotation and the piece of runtime content; maintaining a runtime anchor table to manage a relationship between the annotation and the runtime content; and upon saving the content, persisting annotation information in an annotation store, the annotation store being separate from the content to which the annotation is anchored, the annotation information comprising data associated with the annotation and the piece of content, the annotation information allowing the annotation to be re-anchored to the piece of content upon the content being subsequently reloaded into a subsequent instance of runtime content.