Saturday, February 21, 2009

Venturing into IronPython: SQLite and IronPython Studio

Mark Garringer has been venturing into IronPython and posted a couple of blog entries on his experiences.

Mark has been trying to learn Python for a while, and as he is a .NET programmer he found it easier to get into IronPython. His first experiment is a Windows Forms SQLite Administrative UI using System.Data.SQLite. The blog entry shows the code:
The need for this arises because of the lack of built in encryption in SQLite. There are hooks for creating your own, which is what the people who make the ADO.NET Provider, System.Data.SQLite, did. What this means is that the standard SQLite3 command line utility won't open a sqlite database encrypted using the System.Data.SQLite provider. From what I understand, if I REALLY wanted to, I could get the Provider's source and make it so that the SQLite3 library was NOT compiled into the data provider then I could get the library and probably get an existing UI to use it and all would be fine. But where's the fun in that??

Pretty much all this does currently is execute a query against a database. But thats all the functionality I've needed so far so it's all good. This is like 20 minutes of my time but should improve as time passes.
In this entry he also wonders about which IDE to use. IronPython Studio provides intellisense (autocompletion) for IronPython code, but amongst its deficiencies is the fact that it firmly depends on IronPython 1; making it hard to use with IronPython 2.

Another thing IronPython Studio does for you is automatically add references to assemblies you're using. This means that projects created with IronPython Studio can't be run 'out of the box' with ipy.exe. In his second entry Mark looks at what you need to do to your code to run it with the IronPython console.
Note that if you use the IronPython Studio windows forms or WPF designers you will also need to add imports between your project files.

No comments:

Post a Comment

Note: only a member of this blog may post a comment.