Did you read Day 1 first?
It was a rough start for me this morning as I battled an oncoming cold, here's what stuck during Day 2 of the Community Server Developer Conference 2007.
Low-Tech Options
- Scott reminds developers not to overlook the obvious. CS 2007 uses nice clean simple pages that you can customize very easily without modifying the core. These pages are all located in the ~/Themes folder.
High-Tech Options
- Use CSModules if you are make core changes. CSModules are like HTTPModules and are tailored to work with CS events. There is documentation and some examples for creating your own CSModules and, this point of this presentation seemed to be to point out that CSModules are the preferred method for extending CS beyond the low-tech options.
- You can use CSModules to override just about everything before it hits the database so, you can reach pretty deep into the core if you need....Why is my face red after reading that back?
- Examples of basic places you might extend might be spam rules or the point system but, certainly there are more advanced options. Dan Bartels and others have made quite a few such controls available.
- There were a couple of interesting (at least to me) notes about CS Tasks:
- There is a Windows service that can allow you to push offline tasks like indexing or stats tracking to a separate server.
- Email is an important task so make sure it is in its own <thread/> and adjust the timer according to your needs.
- SIDENOTE: While demonstrating the CSModules, Scott mentioned that Ink support may not be around much longer.
Shared Membership (a.k.a, Morpheous) (Jose Lema)
- It is a way to centralize your membership system for multiple sites.
- It is for cases where you may have multiple related sites with users that use one or more of them frequently. Example: asp.net, weblogs.asp.net, IIS.net, etc. have the same users so, they benefit from a shared membership system. If you have one site for Democrats and one for Republicans this may not be the feature for you.
- The shared membership feature stores login, roles (optional), and profile information centrally. All content (posts, ratings, etc) are local.
- Setting it up:
- Each site must use the same Application Name.
- Add new connection string for the shared membership database
- Point to the new provider
- Start with the largest site as the base
- Clean up duplicate users. There will be a script available for this and migrating from a virtualized setup in the downloads section of the CS website. If you don't do this, you will get "Role/User not found" messages for accounts like Admin and Anonymous.
- NOTE: If you want to keep roles separate, you can just exclude roles from the script.
Tips & Tricks for Shared Membership
- DON'T set CacheFactors="0". This will turn off all caching.
- Users are not created until they log on to other sites. From what I could tell, when a new user is created on one site, they don't get added to other sites until they try to login to them. I think it is just the CS piece that connects the user account to the content that doesn't get created. Maybe someone could clarify...
- You can't rename/delete users if you are using shared membership. Remove or hide the option from your Control Panel so you don't screw something up. CS2008 will have some logic in it that will show/hide this when appropriate.
- Resolving "Role/User not found" errors:
- You get this error when one or more of the following don't match up:
- Username in cs_User
- MembershipID in cs_User
- RoleID in cs_XXXPermissions
- To improve performance in large/busy sites, isolate the membership database from the sites--a dedicated server ought to do it.
The "Top 10" Tips & Tricks (Scott)
I was able to stay until the final item in the list but had to leave right after. I don't know what happened after the "top 10" list but Here's what I caught:
- Use configuration overrides. You can override the communityserver.config and siteurls.config files. You override them by creating an overrides file (i.e., siteurls_override.config). Put all of your custom markup in the override files to keep things clean and easy to upgrade. Also, use the override files to turn off any features you are not using. Wouldn't it be nice if the resource.xml and email templates supported overrides?
- Use CSModules. Not only are they easy to share/replicate, they help you leverage the CS core to extend CommunityServer.
- Use Chameleon controls. They really aren't all that tough once you get the basics and the documentation is pretty good. They are "CS2008-safe"--allegedly.
- Remove HTMLScrubber. I didn't quite get how this was a "tip". The HTMLScrubber protects you from script injection attracts. Maybe I missed something or maybe it would just be if you have a blog site where you are the "master of your domain" and control the content.
- Use shared membership instead of virtualization. These reads more like a warning than a "tip" if you ask me. On a related note, don't create custom themes for your users to select from and, don't encourage them to start using the Reader.
- a) Subforms can be your friends--if you'll let them, and b) You can extend them.
- Open your CS projects as a website instead of the full project (unless you need to). You'll still get all the intellisense goodies but will enjoy a faster environment. Want' something really fast? Try Notepad.
- Pick a good program that can help you track differences in files. When a new service pack or version is released, they can really help preserve any customizations you may have as well as give you an idea of what's been updated.
- Don't forget about 'Captn' Obvious. Backup your data frequently and before any updates. Use HTTPCompression. You'll enjoy a huge performance gain. Someone suggested ZIPEnable.
- Simple is okay. I'm not sure where this was headed because I had to leave. Couldn't have been too complicated though :-).
As with Day 1, you can also get the Telligent play-by-play of Day 2.
Later this week I will post my personal comments relating to the conference, the CommunityServer product, and the application of the "community" concept. My perspective is perhaps a bit different than many people who use CS. I don't make money using CS. No advertising. No retail. No commissions. No subscriptions. Not a dime. Well, okay, I get a salary but, that's not the point and not my primary job.
Part of my job is to make CS work for our organization at the purest level. The site exists for the sole purpose of building a strong community--everything CS purports to encourage with a twist or two.
How's it going? I'll talk about it later this week.
Sunday, 21 October 2007 19:55