Using Essence# as a .Net bridge

Eventually, you should be able to use Essence# as a bridge between Smalltalk programs that don’t run on .Net and applications and libraries and services that are native to .Net. That’s not currently possible, because Essence# doesn’t yet support network connectivity of any sort. But the plan is to port Craig Latta’s Flow framework to Essence# to solve that problem.

The idea is that, once Essence# has a fully-functional bidirectional object transport capability (such as the one used by Spoon,) it shouldn’t be at all difficult to establish a “stored procedure” architecture by which Smalltalk applications that don’t run on .Net could send code to Essence# for execution in a .Net environment–and vice versa, of course.

Sending code is a more powerful architecture than just sending remote procedure calls.  In the latter case, you’re limited by the API provided by the server. In the latter case, you can dynamically create your own API as the system runs. Even better, you can send code to be executed in an environment with better locality of reference to the data it needs, and better locality of reference to the functions that need to be applied to that data. It’s the same concept, and same architecture, that Gemstone has used so successfully for may years.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s