I can confirm that this works, one just have to kiss intellisense support goodbye though. Thanks for the effort.
If anyone interested, I have a copy of refactored namespace for IP Beta 4 (It compiles and runs on a test site, but I haven't tried it =on my product application yet) Dody G. On Wed, Aug 20, 2008 at 12:03 AM, Dino Viehland <[EMAIL PROTECTED]> wrote: > Ok, I believe I've gotten this to work. I know very little about > ASP.NET so I'm just going to walk through the steps to setup a new Web > Site which can use the DLR. The key limitation here is that if you're > referring to a type out of Microsoft.Scripting.Core.dll you'll need to do it > from a .CS file. If you like inline <script> tags you can still use them > but you'll need to add helpers to your .cs file for getting whatever you'd > want from the alternate namespace. > > > > Let's get started. First you need to install the DLR & IronPython (or > other DLR languages) into the GAC. > > > > Next in VS create your web site - File->New->Web Site… Save it somewhere. > > > > In the new project you need to make 2 updates to web.config: > > > > First add the compiler options reference to > Microsoft.Scripting.Core.dll for whatever language you're using. Luckily > you don't need this very often so having the extra verbose syntax isn't too > bad. I'm using C# so this ends up looking like: > > > > <compiler language="c#;cs;csharp" extension=".cs" warningLevel="4" > > type="Microsoft.CSharp.CSharpCodeProvider, System, > Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" > > compilerOptions=""/reference:DLR=C:\Program > Files\IronPython 2.0Beta4\Microsoft.Scripting.Core.dll""> > > > > > > Second add a reference to Microsoft.Scripting.dll so you > have access to the hosting APIs: > > > > <assemblies> > > <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, > PublicKeyToken=B77A5C561934E089"/> > > <add assembly="System.Web.Extensions, Version=3.5.0.0, > Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> > > <add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, > Culture=neutral, PublicKeyToken=B77A5C561934E089"/> > > <add assembly="System.Xml.Linq, Version=3.5.0.0, > Culture=neutral, PublicKeyToken=B77A5C561934E089"/> > > <add assembly="Microsoft.Scripting, Version=1.0.0.4000, > Culture=neutral, PublicKeyToken=31bf3856ad364e35, > processorArchitecture=MSIL"/> > > </assemblies> > > > > Next let's drop in our code. The code needs to go into the .cs file > associated with the page. In the new site you have a Default.aspx.cs page > which is pre-created for you. At the top of that file you need to add > "extern alias DLR;" – or whatever alias you used when adding the > Microsoft.Scripting.Core.dll reference. Next add a using statement to bring > in Microsoft.Scripting.Hosting. Now let's write some code in this .cs file! > > > > protected string RunSomeCode(string code) { > > var sr = ScriptRuntime.Create(); > > var engine = sr.GetEngine("py"); > > var scope = engine.CreateScope(); > > var source = engine.CreateScriptSourceFromString(code, > DLR.System.Scripting.SourceCodeKind.Expression); > > > > return source.Execute(scope).ToString(); > > } > > > > protected void OnClickHandler(object sender, EventArgs args) { > > result.Text = RunSomeCode(foo.Value); > > } > > > > Note the DLR.System.Scripting… when accessing code from > Microsoft.Scripting.Core. Most of the hosting APIs are in the > Microsoft.Scripting.dll so we usually don't need to use that. > > > > Finally edit the default page so it has some space for us to experiment > with scripting. Mine ends up looking like: > > > > <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" > Inherits="_Default" %> > > > > <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " > http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> > > > > <html xmlns="http://www.w3.org/1999/xhtml"> > > <head id="Head1" runat="server"> > > <title></title> > > </head> > > <body> > > <form id="Form1" runat="server"> > > <textarea runat="server" id = "foo" cols = "40" rows="1"/> > > <br /> > > > > <asp:Button ID="Button1" runat="server" text="Submit!" > onclick="OnClickHandler"/> > > </form> > > > > Results: <asp:Label runat="server" id = "result"/> > > </body> > > </html> > > > > Press F5, type 2+2 into the text box and hit submit. It's 4! > > > > *From:* [EMAIL PROTECTED] [mailto: > [EMAIL PROTECTED] *On Behalf Of *Dody Gunawinata > *Sent:* Tuesday, August 19, 2008 12:01 PM > *To:* Discussion of IronPython > *Subject:* Re: [IronPython] defined in multiple assemblies (framework 3.5) > > > > OK. Thanks a lot. In the meantime, I'll proceed try to modifying the > namespaces in Microsoft.Scripting.Core (if it's actually possible. Hopefully > there's no internal classes being used) > > Dody G. > > On Tue, Aug 19, 2008 at 9:38 PM, Dino Viehland <[EMAIL PROTECTED]> > wrote: > > I'm continuing to look into it... We're going to have conflicting names > because Microsoft.Scripting.Core includes a superset of the functionality in > the v3.5 System.Core - and changing that would complicate our internal > builds quite a bit. But hopefully we can find a way to get the aliases > working in web site mode. > > > -----Original Message----- > From: [EMAIL PROTECTED] [mailto: > [EMAIL PROTECTED] On Behalf Of Fernando Correia > > Sent: Tuesday, August 19, 2008 11:33 AM > To: Discussion of IronPython > Subject: Re: [IronPython] defined in multiple assemblies (framework 3.5) > > This issue is very bad for my project too. Do you think there is a way > we can make IronPython compatible with the Framework 3.5? > > I find it appalling that we even have to consider that... > _______________________________________________ > Users mailing list > Users@lists.ironpython.com > http://lists.ironpython.com/listinfo.cgi/users-ironpython.com > _______________________________________________ > Users mailing list > Users@lists.ironpython.com > http://lists.ironpython.com/listinfo.cgi/users-ironpython.com > > > > > -- > nomadlife.org > -- nomadlife.org
_______________________________________________ Users mailing list Users@lists.ironpython.com http://lists.ironpython.com/listinfo.cgi/users-ironpython.com