Archive for SharePoint

Notes from SharePoint Conference 2009

Here are the notes I took while at the conference:

General:

  • Web parts are now open and can be extended
  • WSS is now called SharePoint Foundation
  • 2010 requires 64 bit OS
  • Chrome can support languages (ribbon, ui features; does not apply to all site content)
  • Targeting based on rules-based audiences
  • MySites have been enhanced with status updates and activity feeds
  • Tagging and tag clouds
  • New Bookmarks feature replaces the MyLinks feature
  • Ability to rate content
  • Taxonomy tag hierarchies, managed metadata, unique document id’s, document sets
  • New web analytics service

Session: Enterprise Search:

  • FAST- was a competitor; offered more robust search capabilities.MS bought FAST and is including it in the new enterprise license for SP 2010
  • 3 flavors of search:
    – Search Server 2010 Express (free)
    – SharePoint Server 2010 (intranet search; has upgrades from existing search)
    – Fast Search Server 2010
  • Additions:
    – Phonetic and Did You Mean… capabilities
    – metadata extraction
    – push results to your desktop
    – visual preview of results on Results page
    – visual best bets
    – user context
    – ability to connect to corporate assets outside of SP with connectors (BDC)

Session: Web Content Management in 2010:

  • Ribbon editing interface
  • You can restrict what users have access to in the ribbon
  • Fields have Suggestions, can create constrained fields
  • Easier to format data in the Content Query Web Part
  • Content to Content targeting feature
  • Data view mapping
  • Managed metadata
  • Can create reusable workflows; can import workflows from Visio
  • Enhancements to traffic analysis and site health monitoring; developer dashboard
  • Can use the Mac to do branding changes within Safari
  • Masterpages now affect _layout pages

Session: SharePoint and Silverlight:

  • SL is browser plugin, works in all major browsers
  • Has 100 OTB controls
  • Uses XAML (xml language); serialization of .net objects into xml
  • Build with Expression Blend
  • Designers can create UI but need developers for coding (they use Visual Studio)
  • Can add SL apps to SP pages within new webpart (comes in SP 2010); 2007 users can download Webpart from Codeplex
  • You can create a whole app in SL and host in seamlessly on a SP page.
  • SL works in 2007 as well as 2010

Session: Electronic Arts Case Study

  • They have an open contribution environment bc anything a user posts has their name attached; they have never had to remove anything a user has posted
  • Their site supports videos/streaming
  • They allow users to skin their own MySites/teamsites
  • They have customized their edit screens
  • Have a custom-create “type ahead” control for their fields
  • Use Firebug and yslow to determine the speed of their sites
  • Through research determined that users view pages in an F pattern, making content on the left and the top right the most important to users. With this in mind, EA designed their screens to have the most important content in the left column and top right areas of the page.

Session: Governance and Planning

  • Defines policies as to what SP is for
  • Give people appropriate training
  • Views aren’t made to support large volumes of items
  • Treat SP like an enterprise app
  • Test your back and recovery solution
  • Why have Governance plan?
  • Helps you figure out who does what
  • Avoid sprawl
  • Ensure content quality
  • Establish clear decision making authority
  • Defines roles, people, guidelines, technology
  • Clarifies plans
  • Create structure
  • Defines metrics to measure the success of your deployment
  • Define policies for service levels and appropriate use
  • Define procedures for common tasks

10 Points:

  1. What are the business goals?
    Examples: improve collaboration, improve search, replace shared drives…
    Focus on business outcomes not requirements
  2. Roles and Responsibilities
    Executive sponsor
    Governance board
    Business owners
    Solution admin
    Tech support team
    Site sponsor/owner
    Site steward
    Users
    These are roles and as such one person may perform multiple roles
    Each site or content area needs an owner
  3. Deployment Model
    Central vs. regional
    Will you have one centralized farm to serve as users, or multiple farms setup to serve different region, countries, etc.?
    There can be multiple modes of deployment
  4. One size does not fit all
    Different orgs have different needs and may deploy differently
    Some orgs may want project and workspaces while others stick to team sites, while others have centralized portals, or a combo of any of these.
    You can have multiple governance models, one for each type of site (rules for mysites; another gov. plan for team sites; yet another for blogs and wikis, etc.
  5. Policies
    Define the policies for your deployment
  6. Guiding Principles
    Consistent user experience
    Keep end users in mind
    Standards tied to scope
    Existing company rules apply (if there is already a company rule about sending out profanity in company communications, then that also applies to your SP deployment-reuse existing policies)
    Default user access should be Read-start open and then lock down
    Publish once, link many
    Metadata for content retrieval versus folders (particularly for 2007 deployments) (folders have been updated in 2010)
  7. Launch and Rollout Strategy
    Launch is not a one-time event
    Allow culture time to absorb changes
  8. Content Management Plan
    Decide who can change and approve content
  9. Training Plan
    Train the helpdesk
    Figure out who needs training; train the trainer
  10. Governance Plan Document
    Don’t include implementation details
    Don’t leave HR out of the loop

2010 Considerations:

Social computing implications (tagging and rating features)
Managed metadata service

Session: Branding SP 2010:

  • Themes for 2010:
  • You can easily edit theme colors from within the browser
  • Colors and fonts are in open xml format
  • Css files marked up with variables
  • Comment-based design
  • Only 1 css files
  • Masterpages affect the _layout pages as well
  • Blogs and wikis are customizable
  • UI framework pieces are extensible
  • Can add and position the ribbon
  • Make sure you remove redundant code on your existing 2007 pages before pulling them into 2010 (take site actions out as this is replaced by the ribbon)

Session: Sapient Intranet Accelerator: Case Study:

  • Sapient is a high-end web design company
  • They created a base installation of SP that can be used as a preconfigured intranet
  • They created custom web parts
  • Their portal is not link-centric, shows snapshots of content rather than tons of links
  • Use of rollups
  • They use custom webparts to surface data to the portal
  • Have a  poll webpart that allows users to answer short polls right on the home page
  • They use Silverlight slideshows to display pics and features
  • Design uses a grid and has lots of white space to aid readability
  • Use of color is subdued and used as accents rather than as large swaths of color-increases usability and readability of content pages

Session: Creating Dynamic Sites:

  • Recommends going totally custom for masterpages and themes-enterprise level sites deserve a custom look and feel, even more important for internet sites
  • UX and solution first, technology second
  • Be aware of web technologies such as RESTful programming, AGILE, AJAX, JSON, JQUERY…
    Support content with variations
  • CQWP has been enhanced to  show related content; don’t need xslt in order to define display

>> This blog also has a great overview of 2010.

Leave a Comment

Make Title column a link

It has been driving me nuts that you have to have a Name column, so you have a link to the files, as well as a Title column, so you know what you are actually clicking on. I found a tutorial for changing a column into a link but it also changed the text of my Title into the link text. So… I copied the code that was generated by that little experiment, grabbed the url that it wrapped, and then added that url around the Title code. Success!

Step By Step:

  1. Create a webpart page and insert your library
  2. Open page in SharePoint Designer
  3. Right-click on the library and select “Convert to XSLT”
  4. Find a Title in the code and wrap it with this url:
  5. titlelink

  6. Now you can delete the Name column: Common DataView tasks > Edit Columns.
  7. Save and preview-Title is now a link and no Name column!

Comments (1)

Creating Teaser Intros for Blog Posts

One thing I have been wanting to do with blog posts is create teaser intros, show x amt of characters of the post followed by a link to read the rest of the post. Sadly, SP does not provide this functionality out of the box. So I Googled the problem and found a site with the solution. The problem is the solution is hard to understand and my eyes glazed over trying to understand what the author was asking me specifically to do. I eventually got the fix to work, and decided that I probably wasn’t the only person who didn’t speak code who might need this solution, so I decided to paraphrase the authors fix in designer-ese… I take ZERO credit for the fix, please visit the author below for the original post:

Original fix/code: http://zabistop.blogspot.com/2009/02/customizing-sharepoint-blog-posts-web.html

Step 1: Open SP Designer
Step 2: Open Blog site in Designer
Step 3: Open default.aspx
Step 4: Click at the very top of the List View Web Part for the posts and then right-click. Select Convert to XSLT Data View:

Step 5: Go into code view and do a find for: ms-postbody. It should bring you to the area of code that you need to swap out. Below is the code that needs to be replaced:

Replace this code...

Replace this code...

Replace with this:

with this code...

with this code...

(aside: I am trying in vain to upload a file that allows you to copy and paste the code, but the crappy WordPress interface wont do it! Can’t add code to the page or the stupid thing tries to execute it, even in code tags! Stupid app!)

The 250 in the last xsl: value snippet is the number of characters of text that is displayed-this number can be whatever you want. You can also change what the “more” link says, maybe to “Read Post” or whatever.

Step 6: Add new xsl template. Add the code below to the top of the page under an existing xsl:template snippet:
blog4

Now save and open the page in your browser.

Leave a Comment

Allowing users to add publishing pages

I have a subsite that I wanted to give over to our Documentation group to maintain. It is a publishing site with a custom page layout. I tested the security with a test user account. I gave the test account full control access to the subsite. When signed in as the test user, I could see the Site Actions button, see pages, security, etc. But when I would try to add a page, I got an Access Denied error. I tried it on a different subsite to just see if there was something wrong with that particular site, and I still got the error. After digging and poking around the web, I found a reference to give the user read access to the Master Page gallery. I gave the test user read access to the master page library and then signed back in and voila, it works!

Sometimes SharePoint just doesn’t make sense, with all the hoops you have to jump in to do seemingly simple things. Like add reusable content lists to a page layout. All i want to do is just add the references to two reusable content lists directly into a page layout so they are there when i make my pages. Apparently, to do this requires custom programming, still waiting on the estimate. In the old days, I’d simply add a library item into a Dreamweaver template and call it a day. Bah.

Leave a Comment

Adding Favicons to SharePoint Sites

The new corporate intranet I have been working on the past year will launch Friday night (yeah!). One my last of last things to do is to create a favicon. Easy enough. Just create an image 16 by 16 pixels and save it as a gif or png. I then went here: http://www.html-kit.com/favicon/ . This site lets you upload the graphic and it generates the .ico files for you. There are standalone programs I have used in the past to create the .ico files, but this one is a website, its free, and it took ten seconds.

Here’s where I had issues. Just where is the “root” for a SharePoint site? I added the files right next to default.aspx-no dice. I added them to the images folder on all the production web servers. Nope. We use an external share for images so i don’t have to store custom images in SharePoint. Once I added the files there and linked them in the header of my masterpage, voila, they show up!!!

Here is what I added to the head of the masterpage:

Favicon links

Favicon links

As for why this worked, and why having the images in the images directory doesnt work-you got me. I have had issues on regular websites getting the favicons to show up, so maybe they are just poorly implemented by browsers. If you are not using an external share for your SharePoint images, I would suggest you ask your admin to set one up. I add the images once, link them once, and that’s that. I don’t have to worry about pushing them from one server to the next and I don’t have to store them in SP libraries.

If anyone knows a better way to do the favicons for those without an images share, please let me know and I will amend the post.

Leave a Comment

From Dev to Production-Don’t Forget Your Themes!

We finally pushed our new intranet from development to production the other day. As I was checking the pages I noticed my theme was not showing up in the Themes list. Doh. Anything in the 12 hive that you added does not push when you go from dev to production. You have to manually move copies to all production servers. In my case, our farm has five production servers, and I have a custom theme, so thats three things I need to copy over to each server:
1: spthemes.xml
2: thumbnail image for theme preview
3: custom theme folder

Beyond that oversight, everything pulled over fine, all of my relative links work, pages are there, masterpage and page layouts pulled, all is good. ;0

Comments (2)

Adding Code to SharePoint pages using the Page Viewer Webpart

As I have mentioned before, my team and I are working on redesigning our corporate intranet in SharePoint. Our programmers are learning .Net and have been getting comfortable coding in it and creating applications. They haven’t really taken the time to figure out how to code within SharePoint though, and this leaves us with a problem. There was a lot of custom code on our old intranet and SharePoint doesn’t have an out-of-the-box solution for everything. My programmer started looking into creating a custom webpart but decided it was a pain and due to time constraints, we came up with an easy solution that works quite well.

He created a .net page with the necessary code for the widget and we pulled the code into the Sharepoint page using the Page Viewer webpart. We currently have two of these on our home page. One randomly loads a different slideshow image that upon clicking the image launches a slideshow in a popup window. The other loads stock quote data that is pulled from a web service.

I’m sure that hard-core programmers and SharePoint developers will weep at this hack, but for a small team with limited resources and time, this works quite well for us and was way easier to implement than a custom webpart. I have also used the page viewer webpart to pull in a Google map. On our old intanet, I was able to add the iframe code that Google Maps generates, but SharePoint seems to hate iframes and wont render them, so the page viewer webpart was a decent workaround here as well.

Comments (5)

Standard SharePoint font makes marks tiny

My company has a ton of marks that they use in their company communications: copyrights, registration symbols, trademarks, etc. No matter what I did, they displayed so small as to be unreadable. Apparently, marks rendered in Calibri, the standard font for much of SharePoint, render too small, but if you change the font to something like tahoma, they show up fine. Since there is no way in css (or none that I know of) to target an html symbol, I wrap all marks in the sup tag, which raises them a little, like a mark should be anyway, and I changed the font-family attribute of the sup tag instead. Works!

Leave a Comment

Practical SharePoint: Creating Manuals

One of the main content sources on my intranet is manuals and guides: policy guides, managers guides, SOP guides, etc. Sinces manuals /guides is such an important content source, I set out to find an ideal SharePoint solution for creating them. The current way that manuals/guides are implemented on our existing intranet is pretty simple: Dreamweaver template for overall structure, library items for navigation, and manually created content pages.

My first thought was to try to use the Sharepoint blog functionality. I liked how you can set up categories and then easily assign posts to those categories. A few problems came up: one, posts display in the order they are input-I needed to control the exact order; two, posts have comments that can be added-I needed that functionality removed. I was able to overcome issue one, partly, by creating a bit of a hack. I created a column that allowed me to insert a number that I could filter by. The big problem here is if I want to change the order of the posts in the future, i need to change the number for each post individually. Also, I tried using the CQWP to filter by the number and it wouldnt pull correctly in the quicklaunch. So, I abandoned the blog idea.

The solution I came up with that I am actually using is to create a publishing subsite for each manual. I created a custom content type, custom site columns, and several custom page layouts to accommodate the different types of page content that the manuals would have. Many of the manuals on the intranet have contextual navigation depending on what section you are in. I created those navigation areas with the reusable content lists, pulling them into the custom page layouts with a RichHtml field control.

In the page layouts, I wrapped the content areas in a div id that I then used to target all of the html and custom css, allowing me to override the built in css for the pages. I created custom styles for tables, quotes, and images.

It still isn’t an easy task to create a manual. i have many steps I have to go through to set one up, but I think the long-term benefits will be worth it. Content types, site columns and page layouts are the foundation of the publishing features in SharePoint and are essential skills to master.

One final tip-Document everything!!!! It takes a lot of time, but once I figure out a process for doing something in SharePoint, I create a bunch of screenshots and i document everything i did to create it. I also have a project management SharePoint site where I catalog every element created for a site (content types, columns, page layouts, master pages, lookup lists, etc.), every site created, and all documentation created. There is so much stuff, you really can’t depend on your memory, so write it down!

Well, I have to get back to figuring out to build my company intranet-I’ll post more as I figure more out ;0)

Comments (1)

Creating a Footer with a User Control

My goal was to add a simple footer area to the masterpage, with copyright year and a feedback link-simple stuff. I wanted it so that if the link or the date had to be changed, I wouldn’t have to update every instance of the masterpage. My brain still approaches Sharepoint with Dreamweaver mentalities. I am used to templates and library items in DW and how they work. Equating a masterpage to a DW template is faulty because it is no easy task to make a change to the masterpage and just hit “update” and ta da, the whole site is updated. When you make a change on the master page, you have to go into each site and subsite that uses the masterpage, change the masterpage to something else, and then change it back to have the updates show. For a large intranet, that is just not feasible.

Our old intranet uses Cold Fusion, and we use includes to pull in frequently changing text. I asked one of our .net guys is their was a .net version of this and he suggested user controls.

I opened my site in Sharepoint Designer and went to File > New, then clicked on the Page tab, ASP.NET, and selected Web User Control.

A base file will display. I removed the head content that automatically referenced the theme-it is unnecessary and caused problems with the rendering. I then pasted the html code for my footer. The css references were added to my theme file so that they would be picked up.

The first mistake I made was saving the user control within the site. That doesn’t work. I did some research and found out that user controls must be saved in the Controltemplates folder in the 12 hive on the server. Your path would be something like this:
\\server name\12$\TEMPLATE\CONTROLTEMPLATES

Now you have to add the user control to the masterpage and register it within the page. Find where you want to add the user control and add this code, where mp_footer = name of YOUR user control:

To register the user control, go to the top of your masterpage. There will be several user controls already listed there. Add this code after the other user control registration lines:

Save the masterpage, check it in, and then, yes, you must do the switch masterpage, switch back thing, but just this once ;)

Pretty easy and updating the user control automatically updates every instance throughout your masterpages, so I’m sure you can imagine the many ways you can use these in your sites. One tip about editing the user controls once they are on the server-open them in Notepad. I opened them in Designer and had trouble saving them back to the server. Enjoy ;)

Leave a Comment

Older Posts »