On 05/04/2010 06:03 PM, Miguel Madero wrote:
> Jimmy,
>  
> I was thinking more of an scenario where one of the teams in a project
> do one of the modules in IronRuby that would be downloaded on demand.
>  
> I guess one option would be for them to create a C# project and
> package their IR code in there. That project could also have the
> hosting and bootstrapping logic to hooked that module into the rest of
> the app. That's certainly the simplest way. I was thinking to use
> Chiron to download the XAP and let a "ModuleLoader" worry about how
> hosting it. Now that I mentioned it I guess we could do something
> similar with Gestalt.
>  
> I will play a bit with both options on the weekend.  
>  
> Miguel
> On Tue, May 4, 2010 at 3:59 AM, Jimmy Schementi
> <jimmy.scheme...@microsoft.com <mailto:jimmy.scheme...@microsoft.com>>
> wrote:
>
>     When using IronRuby in a Silverlight app where the main language
>     is C# or VB, then you wouldn’t be using Chiron at all. You’d add
>     the script files to your Silverlight project, and use the DLR
>     hosting API to run them.
>
>      
>
>     You could still use script-tags in this scenario as well; you’d
>     need to look at the source for
>     Microsoft.Scripting.Silverlight.DynamicApplication and call into
>     its initialization logic from your app.
>
>      
>
>     *From:* ironruby-core-boun...@rubyforge.org
>     <mailto:ironruby-core-boun...@rubyforge.org>
>     [mailto:ironruby-core-boun...@rubyforge.org
>     <mailto:ironruby-core-boun...@rubyforge.org>] *On Behalf Of
>     *Miguel Madero
>     *Sent:* Sunday, May 02, 2010 8:18 PM
>     *To:* ironruby-core@rubyforge.org <mailto:ironruby-core@rubyforge.org>
>     *Subject:* Re: [Ironruby-core] Using Ruby's standard libraries in
>     Silverlight
>
>      
>
>     I think the Chiron model is better for different scenarios. You
>     mentioned OOB, but also if IronRuby (or other Dynamic Languages)
>     are used as part of a statically compiled app where XAPs and
>     assemblies are distributed in the typical SL way. Not sure how we
>     would do it with Gestal as I've seen that it relies on the Script
>     tags. Is there a way of doing that programmatically?
>
>
>      
>
>     On Thu, Apr 1, 2010 at 2:40 PM, Jimmy Schementi
>     <jimmy.scheme...@microsoft.com
>     <mailto:jimmy.scheme...@microsoft.com>> wrote:
>
>     Wow, a lot of questions to answer here; let me know if I missed one …
>
>      
>
>     > What is the recommendation for using Ruby's standard libraries in
>     Silverlight applications? 
>
>     > Should the lib be copied to the project dir? should a reference
>     be added to the manifest? some other technique?
>
>      
>
>     Depends on whether your using the Chiron to generate a XAP file,
>     or your using dlr.js and embedding Ruby code in the HTML page with
>     script-tags.
>
>      
>
>     Chiron to generate the XAP:
>
>     Just copy the necessary Ruby stdlib files into your XAP file
>     directory. If you just want to reference an entire directory, you
>     can use the “-path” Chiron.exe option.
>
>      
>
>     Script-tags:
>
>     See the IronPython docs on this: 
> http://ironpython.net/browser/docs.html#zip-files. Basically you must have a 
> script-tag like this: <script type="application/x-zip-compressed" 
> src="lib.zip"></script>. Then you can reference the “lib” directory in your 
> scripts, including adding it to the path: <script type="text/ruby">$: << 
> "lib"; require 'erb';</script>. 
>
>      
>
>     You can also just list out each Ruby file used:
>
>      
>
>     # foo.rb
>
>     require 'bar'
>
>      
>
>     <!-- index.html -->
>
>     <script type="text/ruby" src="foo.rb" defer="true"></script>
>
>     <script type="text/ruby" src="bar.rb" defer="true"></script>
>
>     <script type="text/ruby">
>
>       require 'foo'
>
>     </script>
>
>      
>
>     I hope this shows that script-tags just download the script, and add it 
> to the “virtual file-system” that the DLR-languages see. The “defer” 
> attribute causes the script to not be run; it will be run when a script 
> requires it.
>
>      
>
>     > I zipped the libs folder and added it to the page as <script
>     type="application/zip" src="lib.zip"></script>.
>
>     > When I try to require the assemblies, the files are not found.
>
>     > 
>
>     > I tried to make the case simpler and zipped a simple rb file to a
>     zip and included it in the page as well:
>
>     > <script type="application/zip" src="test.zip"></script>
>
>     > I tried:
>
>     > require "TestClass.rb"
>
>     > require "TestClass"
>
>     > require 'test.zip/TestClass.rb'
>
>     > require 'test.zip/TestClass'
>
>     > 
>
>     > None of these worked.
>
>     > 
>
>     > By the way, I see that Chiron loads the zip files... 
>
>     > 
>
>     > What am I doing wrong?
>
>      
>
>     Change the mime-type to application/x-zip-compressed and try
>     requiring "test/TestClass" … that will work. We should also allow
>     |application/zip| as the mime-type:
>     http://ironpython.codeplex.com/WorkItem/View.aspx?WorkItemId=26676. Keep
>     in mind that Silverlight can only read archived files created with
>     a deflate ZIP algorithm; but using Chiron to create the zip file
>     will ensure it works … something like “Chiron.exe /d:lib /x:lib.zip”.
>
>      
>
>     > for assemblies you need to add an appmanifest I think
>
>      
>
>     Actually, all the AppManifest.xaml does it load the assemblies for
>     you; you can use “require” or “load_assembly” to accomplish the
>     same thing, so I advise against touching the AppManifest.xaml,
>     unless your XAML has dependencies on an assembly.
>
>      
>
>     Keep in mind there is no way to have an “assembly script-tag” …
>     you must put the assembly in a ZIP file.
>
>      
>
>     > if you put a app\myfile.rb in the zip file, you should be able to
>     do require 'app/myfile'  
>
>
>     Close … you have to use the file filename in the require call, or
>     add the zip file name to the path (see example above). Today this
>     only works when you use the zip file name without it’s extension,
>     but that’s a bug IMO:
>     http://ironpython.codeplex.com/WorkItem/View.aspx?WorkItemId=26677.
>
>     > Which brings up another question - are we willing to
>     "standardize" Gestalt by making it the best practice for using DLR
>     languages in Silverlight?
>
>     Well on its way; the http://ironpython.net/browser/ page only has
>     documentation for the “Gestalt”-way, though the Chiron/XAP model
>     will also be documented. Fun fact: while the first version of
>     Gestalt (0.5) was made completely independently by the
>     visitmix.com/labs <http://visitmix.com/labs> team, the 1.0 release
>     was completely rewritten and merged into
>     Microsoft.Scripting.Silverlight.dll. In fact, the current source
>     code on gestalt.codeplex.com <http://gestalt.codeplex.com/> is
>     only the code from 0.5; the latest source code for
>     Microsoft.Scripting.Silverlight is in IronRuby’s GitHub and
>     IronPython’s CodePlex source repos.
>
>     Keep in mind the previous Chiron/XAP file model isn’t going away;
>     Gestalt takes [too-must] advantage of how Silverlight expects apps
>     to be structured, so there are some limitations to it. The glaring
>     limitation is you can’t run gestalt apps out-of-browser; HTML
>     doesn’t work there … there might be a way around this by using
>     Silverlight’s ability to host HTML content IN a Silverlight
>     control, but that hasn’t been tested yet. So the Chiron/XAP model
>     will continue to be supported, but I don’t advise using it unless
>     you need to run out-of-browser. You can also combine the two; the
>     IronRuby tutorial uses the Chiron/XAP model for the app, but the
>     Gestalt-way to enable tests running in the browser.
>
>     ~Jimmy
>
>
>     _______________________________________________
>     Ironruby-core mailing list
>     Ironruby-core@rubyforge.org <mailto:Ironruby-core@rubyforge.org>
>     http://rubyforge.org/mailman/listinfo/ironruby-core
>
>
>
>
>     -- 
>     Miguel A. Madero Reyes
>     www.miguelmadero.com <http://www.miguelmadero.com/> (blog)
>     m...@miguelmadero.com <mailto:m...@miguelmadero.com>
>
>
>     _______________________________________________
>     Ironruby-core mailing list
>     Ironruby-core@rubyforge.org <mailto:Ironruby-core@rubyforge.org>
>     http://rubyforge.org/mailman/listinfo/ironruby-core
>
>
>
>
> -- 
> Miguel A. Madero Reyes
> www.miguelmadero.com <http://www.miguelmadero.com> (blog)
> m...@miguelmadero.com <mailto:m...@miguelmadero.com>
>
>
> _______________________________________________
> Ironruby-core mailing list
> Ironruby-core@rubyforge.org
> http://rubyforge.org/mailman/listinfo/ironruby-core
>   
_______________________________________________
Ironruby-core mailing list
Ironruby-core@rubyforge.org
http://rubyforge.org/mailman/listinfo/ironruby-core

Reply via email to