Dec18

Upgrading your custom branded SharePoint site to SharePoint 2010 – Part 1

Apparently it has been about six months since I’ve written a blog post.  Its been a busy few months since then.  I’ll spare you all the details but long story short, I’m going to blame on it on the calm before the SharePoint 2010 storm that was unleashed at the SharePoint Conference in October when the beta was officially unleashed on the world.  All excuses aside, it is time to put back on the game face and get back to business. 

 

It was great relief when the beta was released and the NDA was lifted cause we could finally talk about all the cool new stuff.  There’s a ton of great new features and functionality but I was itching to get my hands dirty and do something real.  Something that others would be doing…what better place to start than upgrading something?

 

The goal was to take SharePoint911’s public MOSS site and upgrade it to SharePoint 2010.  In the next few blog posts I’m going to highlight the steps that I went through with the help of my colleague Randy Drisgill to eventually flip the switch on the new site.

 

Before we begin – let me real quick explain what we are working with here.  SharePoint911’s public facing site started life as an out of the box site collection using the Publishing Portal site template.  To get the user interface we were looking for, it has a custom master page and several page layouts with supporting CSS and images.  Everything about the site is deployed with a SharePoint Solution Package (.WSP file).  This means all files on the site are uncustomized.

 

The whole idea seemed pretty simple – move the content database to the SharePoint 2010 server which will upgrade the content on the fly via the database attach method and use the visual upgrade functionality of SharePoint 2010 which should allow us to get our site migrated while still using the old master page until we could a new master page for the site.  Here’s the basic steps I followed:

1) Backed up the main content database from SQL on my MOSS farm.

2) Restored the content database to the SQL server in my SharePoint 2010 farm.

3) Added and deployed my WSP to the SharePoint 2010 farm

4) Create a new web application called http://beta.sharepoint911.com

4) Ran the following command to attach the database to SharePoint 2010:

stsadm –o addcontentdb –databasename wss_content_blah –url http://beta.sharepoint911.com –preserveolduserexperience true

 

Fun side note – when you do the db attach you actually get some feedback this time around about the progress.  No more staring at a blinking cursor for 5 mins! 

 

Theoretically – the next step should be that I open up the site and it will come up with the v3 look and feel but can still take advantage of the other things that SP2010 has to offer.  But that isn’t what happened.  I was greeted with the following error:

 

http://server/_catalogs/masterpage/sp911.master(123): error CS0234: The type or namespace name 'SearchBoxEx' does not exist in the namespace 'Microsoft.SharePoint.Portal.WebControls' (are you missing an assembly reference?)

 

My first reaction was to pick up the phone and ask Randy what the heck he did to break the site.  After a little playing we realized a few things were true, removing the SearchBoxEx control did fix the problem, but you shouldn’t have to.  We also found that if you copied the code out of the v3 BlueBand.master and tried to deploy it with a Feature you’d get the same behavior because it had the same control.

 

It turns out this is a bug in the Beta which will be fixed in RTM.  Just to be clear on this – if you try to deploy an uncustomized master page which uses the SearchBoxEx control using visual upgrade you will receive the error.  If you do encounter this issue there is a very simple work around: Customize the master page.  We aren’t really sure why this works, but we assume that the reason is because customizing the page seems to give SharePoint the ability to inject code into the master page which somehow seems to circumvent this issue.

 

Overall, aside from this little hiccup the migration process was very smooth.  The end result was our v3 branding running in a SharePoint 2010 environment.  In the next installment I’ll talk about how I imported my v3 WSP into Visual Studio 2010 and deployed the changes to my new site. Stay tuned!!

 

For a peek at the finished product of the migration take a look at http://beta.sharepoint911.com

Published: Dec-18-09 | 0 Comments | 0 Links to this post

Jun30

Slides from Real SharePoint Solutions for Tough Business Times

Thanks again to everyone who came out today and braved the rough weather in Tampa!  I’ve included some links below to the slides as well as the sample alternate CSS and banner image I demoed in the session.

 

SharePoint Branding For The Rest of Us (slides)

Sample CSS and banner

 

Also, if you interested in checking out those new themes from Microsoft here’s a link to my colleague, Randy Drisgill’s blog post on them complete with screenshots:

 

http://blog.drisgill.com/2009/03/microsoft-released-10-new-sharepoint.html

 

If you were in interested in seeing one of the themes in action with some light customization – or are in the Orlando area and want to check out the Orlando SharePoint User Group check out:

 

http://www.orlandosharepoint.com

Published: Jun-30-09 | 0 Comments | 0 Links to this post

Jun23

Demystifying SharePoint Branding Updated Slide Deck from SPTechCon

Thanks to everyone who came out to Randy and my session yesterday at SPTechCon!  As some of you noticed, the slide deck we were presenting from had a few changes over the slides that were available from the conference site.  Here are slides we used in the presentation:

 

Branding Demystified - SPTechCon Boston

 

Randy should have the code samples up shortly.

Published: Jun-23-09 | 1 Comment | 0 Links to this post

Apr24

Just ordered my new server for less than $700!

Like many SharePointers, I always seem to have an external USB drive hanging off my laptop.  Sure, I have access to a bigger fancier server if needed but for daily tasks I needed a nicer playground.  I decided to finally bite the bullet and get me a nice little server where I can run all of my VMs – and to my surprise the total came out to less than $700!

 

Here’s the high points:

 

CPU: AMD Phenom II X3 720 2.8GHz Triple-Core Black Processor

RAM: 2 x 4GB = 8GB (motherboard supports up to 16GB)

Storage: 2 x 640GB Western Digital Caviar

Case: Antec Sonata III

 

Here’s the receipt:

image

 

So before anyone blasts me and says “that isn’t less than $700” – you are correct.  However, there was a promotional code for the case that dropped the price $20 that didn’t get applied, but the fine folks at New Egg have credited it back.  In addition, there’s a $10 rebate on the motherboard.  When all is said and done that means the final shipped price will be $686.54.  Not too shabby if I do say so myself.

 

Is it the greatest machine ever built?  No way!  But it will have enough horsepower to allow me to run 3-4 VMs at a time and add more RAM in the future to run even more.  Overall, I was pretty proud of the bang for the buck.  And they threw in a free label maker – SCORE!

 

A quick shout out to the good folks over at AnandTech.  Their frequently updated System Buyer’s Guides are a great resource to anyone looking to put together a system who doesn’t want to spend a ton of extra time matching up components and reading reviews.

Published: Apr-24-09 | 0 Comments | 0 Links to this post

Apr03

Change to group policy broke SharePoint Search – thanks Conficker scare!

Some of you may have seen me tweet about how the simple threat of Conficker cause more problems than the actual virus itself for one client.  Here’s the full story:

 

I’ve been working with a client for the past weeks and logged in to their server the morning of April 1, 2009.  I went about what I had to do and then decided to take a peek at the Event Viewer on the server.  A few weeks back I did a clean install and the Event Viewer was clean as a whistle so I was pretty much expecting to see the same.  However, here’s what greeted me that morning:

 

image

 

Lots and lots of 6398 and 6482 errors.  There were some 7076 errors thrown into the mix as you can see.  If you’ve never had the pleasure of seeing the error messages up close here’s what they look like:

image image

 

For the sake of search engines – the 6398 error message is: The Execute method of job definition Microsoft.Office.Server.Administration.ApplicationServerAdministrationServiceJob (ID 9f6421a3-0828-4a26-9def-977f6e5b959a) threw an exception

 

The 6482 error message is:  Application Server Administration job failed for service instance Microsoft.Office.Excel.Server.ExcelServerSharedWebServiceInstance (dfb065a4-e326-4619-bb9d-2aff38c9cae6).

 

Since these errors were related to search I opened up the Search Administration page in my SSP and say the crawl status was showing “Error.”  I’d never seen that before, so I shot over an IM to Shane Young and asked if he’d seen that.  He suggested opening up the Search Settings page which he said normally shows a more detailed message.  However, when I tried to open up Search Settings I got a 403 – Access Denied.

 

It didn’t take long to realize that this was all related to permissions.  I shot an email to my client asking them if they’d recently made any changes to their server and they confirmed that they had.  They recently made changes to a group policy that locked down the access for Administrators to prevent the Conficker virus from doing any damage.  Honestly, I don’t blame them for making the change – they really had no idea it would have any impact on SharePoint.  But alas, it did.


Everything I uncovered in my searching of the interwebs suggested to do two things:

  1. Add the local group WSS_WPG to the c:\windows\tasks folder with Read and Write.
  2. Reset the accounts used for WSS search

 

You might be asking yourself “Why the heck does SharePoint need access to c:\windows\tasks?”  The simple answer is that it needs to be able schedule tasks – without access certain tasks like searching won’t get scheduled and therefore won’t happen.  So I went to modify the permissions on the directory– however, I wasn’t able to modify the permissions on c:\windows\tasks despite my administrator permissions.  We first had to remove the group policy that was applied and reboot the server.  Then I was able to modify c:\windows\tasks. 

 

The next step was to reset the permissions for WSS search.  I opened Central Administration and went to Operations > Services on Server then clicked on Windows SharePoint Services Search and re-entered the credentials for the Service Account and Content Access account.  The problem was it didn’t fix the problem.  Thinking it must be something else, I asked Shane to take a peek and see what he could come up with. 

 

I’ll spare you all the details but here’s the important part of this post --- what I did was completely correct except for ONE very minor detail.  Changing the group policy modified the permissions on the server and more importantly some of the permissions SharePoint needed.  Removing the group policy didn’t completely undo all of the changes so the accounts needed to be reset.  Simply re-entering the same username and password like I did doesn’t help because SharePoint thinks “oh, that’s the same one I got – no big deal.  No need to make any changes.”  What Shane had me do was change the identity of the Search accounts to something else and then change it back.  What this does is force SharePoint to rewrite the permissions for the account.

 

After making the change the server was happy again and looked like this:

image

 

In summary – be very careful when applying group policies that restrict access to administrators because it might make SharePoint unhappy.  And in the event you run into a permissions issues and need to reset a password in SharePoint it is often best to change the username and password to something else before changing it back.

 

Hopefully this post will save someone a few hours :-)

Published: Apr-03-09 | 0 Comments | 0 Links to this post

Mar25

Check out the SharePoint track at the Orlando Code Camp!

 

The 4th Annual Orlando Code Camp will be this Saturday

 

What: All day geek fest focusing on code and not marketing fluff.
When: Saturday, March, 28, 2009 All day (registration opens at 7:00am)
Where: Seminole Community College - Sanford\Lake Mary Campus - 100 Weldon Boulevard Sanford, FL 32773
Cost: Free!

 

Some great SharePoint content from a bunch of great speakers!  For more information check out http://www.orlandocodecamp.com If you are a twitterer you can check out tweets with #occ.  Be sure to come by and say hi, I’ll be hanging in the SharePoint room:

 

image

Published: Mar-25-09 | 0 Comments | 0 Links to this post

Mar25

Proof positive that the SharePoint install account is critical!!

 

I’ve read and heard many places that the account you use to install SharePoint gets mystical powers that can’t really be explained.  I’ve always listened to that advice but never really understood why – until last week!

 

Let me backup for a second and explain what I’m talking about.  When you go through the SharePoint installation process, once you’ve started the started the process the first account you’ll be asked to enter is the account that SharePoint will use to access SQL.  This isn’t the account I’m referring to – the account I’m referring to is the account that you are logged into Windows Server with during the installation. 

 

The scenario I ran into is very typical, Admin logs into Windows Server with his or her own account (that has administrator rights on the server) and then proceeds to perform the installation.  On the surface, this will work fine in most cases.  The installation will complete and SharePoint will load.  Everyone will be happy.  For now….

 

In my case, I was helping to configure an environment that was originally setup several months back.  For whatever reason things were working correctly and it was decided it would just be faster to uninstall and reinstall to fix the problem.  I sat down and began the uninstall process from Add/Remove programs and was surprised when it failed.  Became even more frustrated when it failed another three times!  Turns out I was trying to do the uninstall using the SP_Admin account, however the installation was done using one of the network admin’s accounts.  So I went over, asked the guy to login and tried the uninstall one more time.  Poof!!  Worked immediately.

 

In my case, I was lucky.  The administrator was still around.  But what if he no longer worked there?  Maybe he was a consultant or won the lottery?  I might have been staring a very messy uninstall right in the face.

 

Just remember, the account you are logged in with during your SP install makes a big difference! 

Published: Mar-25-09 | 0 Comments | 0 Links to this post

Feb03

Richer search results through the use of property restrictions with SharePoint

A while back I wrote a couple posts like this one and that one about creating an advanced search using query string manipulation with JavaScript.  They introduced the idea about what is possible with some creative thinking, but it never covered the options available to actually put into the query string to take it to the next level.  This post covers some of those options and talks a little bit about the search behavior for MOSS (or Search Server).

Microsoft Office SharePoint Server boasts robust enterprise search capabilities that companies can immediately take advantage of once the product has been installed. Most users simply type a search query into the search box and then get results, but search box supports other syntax that can be used to get better results. If you don’t have MOSS, keep reading because everything also applies to Microsoft Search Server. The Express version can be downloaded for free and used to bring the same search capabilities to WSS 3.0.

By default, when you type in terms into the search box SharePoint will assume that there is an AND between all of the terms. But unlike some other search engines, Boolean operators are not supported out of the box. The underlying SharePoint search API supports Booleans, but taking advantage of it requires custom code or 3rd party web parts.

It is often overlooked, but search box also supports the use of restrictions. Just like the name implies, restrictions are specific criteria that limit the search results to only what is specified. The restrictions can be typed directly into the search box to allow for greater control of what is being searched.

To use a restriction, you would type into the search box in the form restriction:”restriction value”

Note that if the restriction value has more than one word it is necessary to use quotes. 

The following is a list of available restrictions and examples of each:

Property name

Allows queries to be performed against a specific metadata property.

city:”New York”

Scope

Specifies the scope to be searched.

scope: MyCustomScope

File type

Specifies the file type to be searched.

filetype:docx

Site

Filter by site.

site:http://intranet


Note: To use a custom property name, you'd need to create a managed property and map it to a custom field or fields. For more information on creating your own managed property check out:

http://blog.tylerholmes.com/2009/01/sharepoint-searching-with-managed.html

If multiple restrictions are used on the same property, SharePoint will assume an OR between the terms so that the results are a union of the terms. For example if you typed the following into the search box:

site:http://intranet site:http://extranet

The results that were returned would return all of the values from the site http://intranet and all of the results from the site://extranet. However, if multiple filters are applied to different properties the results would be the intersection of those values. So if the following was typed into the search box:

site://intranet/hr DocumentType:benefits

This would return all results from the HR site where the content includes the term “benefits” as the value for the property “DocumentType.”

As I mentioned at the beginning of this post this technique can be used in conjunction with Javascipt to achieve an advanced search that is more user friendly than the typical Advanced Search. But if all you want to do is use these techniques to simply show off for your friends about your mad search skillz that works too.

Published: Feb-03-09 | 0 Comments | 0 Links to this post

Feb02

Follow me on Twitter -- all the cool kids are doing it

A while back I relented and jumped in on the whole Web 2.0 bandwagon and joined Twitter.  If you are a Twitterer you can follow me as: JohnRossJr
 
Happy tweeting!
Published: Feb-02-09 | 0 Comments | 0 Links to this post

Feb02

Looking back on SPTechCon in San Francisco

Last week was the inaugural SPTechCon and the first one was held in one of my favorite places in the world - San Francisco.  SharePoint911 was well represented with 5 different speakers. 
 
It was a great conference and we had the chance to talk with many of the attendees. The sessions themselves showcased a good mix of technical and business topics related to SharePoint. I especially liked the emphasis on the business topics - definitely a big need for more discussions on those topics!
 
In addition, got to meet a lot cool SharePoint folks. Dux Sy (SharePoint PM guru and foodie), Darrin Bishop, Becky Isserman, and Tiffany Songvilay.  Tiffany has a line of cool SharePoint shirts that any of your SP nerds out there will appreciate.  Shane Young, Todd Klindt and I were walking down the EXTREMELY long halls of the hotel to our rooms. I was talking very loudly about ideas for SP shirts and Tiffany's ears perked up. Next thing we know we are in her hotel room checking out the shirts. Very cool person, but unfortunately I didn't have the chance to check out her session since we were both presenting at the same time.  You should definitely stop what you are doing now and go buy some shirts from her!!
 
After a busy week at the conference, also met up with Michael Noel who lives in SF and was willing to give the SP911 crew + Todd Klindt a brisk walking tour of his hometown.  Great way to cap off a great conference. 
 
The next SPTechCon will be in Boston at the end of June.  Hope to see you there!
 
BTW: For those of you who went to my search session and were looking for details about my demo they should be coming shortly. I had forgotten today was the Monday after the Super Bowl.  You have to cut me some slack, I'm a Steeler fan and it was a good night :-)
Published: Feb-02-09 | 0 Comments | 0 Links to this post

 Next >>