Tuesday, March 28

Geek

Python.NET

IronPython

It's Python, so it's good, but it's Microsoft, so it's evil. I haven't determined the exact good/evil balance as yet but given that it's a one meg download, you can't go too far wrong.

Update: So, I can embed IronPython in my VB.NET application, which is great. But can I then access SQL databases from IronPython via the Python DB-API? Because then I can do... Uh, something that I would really like to do. I can do ADO.NET calls from IronPython, but that would mean I'd have to either write two versions of all the database queries or write a wrapper myself.

Okay, here's what I'm trying to achieve. Everyone knows I'm developing a blog/forum/wiki/portal/community application called Minx. What I haven't said much about - because I haven't gotten anywhere with it - is a client side application called Miko, which is supposed to let you easily manage your Minx sites. To do this properly, I need to embed parts of the Minx server engine. I hadn't found an easy way to do that previously short of writing the whole thing in Python, and I didn't want to do that because then there are problems with distributing the thing.

But if I can write it in VB and embed IronPython to handle the parts I've stolen from Minx, then I'm half-way there. But the Minx template system has SQL calls right inside it; it was designed to work with pretty much any SQL database but it doesn't have a separate storage API. And IronPython doesn't seem to have any way of using the Python DB-API. Still, writing a layer that translates to ADO.NET calls is probably a better way to spend my time than rewriting the template system in VB. (I'll just bundle it with SQLite for people who don't already have MySQL, PostgreSQL, Firebird, SQL Server and DB2 installed.)

Posted by: Pixy Misa at 10:03 PM | No Comments | Add Comment | Trackbacks (Suck)
Post contains 313 words, total size 2 kb.

Comments are disabled. Post is locked.
45kb generated in CPU 0.0133, elapsed 0.1168 seconds.
54 queries taking 0.1073 seconds, 336 records returned.
Powered by Minx 1.1.6c-pink.