Welcome to tankete.com Sign in | Join | Help

José Lema

Inside the Community Server development team

Shared Posts


Badges



  • www.flickr.com
    This is a Flickr badge showing public photos from tankete. Make your own badge here.
Merlin: Decisions, Decisions, Decisions

This is part three of a series on Merlin. I recommend you read from the beginning.

So I knew I was going to build an Outlook style Rules Wizard, but how should it work? I figured there were two general approaches I could take.

  1. Write/compile code on the fly using the CodeDOM API
  2. Create some kind of "processing engine" and drive it with meta-data

The first approach sounded cool, but I knew that programming against the CodeDOM API could be quite cumbersome. I was also concerned that many security-minded administrators would hesitate to install an add-on that was busy compiling code on a production server (never mind that that's exactly what ASP.NET does). The second idea seemed more feasible, but also sounded like a lot of work. Maybe I could somehow leverage existing CS "stuff"? Okay, great idea...but what?

For some reason, my thoughts started to wander back the first contest, where our goal was to create a cool CSModule. In my mind, Merlin was beginning to sound like an easy way to create a CSModule, without coding. After all, I realized that the primary tasks in creating a CSModule were to wire up the correct event handlers and then write code for what should happen. What I wanted to do was to loosen the coupling between the condition and the action.

So I walked thru a specific example, auto-creation of a blog. At some point in time, we heard the desire that newly registered users get a blog automagically. So a developer took the time to write a CSModule that would trap the user creation event and then create a blog for that user. An option was added to the control panel which allowed administrators to turn the feature on/off. But what if blogs were to be reserved for users who are really contributing to the site (determined by points or post count or length of membership). Couldn't we somehow leverage the same code at a different time? Unfortunately, the answer was, not easily. You could copy the CSModule, tweak it, compile it, upload it to the server, and add it to the configured list of CSModules, but that seemed like too many steps; not to mention that there was no way to turn the feature on/off (without removing the configuration item).

Having chosen to leverage the CSModules framework, I still needed to figure out how to avoid the code/compile/upload/configure approach...   (continued)

Posted: Thursday, September 21, 2006 1:10 AM by Jose
Filed under: ,

Comments

Dan Hounshell said:

Jose, what a great series deomonstrating the thought process behind the coding. Excellent work - keep them coming.

I'm on the edge of my seat, waiting for the next installment. What will Jose do next? How can he leverage the CSModules framework and avoid the code / compile / upload / configure approach?

# September 21, 2006 8:36 AM

Community Server Daily News said:

from the editor's desk occasional messages that don't fit anywhere else Greetings from Telligent Corporate

# September 21, 2006 3:51 PM

Daily News Faq List said:

Jose Lema captures the essence of a Community Server Serial as he provides another installment of his

# November 22, 2006 11:15 AM

Community Server Bits said:

Jose Lema captures the essence of a Community Server Serial as he provides another installment of his

# March 12, 2007 11:21 AM
New Comments to this post are disabled