Currently the watch window works like a normal C# watch window. We have various debugger views to help make it more palatable so you can see Python attributes but dotting through some objects might require a cast to dynamic to really see certain values. But for normal .NET objects it'll work great.
> -----Original Message----- > From: [email protected] [mailto:users- > [email protected]] On Behalf Of Marty Nelson > Sent: Wednesday, September 01, 2010 10:25 AM > To: Discussion of IronPython > Subject: Re: [IronPython] Question about Visual Studio& IronPython Toolsand > Debugging > > > Thanks. There are really two issues I need to solve: > > 1. How to provide a good "dev" experience so script authors can use our > app in a mode that allows for iterative development. > 2. Manage the "final" version of scripts so they can be stored in > production system and used when needed. > > So it may be sufficient for #1 to pass some project directory as command > argument to application (or some other means) and read in the scripts > differently during the "dev" mode. Then offer separate feature to > commit those scripts to our db. > > Overall, this looks very promising. One more question, when attaching > and debugging, if the scripts use .NET objects (those from the > application environment that get passed into the scripts as variables or > created from our application types), does the Watch window work as it > normally does in Visual Studio for those objects? > > -----Original Message----- > From: [email protected] > [mailto:[email protected]] On Behalf Of Dino Viehland > Sent: Wednesday, September 01, 2010 10:01 AM > To: Discussion of IronPython > Subject: Re: [IronPython] Question about Visual Studio& IronPython > Toolsand Debugging > > If you'd like to store the scripts in a database and allow the user to > have > scripts reference each other the one thing that you'll probably want to > do > next is implement a PlatformAdaptationLayer to virtualize the file > system. > You can look at the Silverlight host to see how that's done but it > basically > it involes subclassing both PlatformAdaptationLayer and ScriptHost (to > provide your PAL subclass). > > The having VS save to the database part might be trickier. It seems > like you'd > at least need a plugin to VS to know when the files are getting saved > and that's > not something I know how to do off the top of my head. One extreme > solution > might be to plug into VS's source control mechanisms but I'm guessing > that's > not easy. If you're starting VS on the behalf of the user it might be > easy > enough to have another program which has a FileSystemWatcher watching > the > project and propagating changes. > > > > -----Original Message----- > > From: [email protected] [mailto:users- > > [email protected]] On Behalf Of Marty Nelson > > Sent: Wednesday, September 01, 2010 9:53 AM > > To: Discussion of IronPython > > Subject: Re: [IronPython] Question about Visual Studio & IronPython > Toolsand > > Debugging > > > > > > That will work fine. I can create a config parameter in our > application > > (or maybe tie into log4net IsDebugEnabled) and we can change how we > > invoke ScriptEngine. > > > > Next piece of the puzzle is about to manage scripts themselves. We > > currently have rich text editors within the application that directly > > store code as string. I'm thinking we need to move to more of a > script > > library approach where application references scripts that have been > > stored to a database. This would mean user experience is to use IPy > VS > > and we would need some VS add-in to save those files to our db behind > > the scene. > > > > Any thoughts or experiences appreciated. > > > > -----Original Message----- > > From: [email protected] > > [mailto:[email protected]] On Behalf Of Dino Viehland > > Sent: Wednesday, September 01, 2010 9:49 AM > > To: Discussion of IronPython > > Subject: Re: [IronPython] Question about Visual Studio & IronPython > > Toolsand Debugging > > > > Yep you'll need to write it out to a file and then create the > > ScriptSource > > object using the file instead of the in-memory stream. The filename > > will > > then be carried along w/ the ScriptSource and when the debugging > > information > > is emitted it will be emitted w/ that filename so the debugger can > pick > > it > > up. > > > > Also you won't want to always leave debugging mode on - it's much > slower > > to > > compile the code in debugging mode than it is in normal mode. I'd > like > > to > > eventually start supporting sys.settrace style debugging which won't > > have > > this penalty but that won't happen anytime soon. > > > > > -----Original Message----- > > > From: [email protected] [mailto:users- > > > [email protected]] On Behalf Of Marty Nelson > > > Sent: Wednesday, September 01, 2010 9:44 AM > > > To: Discussion of IronPython > > > Subject: Re: [IronPython] Question about Visual Studio & Iron Python > > Toolsand > > > Debugging > > > > > > > > > Setting DebugMode seems easy enough. > > > > > > The script code is loaded from an in-memory string. Would we need > to > > > write it out to temp file first for debug case? How does debugger > > > "know" what source is? > > > > > > Thx > > > > > > -----Original Message----- > > > From: [email protected] > > > [mailto:[email protected]] On Behalf Of Dino > Viehland > > > Sent: Wednesday, September 01, 2010 9:29 AM > > > To: Discussion of IronPython > > > Subject: Re: [IronPython] Question about Visual Studio & Iron Python > > > Toolsand Debugging > > > > > > The scripts need to be started in debug mode and be stored in files > > > somewhere on disk (so Visual Studio can load the source code). To > > > enable > > > debug mode you can set the DebugMode property on the > > ScriptRuntimeSetup > > > object. > > > > > > So this ends up looking like: > > > > > > var setup = Python.CreateRuntimeSetup(); > > > setup.DebugMode = true; > > > var runtime = new ScriptRuntime(setup); > > > > > > Alternately can also pass in "Debug" = true to the > IDictionary<string, > > > object> when > > > creating a Python engine: > > > > > > var dict = new Dictionary<string, object>(); > > > dict["Debug"] = true; > > > Python.CreateEngine(dict); > > > > > > When you attach all of the Python code should be debuggable. > > > > > > > > > > -----Original Message----- > > > > From: [email protected] [mailto:users- > > > > [email protected]] On Behalf Of Marty Nelson > > > > Sent: Wednesday, September 01, 2010 8:42 AM > > > > To: Discussion of IronPython > > > > Subject: [IronPython] Question about Visual Studio & Iron Python > > Tools > > > and > > > > Debugging > > > > > > > > > > > > How does debugging work when attaching to a process with IPy Tools > > in > > > > Visual Studio? > > > > > > > > Can I attach to an .NET application that has extension points that > > go > > > > into ScriptEngine and "debug" the Python scripts? > > > > > > > > ======= > > > > Notice: This e-mail message, together with any attachments, > contains > > > > information of Symyx Technologies, Inc. or any of its affiliates > or > > > > subsidiaries that may be confidential, proprietary, copyrighted, > > > > privileged and/or protected work product, and is meant solely for > > > > the intended recipient. If you are not the intended recipient, and > > > > have received this message in error, please contact the sender > > > > immediately, permanently delete the original and any copies of > this > > > > email and any attachments thereto. > > > > _______________________________________________ > > > > Users mailing list > > > > [email protected] > > > > http://lists.ironpython.com/listinfo.cgi/users-ironpython.com > > > _______________________________________________ > > > Users mailing list > > > [email protected] > > > http://lists.ironpython.com/listinfo.cgi/users-ironpython.com > > > > > > ======= > > > Notice: This e-mail message, together with any attachments, contains > > > information of Symyx Technologies, Inc. or any of its affiliates or > > > subsidiaries that may be confidential, proprietary, copyrighted, > > > privileged and/or protected work product, and is meant solely for > > > the intended recipient. If you are not the intended recipient, and > > > have received this message in error, please contact the sender > > > immediately, permanently delete the original and any copies of this > > > email and any attachments thereto. > > > _______________________________________________ > > > Users mailing list > > > [email protected] > > > http://lists.ironpython.com/listinfo.cgi/users-ironpython.com > > _______________________________________________ > > Users mailing list > > [email protected] > > http://lists.ironpython.com/listinfo.cgi/users-ironpython.com > > > > ======= > > Notice: This e-mail message, together with any attachments, contains > > information of Symyx Technologies, Inc. or any of its affiliates or > > subsidiaries that may be confidential, proprietary, copyrighted, > > privileged and/or protected work product, and is meant solely for > > the intended recipient. If you are not the intended recipient, and > > have received this message in error, please contact the sender > > immediately, permanently delete the original and any copies of this > > email and any attachments thereto. > > _______________________________________________ > > Users mailing list > > [email protected] > > http://lists.ironpython.com/listinfo.cgi/users-ironpython.com > _______________________________________________ > Users mailing list > [email protected] > http://lists.ironpython.com/listinfo.cgi/users-ironpython.com > > ======= > Notice: This e-mail message, together with any attachments, contains > information of Symyx Technologies, Inc. or any of its affiliates or > subsidiaries that may be confidential, proprietary, copyrighted, > privileged and/or protected work product, and is meant solely for > the intended recipient. If you are not the intended recipient, and > have received this message in error, please contact the sender > immediately, permanently delete the original and any copies of this > email and any attachments thereto. > _______________________________________________ > Users mailing list > [email protected] > http://lists.ironpython.com/listinfo.cgi/users-ironpython.com _______________________________________________ Users mailing list [email protected] http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
