Bert wrote: ""Jon is rightfully worried that it will cause problems with the database or support issues"
The SDK would solve the problems. Let's say for example Jon developed Amazing Objects. Which would be a series of objects which would expose the data and provide access to manipulate it but not provide direct access to the database. For example the Amazing Patient Object, would expose the patient demographic data. It would allow Methods and Properties for each "patient" some of those methods would allow an external application to get the patient demographic data, and consume it, say for a document management system.
The Amazing Schedule Object would expose the scheduling component and allow an external app to consume and write to the schedule tables. Because all of these would be handled by Jon's objects, the external program will have to BEHAVE in a manner that is CONSTRAINED by THE OBJECTS.
In development we purchase COMPONENTS every day. We don't change the core functionality of those components...we simply integrate them the way we want to.