The CS MVPs have been crazy busy lately, nose to the grindestone pounding out some CSModules that will be released when CS 2.1 ships. In the past I’ve created quite a few add-ins/modifications to the CS core (and have contributed a (tiny) bit of code that actually ships with Community Server), but have had limited experience with creating full blown CSModules. So what exactly is a CSModule? Keyvan has a good post here explaining the basics. In a nutshell, the ICSModule interface allows developers to tap into the CS processing pipeline, similar to how an httpModule allows you to tap into the asp.net pipeline.
So how is this different than a CS add-in? In theory, a CSModule should be a standalone assembly that you can simply drop into your CS installation’s /bin folder, add a configuration entry to your cs.config file, and be good to go without having to touch any of the core CS files (I like to think of it as something that modifies existing CS behavior, i.e. perform some processing on CS content itself). An add-in is just that, something that adds functionality to your CS installation and usually requires modifying several other files. Of course most modifications to CS will be some sort of combination of the 2, but the CSModule architecture is very powerful so quite a bit can be done without worrying about having to take the add-in (and added complexity) route.
I will be contributing 3 modules to the MVP Module Pack:
- A PostSignature module. Currently the only place that CS displays user’s signatures is in forums posts. This module will allow site admins to specify other CS applications to display a user’s signature (such as blog posts, gallery posts, or append information to mirrored content such as a disclaimer notifying folks that the content they are viewing is external and belongs to the original poster (which I feel is very important given that the original site will probably have a different copyright policy)).
- A QuickCommentEdit module. Something I’ve seen on more and more blogs (particularly Raymond Chen, an example is here) is that the original poster will respond to comments inline, i.e. they will edit the comment itself to put in their reply rather than posting a new comment. CS supports editing of comments, but you have to click like crazy to get to the interface. This will inject a “Quick Edit” link into comments which will allow the owner of the blog to edit the comment, and will also allow the comment poster (assuming they are a registered user) to edit their own comments to either A) reply to a reply or B) fix typos and whatnot. For busy sites, this leads to less clutter and easier to read threads, as well as just adding a nice “community” based touch to CS sites.
- A MirroredContentExtensions module. Mirrored content is the hot new feature in CS, and no doubt will be heavily used to aggregate external content, as well as existing content on the site itself. A limitation of mirrored content is that it’s a one shot pull…if the mirrored content changes CS isn’t notified so the content could become stale. This will be most useful for content that is mirrored from the CS site itself (i.e. if an intranet mirrors an HR doc that’s written up as an article, and then it changes, update the mirrored copy as well). For external content this will more than likely be a CS to CS story integration module; both sites would need to be CS applications and have the module installed so that they can fire off notifications to each other when content is updated. This one will be ambitious and I’m still figuring out the specifics behind it.
So, in addition to my 9–5 work, I’m obviously quite busy ;-). We’re hoping to have about a dozen or so modules in the module pack, so keep your eyes peeled when CS2.1 RTM’s!
Posted
Tue, Aug 1 2006 7:39 PM
by
Jayson Knight