[Vm-dev] How difficult to make a .NET VM?

Andreas Raab andreas.raab at gmx.de
Thu Mar 27 02:56:33 UTC 2008

Sounds nasty. One thing to experiment with the -browserWindow: command
line argument. Originally, it was designed to "get Squeak into a
browser" but of course, as long as your .NET form has a HWND handle you
can get Squeak inside it by passing the handle along with
-browserWindow:. Other than that I have zero experience with what makes
.NET form a .NET form and how to get anything to behave properly inside it.

  - Andreas

Aran Lunzer wrote:
> Hi
> [Apologies if this has been addressed before or elsewhere; my Google
> attempts didn't turn up anything that seemed relevant.]
> Has anyone tried packaging the Squeak VM as a .NET class?  (...if that's a
> sensible way to ask the question)
> For the past couple of years I've been using and hacking the Squeak/.NET
> bridge, created by John Pierce and Ben Schroeder, mainly so I can create
> and control IE-like Web browser views within the Squeak desktop (see, for
> example,
> http://km.meme.hokudai.ac.jp/people/aran/papers/UIST06-LunzerHornbaek.pdf).
> While this has been successful to the degree needed to be a platform for
> HCI research, the setup is still - frankly - an untidy and fragile hack.
> The main challenge has been how to combine the .NET views with the Squeak
> desktop.  Originally we made them children of the Squeak window, but this
> gave us a nasty, intermittent thread-based deadlock.  We worked around
> this by keeping the .NET views independent but making them hover in front
> of the Squeak window in the Windows Z order; some tweaks to the handling
> of focus-change messages in the Squeak VM allow us to ensure - most of the
> time - that the combination shares the desktop nicely with other Windows
> applications.
> However, as I say, it's pretty fragile.  So we're wondering whether
> there's a clean way to make the .NET views be children of the Squeak
> window, only without running into the COM vs. .NET threading issue that
> hit us before.  In particular, unless we can crack this issue it seems
> unlikely that we can get the Squeak+.NET combination to behave acceptably
> when embedded within a Web browser.
> I suspect that if we could package the Squeak desktop itself as a .NET
> Form we could then make the other views be proper children of that
> desktop, and the window management problems would all go away.  I also
> imagine that we could then go the extra step of packaging this .NET-based
> VM as a browser plugin.  If it all works, the result would be a pretty
> useful (though Windows-specific) Squeak+.NET environment.
> So: can anyone shed some light on how complex this is likely to be?  Has
> anyone already tried it?
> ...or would we be better off just looking for another way to get Web pages
> rendered?  A Squeak-native approach such as Scamper seems doomed to lag
> the state of the art by years; has anyone looked into packaging a library
> such as Gecko for use within Squeak?
> Thanks for any thoughts -
> Aran
> --
> Aran Lunzer
> Hokkaido University, Japan
> http://km.meme.hokudai.ac.jp/people/aran/

More information about the Vm-dev mailing list