[Code Review] Silverlight fixes

Here’s a bunch of Silverlight fixes, mainly related to porting gestalt
to Microsoft.Scripting.Silverlight. Here are some live demos:
http://ironruby.com/gestalt. I also fixed a pretty annoying tutorial
scrolling bug, which is also fixed on http://ironruby.net/tutorial. This
review is mainly FYI only as it only affects Silverlight, so Jim is
pulling this in shortly, but feel free to comment if something stands

  •     Initial Ruby project scripts: get all closed/fixed work-items 

since a specific

  •     Fix various powershell 


  •     port gestalt "_units" and fixes 


o make sure visible Silverlight controls created from a XAML script
tag are added to the DOM directly next to a script tag.

o temporary work-around for HTML property setters.

o Make sure DLR.settings are taken into account when generating
Silverlight controls for XAML script tags

  •     Make sure script-tags are executed in order, regardless of 

their mime-type, inline or

o Execute all inline scripts in one scope, and execute each external
script in its own scope.

o Adds DynamicEngine.CreateScope() to populate helper variables on a
new scope.

o Add a test for ensuring Silverlight controls are added as immediate
siblings of XAML script-tags

  •     Fix HttpVirtualFilesystem.GetFileInternal to use Path.Combine 

to join baseUri and relativeUri, rather than just concatinating them,
rename DLR.createObject to DLR.createSilverlightObject, and update
Silverlight build aliases to the latest

  •     Make sure a copy of Silverlight in this repo is ignored, and 

various script

  •     DynamicApplication.MakeUri - makes a Uri relative to whatever 

makes sense at the time (HTML page or entry-point

o Unify all Uri-handling routines to use MakeUri

o Add DynamicEngine.RunningEntryPoint and
DynamicScriptTags.RunningScriptTags – flags which return true if the
respective type of code is running at the moment, false otherwise.

o Make sure DynamicEngine.Run is always referring to the entryPoint

o DynamicApplication.BaseUri is the Uri MakeUri always tries to be
relative against.

o Don’t try to run script-tag code if it’s neither inline or external

o Make DynamicApplication.LoadComponent and MakeUri static methods

o Add BrowserVirtualFilesystem.Normalize(string) as a static method

o Fix gestalt samples to use MakeUri

o Rename Cache to DownloadCache

  •     Various Silverlight 


o Load “init.*” files (from assembly resources) before any other code
runs, for language-specific monkey-patching, and remove previous
DynamicObject implementation.

o XapVirtualFilesystem checks for a file as a assembly resource if it
the file is not in the XAP.

o Make following public: DynamicApplication.BaseUri,
BrowserPAL.VirtualFilesystem, and

o DLR.createSilverlightObject now always takes a pre-parsed set of
options, while DLR.__createSilverlightObject takes already-parsed

o dlr.js tests should remove any added silverlight controls so load
time isn’t slowed down.

o Added BrowserVirtualFilesystem and Ruby extension tests.

o Local deploy scripts for Ruby Tutorial and Silverlight samples.

  •     DLR.createSilverlightObject should use DLR.settings, so 

user-defined defaults are used for all

o Also fix sample batch files to work from any current directory.

  •     Remove files from Tutorial which should not be checked 


  •     Cleans up LoadRootVisual and 


  •     Clean up Silverlight 


  •     Cleanup IronRuby tutorial 


  •     IronRuby tutorial - allow "silverlight" method to be used in 

chapters as

  •     Get IronRuby tutorial tests running in Silverlight again, and 

only show the console when running

  •     Woops, forgot to actually disable the test in 


  •     Fix IronRuby tutorial scrolling bug, and clean up TryRuby 

tutorial a