OrtzIRC Update
December 30th, 2008
Time for another update.
Last time I posted about OrtzIRC, I mentioned I was looking at using System.AddIn as the framework for OrtzIRC’s plugins. (I’ll just call it MAF for Managed AddIn Framework, what it used to be called) Well the biggest problem with MAF is that it’s so freaking complicated. After I finally sat down for a while and read up on it, it just seemed to get more and more complex. And even more so when I started asking “well, how would I do this?”. For instance, everything that crosses the isolation boundary needs a contract. Events, collections (you have to use IListContract), everything. So for OrtzIRC this meant every single event (something like two dozen) needed to be redefined as contracts. (Or wrapped, or whatever) Another problem is that nobody uses it. I’ve only found two projects on CodePlex that use it and virtually no blog posts about it. I’ll admit, I never completely understood it all, but I’m pretty sure it would’ve been a LOT of work. Our own way may also be a lot of work, but at least it’s our own way.
Which is what I really wanted to discuss today…
As a quick side note, I did discover the Managed Extensibility Framework, being developed by Microsoft, presumably for future inclusion in the .NET framework. It looks really nice. Much simpler than MAF. And more popular too, at least on Stack Overflow. It’s a really young project though, and although they’re making it rather clear that MEF is here to stay, I think I’ll wait until CTP to give it serious consideration.
So Max and I had a disagreement about how to do the command plugins but that has been resolved (he won lol). So I’ll just point you to his two posts he wrote about it rather than re-explain it.
Onward and upward!
OrtzIRC Update
November 23rd, 2008
Just wanted to make a quick note about the progress of OrtzIRC.
It’s been pretty slow lately. I really want to get commands in before I do anything else, just to get it in a semi-usable state. So this means taking a step back and trying to work out how to do plugins.
We were kind of at a loss at first (I was anyway) but then I found out that .NET 3.5 had this new system for adding plugins to your apps System.AddIn. So far this looks really nice, and I’ll be implementing it soon unless Max has any objections. The only issue I can see so far is that I don’t know how this will jibe with possibly adding scripting later on.
You can get updates more often by following me on Twitter.
OrtzIRC Update
September 28th, 2008
Progress has been slow, but it hasn’t stopped. It’s been a while since the last update so forgive me if I repeat anything.
The biggest news to tell is probably FlamingIRC. I decided pretty early on that there was no need to reinvent the wheel and so decided against writing my own IRC lib. So I went with what seemed to be the most popular IRC library for .NET, Thresher. After having it pointed out to me how old and outdated the code for Thresher was (I think it was written for the first version of .NET) I decided to fork it and name it FlamingIRC. Sadly it’s under the GPL so it has to stay that way. I hate how viral GPL is. It’s very heavy-handed.
Max Schmeling sort of gave OrtzIRC a shot of adrenaline, cleaning up some of my code and improving a lot of things overall. I just wish I could code as fast as him…
I’m still thinking about features to add, mainly plugins and scripting. I’ve been thinking that both a plugin system and a scripting system would be over kill, but that seems to be how XChat does it so I’ll have to do some more research. If you have any experience with implementing plugin systems and/or scripting systems or know where I can get some information on implementing them, please leave a comment!
I don’t think I’ve linked to the project page yet, so here you go. You can take a look at the code if you want but there really isn’t anything to see yet. However if you do happen to see any bugs, or if you have any feature requests feel free to open an issue. I also started a page on planned features, mostly for my reference., which is obviously subject to frequent change.
