DotNet Bridge links are dead

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

DotNet Bridge links are dead

askoh
Administrator
DotNet Bridge is a useful package to connect Squeak to .NET. But links to the main web site are dead.
http://www.saltypickle.com/squeakDotNet

A student at Multimedia University, Malaysia is doing a final year project to extend DotNet Bridge and needs the C# source code for the project and any information of setting up the code. Thanks in advance for all help provided.

All the best,
Aik-Siong Koh
Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] DotNet Bridge links are dead

Mariano Martinez Peck
At least for now you can use google caché:

http://74.125.47.132/search?q=cache:EC5ulnIr-lgJ:map.squeak.org/package/f4f46616-3def-4f6c-b574-7b04d78dca28/autoversion/1+http://www.saltypickle.com/squeakDotNet&hl=es&ct=clnk&cd=1&gl=ar&client=firefox-a

cheers,

Mariano

On Wed, Feb 4, 2009 at 12:53 PM, askoh <[hidden email]> wrote:

DotNet Bridge is a useful package to connect Squeak to .NET. But links to the
main web site are dead.
http://www.saltypickle.com/squeakDotNet

A student at Multimedia University, Malaysia is doing a final year project
to extend DotNet Bridge and needs the C# source code for the project and any
information of setting up the code. Thanks in advance for all help provided.

All the best,
Aik-Siong Koh
--
View this message in context: http://www.nabble.com/DotNet-Bridge-links-are-dead-tp21831990p21831990.html
Sent from the Squeak - Dev mailing list archive at Nabble.com.





Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] DotNet Bridge links are dead

Aran Lunzer
In reply to this post by askoh
Hi -

I noticed this thread from last week.

As revealed on the Squeak lists (dev and vm-dev) about a year ago, I've
been working with the .NET bridge for some time, building on Ben Schroeder
and John Pierce's original work (package DotNetBridge-jrp.25, 28 July
2005) in the context of Squeak version 3.7.

This work, done to support my own HCI research, has involved additions of
various kinds:

 - various reinforcements and efficiency enhancements for the basic bridge
(detailed below)

 - some specialised .NET forms for rendering web pages and HTML fragments,
and some Squeak classes for controlling such forms (collaboration with
Jun Fujima)

 - some slightly scary hacks to the Squeak VM to help it support -
imperfectly - the illusion of .NET forms being embedded in the Squeak
Morphic desktop.


This year I'm planning, finally, to release this stuff to the Squeak
community.  To get some initial feedback I demonstrated the running system
at the C5 conference in Kyoto last month, and was encouraged by several
key Squeakers to push ahead with releasing the system despite its current
hackiness.

I suspect that the main challenge is that the whole thing is locked in the
era of Squeak 3.7.  Worse than that, there's an untidy boundary beyond
which my code depends tightly on its somewhat-customised 3.7 image, and
the packages (Comanche, Seaside, XML parsers etc) loaded into it.  Porting
this to 3.10 would probably take a big chunk of time; I certainly can't
promise to do it myself this year.


To be going on with, here's a list of the main updates to the .NET bridge
beyond release 25:

Memory management

 - tidying up cross-bridge allocation, registration and garbage collection
of objects
   * time-multiplexing between regular and "finalising" bridge states, to
avoid untimely collection of objects that are still needed
   * for the same reason, protecting the transient arguments to .NET
events with bridge-managed wrapper objects

 - standardised .NET-side delegates for invoke() messages and events, to
avoid creating a new .NET assembly on every invocation


Thread management

 - mechanisms to accommodate the bridge design feature whereby each Squeak
process using the bridge is given its own socket-based transport
   * maintenance of a Squeak odd-job process to be used for events that
require asynchronous handling, to avoid the uncontrolled multiplication
of processes (and hence Transports) that would arise from using "fork"
   * likewise a thread for all events that occur on the UI process, able
to cope with the fact that the UI process may change over time (e.g.,
because of errors resulting in walkbacks)

 - Squeak-side mutex-guarded invocation of methods on .NET objects

 - special handling for the threads and transports involved in long-lived
calls, such as Form.Run()

 - enhanced error handling:
   * introduction of thread types to help distinguish real problems from
glitches
   * retry for transient "primitive failed"
   * automatic re-reading on socket timeout


Efficiency

 - simple speed-up of library loading when the bridge is started

 - fast, invisible conversion of point/rectangle objects across the bridge


Diagnostics

 - detailed logging of .NET events (periodically written to a file)

 - facilities for showing on-screen telltales to reveal the bridge state
(object pool, memory etc)


Associated Squeak changes

 - mutex-guarded access to key Squeak mechanisms (e.g., Transcript, World
stepList) to enable working with asynchronous calls from Squeak/.NET
processes (in my typical setups there are 30 or more running Squeak
processes)


(This isn't necessarily a complete list.  I haven't trawled the changes on
the C# side.)

--

So what can I suggest...?

I'll be happy to give people access to my browser-plugin-style image and
its specialised DLLs, and to write some short explanations of what you can
do with it.  This could be ready in, say, three weeks' time.

But if people want to start playing with the source code I'll need some
time to tidy and package it up - my current plan being to tackle this in
May, after getting through some major April deadlines.


In any case, feel free to contact me directly.

All the best -

Aran
--
Aran Lunzer
Hokkaido University
Sapporo, Japan




Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] DotNet Bridge links are dead

askoh
Administrator
Hurray, we are so glad that DotNet Bridge is alive! Thanks for doing so much work on it. For starters, the student and I would be very glad to have instructions on how to run and debug the external code that makes DotNet Bridge work. Where can we get the version 25 source code for the Smalltalk and C# and any support code? How can we load the code in Squeak and Visual Studio C# Express? How can we step through the code on both the Smalltalk and C# sides?

Many thanks again,
Aik-Siong Koh