Dino Viehland wrote:
Here's a working example (no partial trust) in Python:

Cool! Thanks Dino. I don't normally speak to you here. :-)

Michael

import clr
clr.AddReference('Microsoft.Scripting.Core')

import System
from Microsoft.Scripting import SourceCodeKind
from Microsoft.Scripting.Hosting import ScriptRuntime

ad = System.AppDomain.CreateDomain('foo')
sr = ScriptRuntime.Create(ad)
sr.LoadAssembly(clr.GetClrType(str).Assembly)
py = sr.GetEngine('py')
su = py.CreateScriptSourceFromString('import System\nprint 
System.AppDomain.CurrentDomain\n', SourceCodeKind.File)
su.Execute()

Indeed partial trust might be a problem - we've run into a few bugs there on the desktop 
CLR where we have divergent code paths from Silverlight.  It's also only available on 
Orcas / .NET 2.0 Sp1 or later where we'll use anonymously hosted dynamic methods if 
they're available.  Finally I believe our "optimized module" and other 
subclassing of .NET standard types won't work because those need full reflection.emit but 
I haven't verified that.

Anyway, the issue of partial trust has been brought up with various people on 
the DLR side of things and there should be a push at some point to ensure this 
works.

But there are other advantages w/ app domains than just security.  You also get:
        the ability to unload code w/ a decreased worry of corruption
                This is using Thread.Abort safely.  Large amounts of code can 
be safely unloaded because there's no shared state outside of the app domain 
which can be corrupted (note there's some code in the world that this doesn't 
apply to, but it applies to most of the .NET framework).
        isolation of static variables that live outside of the script 
environment
                I think Tomas alluded to this
        the ability to unload assemblies
                Ye-olde-reason to use app domains on the CLR


-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Michael Foord
Sent: Monday, April 28, 2008 4:20 PM
To: [email protected]
Subject: Re: [Ironruby-core] Regarding IronRuby... How true it sounds from this 
blog

Tomas Matousek wrote:
[snip...]

And if you want app-domain isolation, just do 
ScriptRuntime.Create(System.AppDomain.CreateDomain("foo")).


Does this actually work? No one has been able to post working code on
creating an IronPython engine in another app domain on the IronPython
mailing list.

Can you use this to place restrictions on the app domain - like restrict
which assemblies can be loaded and control network / filesystem access?

A working example would be a wonderful thing...

The reason I am dubious is that it seems that the code generation used
by the DLR requires pretty much full trust in .NET 2, so *any*
restrictions (which is usually the point of running in another app
domain) blow up. I would dearly love to be proved wrong on this of course.

Michael Foord


That was easy, wasn't it?

Tomas

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of John Lam 
(IRONRUBY)
Sent: Monday, April 28, 2008 7:05 AM
To: [email protected]
Subject: Re: [Ironruby-core] Regarding IronRuby... How true it sounds from this 
blog

Sanghyeon Seo:


It seems to be a rather good overview of the status to me. I mostly
agree, except for the accusation that "Microsoft would never back an
OSS web framework like Rails in preference to its own".

He also gets a number of important technical details wrong about IronRuby, I'll 
respond later today.

Thanks,
-John


_______________________________________________
Ironruby-core mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/ironruby-core
_______________________________________________
Ironruby-core mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/ironruby-core


_______________________________________________
Ironruby-core mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/ironruby-core
_______________________________________________
Ironruby-core mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/ironruby-core

_______________________________________________
Ironruby-core mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/ironruby-core

Reply via email to