I'm preparing some demos of using silverlight+ironruby with gestalt. It's really impressive but i'd like to show an example using the bing map control but can't work out how to make external controls available. Here's what I thought I should do: * Created a Microsoft.Maps.slvx containing the Microsoft.Maps.MapControl.dll and Microsoft.Maps.MapControl.Common.dll * Cracked open the dlr.xap file and added <ExtensionPart Source="Microsoft.Maps.slvx" /> to the manifest and packaged it up again The browser had cached dlr.xap which confused me for a while but I can now see the Microsoft.Maps.slvx is getting downloaded (i'm using my own little webserver tool - http://bitbucket.org/markryall/webshare/) but none of the classes seem to be available. Can anyone see what's missing? I'd also like to demo using silverlight 4 - does anyone know if changes are required to the gestalt dlr.js, dlr.xap etc. to use the new features (camera control etc.)? Mark.
on 2010-01-25 09:25
on 2010-01-26 04:12
In case anyone is curious - I got this to work by putting the Microsoft.Maps.MapControl.dll and Microsoft.Maps.MapControl.Common.dll assemblies directly into the DLR.xap file. This doesn't seem ideal - the slvx approach ensures that silverlight applications can avoid downloading command dependencies such as IronRuby, IronPython etc. once for every application. It's functional enough to show how easily silverlight applications can be created without needing an ide or a compiler. Mark.
on 2010-01-26 06:47
Mark, Putting the dlls in the XAP is one way to do it. You could also put them into a ZIP file, and in your app download the zip file and use Silverlight's Application.GetResourceStream API to extract the DLLs from the file, and call Assembly.Load on them. However, this is a bit annoying, so we support doing this: <script type="application/zip" src="foo.zip"></script> <script type="text/ruby">require 'foo.zip/foo.dll'</script> This lets you put files in a zip, and then access them like they were part of the "filesystem". However, I just tried this and I found a bug, so I'll check in a fix and let you know when it's fixed. ~Jimmy
on 2010-01-26 11:35
Thanks. That's excellent - I can easily load gems that way too I guess (adding foo.zip to the load path). I got the impression from the "sl back to just text" document that loading zips wasn't implemented yet - should've just given it a try. Gestalt does seem really awesome - providing textmate bundles is a nice touch. On Tue, Jan 26, 2010 at 4:32 PM, Jimmy Schementi
on 2010-08-01 09:06
Jimmy,
Did you ever get this fixed? I tried application/zip as well as
application/x-zip-compressed, but in every case I get a "No such file to
load" error.
Here's the source:
<html>
<head>
<script src="http://visitmix.com/dlr/dlr.js"
type="text/javascript"></script>
</head>
<body>
<div id="message"></div>
<script type="application/x-zip-compressed"
src="myarchive.zip"></script>
<script type="text/ruby">
# somelib.rb => document.message.innerHTML = "Hello World!"
require 'myarchive.zip/somelib'
</script>
<script type="text/ruby">
# file.txt just has a text string.
content = File.open("myarchive.zip/file.txt"){ |f| f.read }
window.alert(content)
</script>
</body>
</html>
Ryan Riley
Email: ryan.riley@panesofglass.org
LinkedIn: http://www.linkedin.com/in/ryanriley
Twitter: @panesofglass
Blog: http://wizardsofsmart.net/
Website: http://panesofglass.org/
On Mon, Jan 25, 2010 at 10:32 PM, Jimmy Schementi <
Please log in before posting. Registration is free and takes only a minute.
Existing account
(Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
Log in with Google account | Log in with Yahoo account
No account? Register here.