Thursday, November 3, 2005

What Has Craig Been Working On?

The other day I told you about some of the things that have been up in my personal life. I also said I'd post about what I've been doing for work. Ah - the classic blogger conceit: the surety that you care. :)


At any rate, right now I have four projects going simultaneously. Balancing them has, at times, been tricky, but so far I've managed to keep all of them moving forward without having to work nights or weekends. (Wife in school plus toddler means I couldn't really do that anyway.) I'll describe each of them briefly.


  1. e.POWER 2005. For the last three years, I've been helping my client Integic port part of their e.POWER workflow product to .NET. At the same time we move existing functionality, we've also been adding a web services fa├žade, with the obvious goal of making it easier to integrate e.POWER workflow services into their applications. I've been acting as an architectural consultant, advising on how to design and implement the system, but I also wrote big chunks of the security system, pretty much all of the database access library, and pretty much all of the build system, as well as a bunch of other bits and pieces. We're nearly ready to ship it, and I'm eager to see what happens when the bits go into action at a real, live customer. I think the answer is "good things", but the proof is in the pudding.

  2. FlexWiki. No surprise here - if you read this blog, you know that I've been doing a massive refactoring of the FlexWiki codebase, which includes a port to .NET 2.0. The end goal is to implement good application-level security in FlexWiki, but to do that I'm going to wind up rewriting most of the core of FlexWiki. When I'm done, I hope it'll be much more extensible and quite a bit less tangled than it is now. Since no one's paying me to do this one, it has the lowest priority, but I'm still trying to devote an hour to it every day, with the hope that I can get something back into the community some time in early 2006. We'll see how I do on that one.

  3. Pluralsight's Applied .NET Architecture & Design Course. The sharp-eyed have noticed that Pluralsight have announced several new courses, among them mine. I'm in the middle of writing the slides now, and it has been very challenging, mostly due to the nature of the material. How, exactly, does one teach "architecture" in four days? What does a lab exercise for a lecture entitled "service orientation" look like? Despite the challenges, I'm very pleased with the way the course is shaping up, and I hope to see a few of you in class once we start teaching it.

  4. MSDN2. Microsoft has brought me in to do some more work on the MSDN2 project, which has really matured since the Alpha release I helped write. I've got some really interesting stuff to talk about on this one, but I'm going to wait until a few things come together. Expect a series of posts in the coming months related to my work here.


The fact that I generally put time in on at least three of them most days makes for a lot of variety. I particularly like that I've got a mix of design and implementation going - nothing helps you figure out how to build something more than trying to build it (or something similar).


  1. Have you ever taken a look at the downloadable PHP documentation? One of the *really* nice things about it is that they have developer comments in there for all to see. For example, I can see the community's suggestions on how to use the function that's documented, why it's there, and possible gotchas. It'd be really great if MS put something like this feature in MSDN2 (or maybe even MSDN3). I imagine it would take some moderators/some voting sort of system to make it work, but it would certainly be a nice cure for the common:

    Property: Thread.CurrentPrincipal

    Description: Gets the current IPrincipal on the thread.

  2. I'll pass the idea along to the team.