Blog - Robert Bogue [MVP]
Rob's Notebook
Thor Projects LLC - Welcome
Wednesday, August 27, 2008

Why You May Not Need a Protocol Handler for SharePoint

One of the topics that came up recently was the idea of writing a Protocol Handler for SharePoint in C#. Unfortunately I don't have much context on the item because it came through a series of steps. However, one of the things that struck me was that in many cases a protocol handler wasn't needed. However, that requires a moment of explanation on what a protocol handler is.

In SharePoint search (and most of the Microsoft Search technologies) there are two main extensibility points. First, you have the IFilter. The IFilter is responsible for processing the contents of a file. So there's an IFilter for PDF files and office files and so on. Second, is the protocol handler. The protocol handler's responsibility is getting the content from the end point to the gatherer so that it can be handed off for the correct IFilter for processing. There are protocol handlers for file shares, web sites, etc.

Invariably folks come along with a desire to index content that isn't in a repository available via an out of the box protocol handler. One of the obvious things to do about this is to write your own protocol handler to get to the content. While this may be obvious, it may not be the right answer. Protocol Handlers are multi-threaded and because of that they require a bit of care to write. As a general statement, they're harder than most folks really want to deal with. So if writing the protocol handler isn't always the right answer, then what is?

A few years ago I wrote an article for DevX.com titled "Using SharePoint Portal Server to Index Your Custom Application" In that article I show you how to quickly develop a web application to surface data from your custom applications, this same approach can be used for third party applications. The fact that it was written for SharePoint Portal Server 2003 shouldn't scare you all of the same pieces work today.

The net is that all of the content is made accessible via a web interface that the search crawler is pointed to and so the content becomes available via HTTP -- which SharePoint can index out of the box.

What are the limitations? Well, primarily, the limitation is that you can't pick up access control to the content so it's not the best fit for sensitive information -- or said another way information that is secured to individual users. However, for most kinds of information that an organization might want to make available it's quick and easy.

It should be noted that the BDC is another good way to reach into other custom applications -- if the data is relational in nature. While the strategy shown in the article works well for documents and data, the BDC is more data focused.

Hopefully, you'll save yourself some time on writing a protocol handler and have a chance to do something more fun. (Writing protocol handlers isn't fun.)


Categories: Professional | 0 Comments
 
Wednesday, August 27, 2008

Products I Use: Zune 80GB

With the advent of The SharePoint Shepherd's Guide for End Users I've been looking into different approaches to community marketing. One of the things that I've considered is podcasting/vidcasting/screencasting some of the content. As a result I picked up a Zune and started the process of figuring out how folks were consuming podcast content. One could argue that I should have picked up some form of iPod. I could have but the potential tie-ins to Windows Media Center and other MS products was too enticing to pass up. I've had the unit for a month or so now and I have a couple of observations I'd like to share.

1) Podcasting is cool, if you don't live in Indiana -- I'm blessed with an 8 second commute from one building (my house) to another (my office) on my property. What that means is that unless I'm going to a client site, I really don't have much time to listen to podcasts during the traditional time that most folks listen to them. Even if I didn't work out of an office on my property, I wouldn't expect to have much of a commute. In Indiana most commutes are less than 30 minutes. There are folks with exceptions, but it's nothing like the commutes that people on the east and west coasts have. What does this have to do with the Zune, well, without this travel time your podcasts can pile up. I'm definitely focusing my drive time to clients and every other scrap of "wasted" time into keeping up -- but it's a struggle. Of course, I have about 10 hours more per week to do other stuff rather than commute -- so it's a pretty good deal.

2) Music isn't always music -- I went ahead and loaded my entire archive of music on to the device. I had somewhat forgotten that I had previously ripped sound effects CDs, audio books, etc. It's quite the interesting thing to be listening to a music shuffle encompassing your entire library to be suddenly jolted with machine gun fire. (Feel free to picture me freaking out and quite nearly spewing a bit of Diet Coke I was drinking.) You should also feel free to help the product team realize that there should be more than one category of MP3 files. Not everything is music. Audio books have a much less traumatic effect, but the disruption from normal music is pretty noticeable.

3) Playlists aren't easy -- I've come to grips with the fact that I can't really build and maintain playlists on my Zune from the device. This seems pretty ridiculous to me. Where else would I put together a playlist other than where I'm playing the music. (The answer, according to the product team, is the computer software that doesn't suck as much as iTunes on my PC.)

4) Skipping, Jumping, and marking as read -- I found that skipping through a podcast, and particularly marking something as having been heard (read) was really difficult from the device. The skips don't seem to have a common length -- at least not that I've understood. When I fast forward for semi-long periods of time it takes the device a few seconds to catch up after I stop. It's not horrible -- but it's distracting.

5) Pictures -- I don't know what I should have expected from an on device picture viewer, but I'm pretty sure I would have been disappointed. The device doesn't automatically rotate images to the correct orientation. Nor does it allow multi-level zoom. It's fine to use as a "brag book" for your children, but it's nothing to write home about.

6) Moving between computers -- Despite the fact that you can associate your live account with Zune there's no record of what podcasts you've listened to in your profile on the server. As a result if you need to reinstall the Zune software on another PC you're going to have to sort out where you are on your podcasts. Not the end of the world -- but something that can be made much, much better.

7) Hardware -- I would be remiss if I didn't mention the first four weeks of my experience. My first device lost its mind before I could even get it synced the first time. It was probably a hard drive failure -- but it wasn't the best out of the box experience. Customer support wasn't much help. They couldn't even send me an email confirming the problem to help when I returned it. (The same day I bought it.) The second device fell, literally, fell -- it wasn't dropped. I bought a clear case for it that had a belt holster and the belt holster piece of it unscrewed. The unit dropped to the floor from 3 feet and despite initially looking fine, it had to be returned for service. The clear case it was in was completely unscratched and obviously the unit itself had no signs of damage. As a general statement, I believe that most consumer electronics should survive a fall from 4 feet -- particularly in a case. Anyway, I was told that it might take 15 days to get my unit back -- well, it was closer to a month. Lots of bad communication and bad customer service in there. It meant that I didn't have the unit on vacation -- when I could have caught up on some content.

 

All in all, it's a nice unit. Definitely better than any other music player I've had. It's definitely got me intrigued by the podcasting idea -- but I'm not ready to do that yet. I suspect I'll try repurposing some of the screencasts that are already in production for The SharePoint Shepherd's Guide for End Users into a podcast... when I have time. It will be fun to see how they look on a Zune's small screen. (They're all nominally set for 640x480).


Categories: Professional | 0 Comments
 
Sunday, August 24, 2008

Products I Use: Lenovo ThinkPad T61p

After several years lugging around 17" laptops made by Dell, I decided to change my strategy a little bit. I decided that I wanted to move to a laptop that had a smaller footprint, and was lighter. I don't travel that much any longer, but the fact that I could never use my 17" notebook on a plane was a problem. It meant I had to choose other strategies for being effective on planes. I switched to a Lenovo T61p. The switch has been relatively painless except for some Windows Vista issues that I won't go into at the moment. In the end there are some things that I really, really, like about the new machine. Specifically:

1) The Ultrabay ... I put another hard drive in it so I can run two hard drives to keep my performance up while running virtual machines. In total the machine has 640GB of storage (2x 320GB 7200 RPM drives). More than enough storage.

2) The 8GB of RAM... no, it's not a stock option, I had to by the memory from Kingston but the operation has been flawless. I was struggling with 2GB of RAM on my Dell Inspiron E1705 -- and I'm glad to be free of that problem.

3) The Screen ... I was using the 17" models because as a developer more resolution = greater productivity. I was able to run my Dell @ 1920x1200 on 17" ... I got the 15.4" screen on the Lenovo ... and I was worried that I wouldn't be able to run the resolution that high. Much to my surprise the screen is just as crisp as the Dell ... if not crisper.

4) The Trackpoint ... I have a really nice mouse, but frankly, I rarely pull it out unless I'm doing some graphics work. Why? Because the Trackpoint is so awesome. I don't have to move my hands to move the mouse. Even with a nice mouse pulling my hand off the keyboard takes too much time.

5) Fewer wrist issues ... I always had trouble with the Dell being too high for comfortable typing so I got the Targus X-Stand. I still use it with the T61p ... but I wouldn't have to the lower height made typing much easier and less painful.

6) Hardware wireless switch -- It's great to be able to turn off wireless (including BlueTooth) with a hardware switch.

7) The feel... The feel of the laptop itself is more solid than the Dell. The metal hinges stand out -- but overall it just feels more solid -- without feeling heavier.

8) Controls and Software ... The included software for managing wireless, network connections, track point/touch pad, etc... is a nice touch. It makes it easier to manage the system and the power consumption.

9) The keyboard light ... The keyboard light on the top of the screen is useful for when you're having trouble working in the dark. I imagine it will be good when giving a presentation.

There are some things that I don't like...

1) Intel Turbo Memory -- One might wonder why a laptop with 8GB of RAM needs what amounts to a 1GB cache. Well, the answer is it was cheap. It was less than $30 and even though people weren't singing its praises, I felt like it was a reasonable investment to try. Well, that was before the install crashed the first time, I had another blue screen while I was working ,etc. I downloaded an updated driver directly from Intel and things seem to be stable for the moment, but well, for the moment.

2) Fewer USB Ports -- The Dell was great in this area -- 6 onboard ports. The Lenovo has 3. It's enough but I wish I had more.

3) Speaker Volume -- The Dell had the ability to blast you out of the room. While the T61p is respectable, it could have more umph.

On upgrade that happened coincidentally around the same time was moving to a 24" LCD (I'll provide details later)... I have it positioned above the laptop which is great. It's easier to see than having to turn my head like I had to do with my previous monitor. The T61p drives it really well and the Presentation Director software is slick.


Categories: Professional | 0 Comments
 
Sunday, August 24, 2008

Products I Use: Dr. Bott T7 Hub

I've had a really hard time finding a USB hub. OK, not just any USB hub, but one that would be able of outputting the full power allowed by the standard to all of the ports. You see I'll set my mobile phone which can be powered via USB, my Zune, which can be powered via USB, and my page scanner for receipts all together on my desk and plug them into a hub. Invariably the hubs that I had would get flakey, or the devices would start reporting issues, or just fail to start up. So I went on a hunt. Eventually I found Dr. Bott's T7Hub. It's really simple. It will output up to 0.5A per port. The maximum the standard allows. It does this because it has a power supply capable of outputting 3.5A (7x 0.5 = 3.5A). Now I can plug in all of my power hungry devices and not have to worry.

The only odd thing about the hub is that the ports are clustered at the top (3) and bottom (4) rather than about the sides as you might expect.

The indicators about which ports are in use is entertaining although frankly you pretty much know what you've got plugged into it.

I mentioned my phone, my zune, and the page scanner -- but the other quite handy thing is the ability to plug in 2.5" hard drives into it as well. The little self-powered USB drives seem to like the hub as well.


Categories: Professional | 0 Comments
 
Saturday, August 23, 2008

Article: How SharePoint is a Different Kind of ECM

What do you think when I say ECM? Industry insiders, consultants, and implementers of ECM systems have developed an understanding of the tools as process enablers. Whether it's recording and filing invoices, contracts, or packing slips, ECM systems have typically been implemented in places where the number of documents is large and the findability problem for those documents is great.

It's not hard for most folks to imagine rows and rows of file cabinets overflowing with paper. Locating a document in these rows and rows of file cabinets was a task that was done very rarely because the cost to retrieve the paper was so high. However, this meant that important checks to see whether the invoice had been previously paid, or if the work was being double billed was skipped and organizations were losing millions of dollars each year. ECM systems, some of which quite literally cost millions of dollars to implement were put in to improve the speed of retrieval, the speed of filing, and reduce the amount of physical space required to maintain the records.

More…

http://www.ecmconnection.com/article.mvc/Sharepoint-ECM-document-management-0002


Categories: Professional | 0 Comments
 
Monday, August 18, 2008

Article: How to Use Site Definitions (aka Site Definition Governance)

One of the questions that often comes up in SharePoint engagements is the question of whether you should create your own site definition or whether you should use the out-of-the-box definitions and use features to control how they appear. It is in fact a topic of some discussion between SharePoint consultants. My hope here is to illuminate the primary reasons that you should be creating site definitions -- and what reasons you shouldn't create them. Let's start our discussions about using features to modify a site definition.

Read More ...

http://www.intranetjournal.com/articles/200808/ij_08_04_08a.html


Categories: Professional | 0 Comments
 
Monday, August 18, 2008

SharePoint Governance Briefing

On August 20th in the Microsoft Indianapolis offices I'll be delivering two SharePoint Governance Briefings. The first briefing is from 8:30 AM to 11:30 AM (Register here). The second briefing is from 1:00 PM to 4:00 PM (Register here).

This briefing is an extended version of some of the sessions that I do at SharePoint conferences. We'll be covering the basics of how to make sure that you have the right amount of control and adoption in your SharePoint environment.

If you're curious about what we'll be talking about you can peek at the presentation deck. We've got a ton of other material that we'll be handing out and using including the SharePoint Deployment Guide and Checklists so the presentation deck doesn't really cover everything we'll be talking about -- but it will provide a general framework for our conversation.

If you're available on the 20th to be in Indy, we would love to see you there, if not perhaps we'll end up doing one near you soon.


Categories: Professional | 0 Comments
 
Friday, August 15, 2008

Whitepaper: Increasing SharePoint Engagement

Whether you were hearing voices in your head saying "Build it and they will come" or you simply had to find a replacement for your languishing Internet, more often than not once you get the SharePoint® platform in place you'll find pockets of the organization where it seems like everyone is using SharePoint for everything – even things they shouldn't -- and other pockets of the organization where SharePoint is seen as some sort of contagious disease.

The kind of engagement that you may see in parts of your organization is powerful. Instead of users simply using the solutions which have already been created, they're creating their own solutions. Sure occasionally an engaged user will create a solution in SharePoint which isn't well advised, however, many solutions that engaged users create will fit the platform and will be useful to themselves and others. A user who's adopted SharePoint can use those solutions that have already been created, but an engaged user can create their own solutions. Driving forward an implementation with users who've adopted SharePoint means creating all of the solutions for the users – a rate limiting factor for any growth of SharePoint.

Implementing a solution like SharePoint and getting engagement across the organization isn't easy. Every organization has the early adopters – the folks that may have pushed for SharePoint in the first place – and the laggards – the folks that are still etching out their memos on stone tablets. There's also the diversity of technical skills which happen in organizations where some folks are carrying around the latest devices while others are still using the "bag" car phones that aren't exactly mobile. So how do you increase SharePoint engagement throughout your organization?

It's not magic. It's not some ancient incantation. By just applying a handful of easy-to-understand principles, you can get the engagement you want without losing control. We will discuss two techniques for developing engagement by first evaluating your situation and second by building intent to use.

 

To read the rest of the whitepaper go to http://go.microsoft.com/fwlink/?LinkId=125133&clcid=0x409


Categories: Professional | 0 Comments
 
Thursday, August 07, 2008

SharePoint Search Operational Role (Job Responsibilities)

I was recently asked about what sort of things should be in a job description for a person who manages search in a SharePoint environment. I say all of the time that search isn't a product -- it's a process. What I mean by that is the product will only get you so far. A human will have to be involved to make the tool really valuable. Here's what I sent to the client as a final set of activities/skills/responsibilities:

  • Review and Resolve Crawl Logs for Errors and Warning
  • Review Crawl Logs for Performance and Heartbeat
  • Periodically review performance data for the search indexer to identify impending performance issues
  • Manage the indexing process
    • Review requests for new content sources
    • Develop, monitor, and tune content crawling schedules
    • Implement appropriate crawler impact rules
    • Implement and maintain crawl rules to control what content is in the index
    • Work with network operations to control permissions for the crawler account to manage what is in the index
    • Manage search scopes
  • Review usage reports and work with the organization to improve relevancy by leveraging out of the box tuning parameters including:
    • Changes to the noise words files
    • Changes to the thesaurus file
    • Changes to the authoritative sites list
    • Changes to keywords and best bets

 

Thanks to Spencer Harbar and Ben Curry for their contributions to this.


Categories: Professional | 0 Comments
 
Saturday, August 02, 2008

MOSS Single Sign On Setup Step-By-Step

With a TechNet article titled "Configure single sign-on (Office SharePoint Server)" one might wonder why I'd feel the need to write a blog post on how to setup Single Sign-On. The answer is that the TechNet article is incomplete (as of this publishing) and obtuse. So my hope is to walk through the process with screen shots so that you can see exactly what to setup and what the values should be.

There are seven main activities that we need to do:

  1. Create the SSO service account -- This is the account that the service will run under.
  2. Create the SSO groups -- These groups are used to control who has the ability to administer SSO (export the master key) and who has the ability to manage it (add/remove application definitions.)
  3. Configure the SSO Service - Set SSO to start and get it to use the service account.
  4. Configure SQL Server - Authorize the SSO service account to SQL server.
  5. Manage SSO - Setup SSO in MOSS including the groups and the database.
  6. Manage the encryption key -- Create the encryption key that will be used for protecting the username and password information on the system.
  7. Manage settings for enterprise application definitions -- Define what initial applications SSO will be setup to manage passwords for.

In each of the next sections, I'll walk you through dialog-by-dialog what you need to select and what to do in order to get a working setup.

Create the SSO Service Account

We need to create an account for the "Microsoft Single Sign-on Service" (SSO Service) to run as. This account has to be a domain account that has local administrative privileges for the front end web servers, must be a member of the SharePoint group Farm Administrators, must have db_creator and security administrator roles in SQL Server, and must be a member of the group that is defined as SSO administrators. Obviously this is a few requirements. We'll work on the getting this account and the appropriate groups setup over the next several major steps. In this section we'll concentrate on getting the account setup.

In the following steps I'm going to add the user to the Domain Admins group in order to get the local administrator privileges requirement met. If you are working on a production installation, I'd recommend creating a group for SharePoint Farm Administrators and add that group to the local administrators group of each of the front end web servers -- as well as the index server. If you do this, use your farm administrators group rather Domain Admins in the steps below.

Let's get started.

  1. From the Start Menu click Administrative Tools-Active Directory Users and Computers
  2. In the left hand pane on the Users folder right click and select New-User from the menu that appears. If your organization places service accounts in a different organizational unit (OU) you can certainly add this account to that location.
  3. Enter the First Name (SharePoint SSO), Last Name (Service), and User logon name (SharePointSSOSvc) fields and click the Next button. You can name the account anything you want, however, these values make it clear what the account is used for.
  4. Enter the a password into the Password and Confirm password fields. Uncheck the User must change password at next logon checkbox. Check the User cannot change password and Password never expires checkboxes. Click the Next button. This sets the account up to be a service account.
  5. Click the Finish button.
  6. On the user that was just created, right click and select Properties.
  7. Click the Member Of tab.
  8. Click the Add button
  9. Enter the group name Domain Admins and click Check Names then click OK. As mentioned above, if you're using another group to provide local administrator access to the farm servers, use that group here.
  10. Click the OK button.

With the user account created and added to a group that will have administrative access to the farm servers. Next we need to create the groups that we'll add the users capable of managing SSO into.

Create the SSO Groups

There are two important groups for SSO. The first group is the administrative group which includes those users capable of administering SSO. This includes the ability to backup and restore the encryption key -- because of this they can effectively decrypt all user credentials in the SSO database and thus membership to this group should be severely limited. The second group, a managers group, is used to manage the application profiles in the SSO system. This group doesn't directly have access to passwords but could inadvertently delete all of the stored passwords. In the following steps we'll create both groups and add the SSO service account we created above into the administrators group.

  1. In Active Directory Users and Computers (still open from the last set of steps) from the left pane right-click Users and select New-Group. As before if your organization requires that groups be placed in a different OU, select that OU to create group in.
  2. Enter the Group Name (SharePoint SSO Administrators) and click the OK button.
  3. Left click the new group, and then right click the new group and select Properties.
  4. Click the Members tab.
  5. Click the Add button.
  6. Enter SharePointSSOSvc, click the Check Names button, and click the OK button.
  7. Click the OK button.
  8. In the left pane, right click Users and select New-Group. As before, if your organization requires a different location, use that location.
  9. Enter the Group Name (SharePoint SSO Managers) and click the OK button.
  10. Close Active Directory Users and Computers, we're done with it.

With the groups created we're ready to configure the service to automatically start.

Configure the SSO Service

By default the SSO service in SharePoint doesn't start. In this activity we're going to enable the SSO service. On each server in the farm and then once completed we're going to change the account used for SSO in SharePoint Central Administration.

Let's start by setting the service to start automatically and manually starting it.

  1. On the Start menu click Administrative Tools-Services
  2. In the Services application in the right hand pane scroll down to the Microsoft Single Sign-on Service, right click and click Properties.
  3. Change the Startup type from Manual to Automatic.
  4. Click the Start button.
  5. Click the OK button.
  6. Close the Services application. We're done with it.
  7. Repeat steps 1-5 on each server in the SharePoint farm.
  8. On the Start menu click Administrative Tools-SharePoint 3.0 Central Administration
  9. Click the Operations tab.
  10. In the Security Configuration section, click the Service Accounts link
  11. In the Windows service drop down list select Single Sign-on Service.
  12. Enter the Username (DEMO\SharePointSSOSvc) and Password for the service account and click the OK button.

With that the SSO service is running, however, it doesn't have access to SQL server so we need to fix that before managing the settings.

Configure SQL Server for the SSO Service Account

The SSO service account needs to create the SSO database and setup the correct permissions. In order to do that it needs the security administrator (securityadmin) and database creator (dbcreator) system roles. In the following steps we'll get permissions setup for the service account.

  1. On the Start menu click All Programs -Microsoft SQL Server 2005 - SQL Server Management Studio.
  2. If your server name isn't correct in the dialog select the correct server. Then click the Connect button to connect to your SQL server.
  3. Click on the plus sign to the left of Security to expand it. Click on the plus sign to the left of Logins to expand it.
  4. Right click on the SharePoint SSO service account (DEMO\SharePointSSOSvc) and click properties.
  5. In the Select a page (left) pane select Server Roles.
  6. Click the checkboxes to the left of dbcreator and securityadmin.
  7. Click the OK button.
  8. Close Microsoft SQL Server Management Studio, we're done with it.

In these steps we corrected the permissions for the SSO service account so that it can work with SQL server. Next is to complete the activation in SharePoint by using the Manage settings for single sign-on link.

Manage Settings for Single Sign-on

In this step we'll go through the process of creating the SSO database by using the Manage settings for single sign-on link on the central administration operations screen. The SharePoint central administration operations screen should be on your screen from the previous steps.

  1. On the SharePoint Central Administration Operations page in the Security Configuration heading select the Manage settings for single sign-on link.
  2. Click the Manage server settings link.
  3. In the far upper right corner, click the down arrow next to Welcome System Account (or whatever name is displayed.) From the menu that appears, select Sign in as a Different User.
  4. In the User name text box enter the SharePoint SSO Service Account (DEMO\SharePointSSOSvc) and in the Password text box enter the account's password.
  5. Enter the administrators group name including the domain name (DEMO\SharePoint SSO Administrators)in the Single Sign-On Administrator Account section's Account name textbox.
  6. Enter the managers group name including the domain name (DEMO\SharePoint SSO Managers) in the Enterprise Application Definition Administrator Account section's Account name textbox.
  7. Click the OK button.

With that the SSO database will be created and we're nearly done. We need only to get an encryption key created and to create an application definition.

Manage the Encryption Key

The next step is creating an encryption key for the credentials to be encrypted with. In order to do this, follow these steps:

  1. On the Manage Settings for Single Sign-on page click the Manage encryption key link
  2. Click the Create Encryption Key button.
  3. Click the OK button.
  4. In the breadcrumbs, click the Manage Single Sign-On link.

With an encryption key set, you're ready to create an application definition.

Manage Settings for Enterprise Application Definitions

The final step is to define an application definition for SSO. This can be done with the following steps.

  1. On the Manage Settings for Single Sign-On for... page in the Enterprise Application Definition Settings, click the Manage settings for enterprise application definitions link.
  2. Click the New Item button.
  3. Enter a Display name (Demo Application), a Application name (Demo), and Contact e-mail address (sharepoint@demo.thorprojects.com).
  4. Select the Account type. Generally this will be Individual. Note that this cannot be changed once the application has been defined.
  5. Click the OK button.
  6. Close the web browser with central administration -- we're done.

Special Thanks to Hollins University. This is documentation that I did for them that they agreed I could share with everyone.

 


Categories: Professional | 5 Comments
 
 Next >>